取り組んでいること
Battle Tank -敵の攻撃を作る➁(プレイヤーを感知して向きを変える)-でFPSのようなゲームを作る勉強をしています。このサイトに書かれているRadarスクリプトの中でわからないところがありました。
わからないところ
敵のタンクがプレイヤータンクの方に向かうように以下のようなスクリプトをこのサイトさんの方では書いていました。
public class Detect_Enemy : MonoBehaviour { [SerializeField] private Transform target; private void OnTriggerStay(Collider other) { if (other.gameObject.CompareTag("Player")) { transform.root.LookAt(target); } } }
ここで一つ疑問に思ったのが、なぜtransformとLookAtの中にrootやparentを入れなければいけないのでしょうか?試しに、transform.LookAtと書いてみた所、敵タンクはプレイヤータンクには向きませんでした。
自分なりの考察
自分が作っているゲームのヒエラルキーは以下のような階層になっています。
追記:Detect_Enemyというスクリプトは画像上のEnemyShotShellというオブジェクトに付けています。そして、このスクリプトの中にあるtargetという変数の中には画像にあるTankというゲームオブジェクトのtransformを入れています
ここで、私が考えたのはEnemyShotShellというオブジェクトは子階層でTankは階層が一個上のため、この二つのオブジェクトが同階層に居ないのでtransform.LookAtでは動かなかったのではと考えました。だからこそ、どこの階層に居るのかを明示するためrootやparentを使っているのではないかと考えたのですが、この理解で合っていますでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/09 06:15