3

私はボールとプレーヤーの両方でゲームを作っています。これまでのところ、ボール用に球を作成し、プレーヤー用に正方形(モデルは後で作成されます)を作成しました。プレーヤーに移動スクリプトを付けて、すべての方向に移動できるようにしましたが、ボールにぶつかったときにボールを拾うことができるようにしたいと思います。これを行うには、ボールスクリプトで、衝突関数内で、その位置をプレーヤーの位置に変更する必要があると想定しています。だから私は疑問に思っています:ボールスクリプトからプレーヤーのそれらの座標にアクセスする正しい方法は何ですか?

4

1 に答える 1

6

私はあなたを正しく理解したと思います。ポジションを取得するには、次のようにします。

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

しかし、ボールを拾い上げて持ち去るには、むしろ子育てをする必要があります。

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

このように、UpdateまたはFixedUpdateごとに自分でボールを動かすことを気にする必要はありません。プレーヤーが後でボールを失った場合は、ボールとを設定するだけで逆にtransform.parent = nullなりisKinematic = falseます。

于 2012-04-04T21:40:19.503 に答える