※ これは 2021/01/22 時点の Unity 2020.2.2f1 の情報です
最新版では動作が異なる可能性がありますのでご注意ください
前回は8方向にねこキャラを動かしてみたので、今度は動かすねこを追いかけるねこキャラを追加したい
追いかける8方向のキャラ絵は下記のサイトから茶トラ猫のキャラ絵をお借りした
スポンサードリンク
茶トラねこのキャラは前回と同様に8方向に動けるように BlendTree アニメーションを設定
その後 Hierarchy 上に Chaser
という名前で GameObject
を作り、下記のように SpriteRenderer
と Animator
を設定後、Chaser.cs
というファイル名でスクリプトを作って張り付ける!
Chaser.cs
の中身はこう
using UnityEngine; public class Chaser: MonoBehaviour { [SerializeField] private Cat cat = null; private Animator animator = null; private Vector2 move = Vector2.zero; public void Awake() { this.animator = this.GetComponent<Animator>(); } public void Update() { if (this.move != Vector2.zero) { this.transform.Translate(this.move); } } public void FixedUpdate() { // 距離を測る var distance = this.cat.transform.position - this.transform.position; var normalized = new Vector3(Mathf.Round(distance.normalized.x), Mathf.Round(distance.normalized.y), 0); // 斜め方向も許容 if (normalized != Vector3.zero) { this.animator.SetFloat("x", normalized.x); this.animator.SetFloat("y", normalized.y); } // 追跡 this.move = normalized * Time.deltaTime * 0.2f; } }
Cat.cs
をもとに操作キャラの座標との距離を計算してそちらに移動するようにしただけ
最後に Chaser
の Cat
の部分に忘れないように追いかけるねこキャラの GameObject
を設定してお試し実行
8方向に移動しながら追いかけてきた