方針
以下の方法で敵の追跡を行うコードを作成します。
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にします。
動作確認
ターゲットを移動させるとプレイヤーが追跡します。

コメント