質問: enemyBody.GetPosition(); } ``` Playerに敵の位置が取得できていないようです... EnemyBodyColliderは複数の敵に適用しているので 参照値を探すことができないのかも...と考えたのですが、 具体的にどうすればいいのかわかっていません...。 ご存知の方 または 検討が付く方などがおられましたらご教授いただけましたら幸いです。 どうぞよろしくお願いいたします。
回答: > > Playerスクリプト > > enemyBody = GetComponent(); > > > 「プレイヤーのオブジェクトに付いているEnemyBodyCollider」を取得しようとしています。 EnemyBodyColliderは敵オブジェクトに付いているかと思いますので、これだと当然動作しません(エラーが出るのではないかと思います)。 また、Update内でGetPositionしていますが、これだと毎フレーム呼び出していることになります。 「攻撃が当たった時」というのをどう処理するかわかりませんが、Colliderと付いているので物理的な衝突判定をしたいものと推察します。 Playerスクリプト内に下記を追記してください。 ``` //衝突した時に呼ばれる. void OnCollisionEnter(Collision collision){ //衝突相手のEnemyBodyColliderを取得. EnemyBodyCollider enemyBody = collision.gameObject.GetComponent(); if (enemyBody != null) { //位置を取得. pos = enemyBody.GetPosition(); } } ``` 衝突判定の基本的な使い方は下記をご参考に。 http://wonderpla.net/blog/engineer/Introduction_Unity_4/