※ これは 2021/01/22 時点の Unity 2020.2.2f1 の情報です
最新版では動作が異なる可能性がありますのでご注意ください
前回は8方向にねこキャラを動かしてみたので、今度は動かすねこを追いかけるねこキャラを追加したい
追いかける8方向のキャラ絵は下記のサイトから茶トラ猫のキャラ絵をお借りした
http://obane.tuzikaze.com/index.html
茶トラねこのキャラは前回と同様に8方向に動けるように BlendTree アニメーションを設定
https://www.matatabi-ux.com/entry/2021/01/21/100000
その後 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方向に移動しながら追いかけてきた