以下の内容はhttps://matatabi-ux.hateblo.jp/entry/2021/01/28/100000より取得しました。


Unity で操作キャラを追いかけるキャラを作る

※ これは 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 を作り、下記のように SpriteRendererAnimator を設定後、Chaser.cs というファイル名でスクリプトを作って張り付ける!

追いかけるねこの GameObject

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 をもとに操作キャラの座標との距離を計算してそちらに移動するようにしただけ

最後に ChaserCat の部分に忘れないように追いかけるねこキャラの GameObject を設定してお試し実行

追いかけるねこ

8方向に移動しながら追いかけてきた




以上の内容はhttps://matatabi-ux.hateblo.jp/entry/2021/01/28/100000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14