NavMeshAgentを使ってキャラクターを移動させる際、速度や加速度などを状況に応じて変更したい場合があると思います。この記事では、NavMeshAgentの主要なプロパティ(Speed, AngularSpeed, Acceleration, StoppingDistance, AutoBraking)をスクリプトから変更する方法を紹介します。
using UnityEngine;
using UnityEngine.AI;
public class EnemyAgent : MonoBehaviour
{
public GameObject target;
public float newSpeed = 7f;
public float newAngularSpeed = 240f;
public float newAcceleration = 16f;
public float stoppingDistance = 5f;
public bool autoBraking = false;
private NavMeshAgent agent;
void Start()
{
agent = GetComponent<NavMeshAgent>();
agent.destination = target.transform.position;
agent.speed = newSpeed;
agent.angularSpeed = newAngularSpeed;
agent.acceleration = newAcceleration;
agent.stoppingDistance = stoppingDistance;
agent.autoBraking = autoBraking;
}
}
上記のコードを、AgentにアタッチしInspectorからTargetに目標となるゲームオブジェクトを設定してシーンを実行すると NavMeshAgentのプロパティが変更されます。