ハンター
CoddyのUnityジャーニー「物理演算とゲームプレイ」セクションの一部。レッスン 60/71。
チャレンジ
中級Hunterを完成させて、ハンターがプレイヤーを追いかけるようにしましょう。Playerは完成しているので、そのままにしておきます。
[SerializeField] private float speed = 3f;とprivate Transform player;を追加します。Start()で、player = GameObject.FindWithTag("Player").transform;を設定します。FixedUpdate()で、player.position - rb.positionを取得し、そのyを0にして正規化します。rb.linearVelocityのxとzにspeedを掛けた値を設定し、rb.linearVelocity.yはそのままにします。
「プレイ」を押して、近づかないようにしましょう。それから「確認」を押します。
自分で試してみよう
using UnityEngine;
public class Hunter : MonoBehaviour
{
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
// プレイヤーを追いかける: タグでプレイヤーを見つけ、物理演算の各ステップでプレイヤーに向かって走る
}
物理演算とゲームプレイのすべてのレッスン
自分で練習してみよう: Unityプレイグラウンド