気軽に遊べるミニゲームを制作しています

ブラウザゲームまとめ

Unity 敵の追跡コードを作成する

Unity2D

方針

以下の方法で敵の追跡を行うコードを作成します。

1. ターゲットオブジェクトを見つける
2. プレイヤーのRigidbodyコンポーネントを取得する
3. プレイヤーとの位置関係を計算する
4. プレイヤーを移動させる

コード

Start関数でターゲットオブジェクトの発見、プレイヤーのRigidbodyコンポーネントを取得。
Update関数でプレイヤーとの位置関係を計算して、プレイヤーを移動させます。

発見するターゲットオブジェクトはインスペクター上で変更できるよう、publicにしています。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Chase : MonoBehaviour
{
    private GameObject targetObject;
    public string targetName;

    private Rigidbody2D playerRb;
    public float speed = 1.0f;


    void Start()
    {
        //ターゲットオブジェクトを見つける
        targetObject = GameObject.FindGameObjectWithTag(targetName);

        //プレイヤーのRigidbodyコンポーネントを取得する
        playerRb = GetComponent<Rigidbody2D>();
    }


    void Update()
    {
        //プレイヤーとの位置関係を計算する
        Vector2 dir = (targetObject.transform.position - this.transform.position).normalized;

        //プレイヤーを移動させる
        playerRb.velocity = new Vector2(dir.x * speed, dir.y * speed);
    }
}

Unity上の操作

ターゲットとなるオブジェクトのタグを設定します。

スクリプト上のTarget Nameを設定したタグの名前にします。
重力の影響を受けないように、RigidbodyのGravity Scaleを0にします。

動作確認

ターゲットを移動させるとプレイヤーが追跡します。

コメント

タイトルとURLをコピーしました