2012-04-03 12 views
2

Ich mache ein Spiel mit einem Ball und einem Spieler. Bisher habe ich eine Kugel für den Ball und ein Quadrat (Modelle werden später gemacht) für den Spieler gemacht. Ich habe dem Spieler ein Bewegungsskript angehängt, damit es in alle Richtungen gehen kann, aber ich möchte, dass er den Ball aufnimmt, wenn er hineinrennt. Dazu nehme ich an, dass ich im Ballskript innerhalb einer Kollisionsfunktion seine Position auf die Position des Spielers ändern müsste. Ich frage mich also: Was ist der richtige Weg, um auf die Koordinaten des Spielers vom Ball-Skript zuzugreifen?Zugriff auf Objekte Position von einem anderen Skript in Unity

Antwort

1

Ich hoffe, ich habe dich richtig verstanden. Um nur die Position erhalten Sie tun würden:

GameObject player = GameObject.Find ("Player"); 
Transform playerTransform = player.transform; 
// get player position 
Vector3 position = playerTransform.position; 

Aber abholen und tragen den Ball weg sollten Sie eher parenting tun:

// ... 
transform.parent = playerTransform; 
// take care to disable physics while ball is under control of the player 
rigidbody.isKinematic = true; 

Auf diese Weise können Don müssen kümmern uns um den Ball in Bewegung, indem selbst jedes Update oder FixedUpdate. Wenn der Spieler später den Ball verliert, muss er nur die Bälle transform.parent = null und isKinematic = false zurücksetzen.

Verwandte Themen