Ich möchte fragen, warum 'Sphere' verwenden, um auf transform.position zugreifen, die sphere.transform.position in script1 ist. Aber in script2 können wir transform.Rotate direkt bewerten, ohne irgendwelche Objekte davor, warum nicht schreiben als: sphere.transform.Rotate?Zugriff auf die Eigenschaften in Unity3D
script1
void Update() {
}
private IEnumerator SphereIndicator(Vector3 pos)
{
GameObject sphere = GameObject.CreatePrimitive (PrimitiveType.Sphere);
sphere.transform.position = pos;
yield return new WaitForSeconds (1);
Destroy(sphere)
}
script2
void Update() {
if (axes == RotationAxes.MouseX) {
transform.Rotate (0, Input.GetAxis ("Mouse X") * sensitivityHor, 0);
}
** Script2 ** modifiziert die Rotationstransformation des gerade parenttierten Objekts. ** Script1 ** ändert die Rotationstransformation des Objekts, die nicht mit diesem bestimmten Skript zusammenhängt. Dies ist keine Frage im Zusammenhang mit Unity, sondern die Frage nach den Grundlagen von OOP. –