この号では自動パスファインディングについて説明します。Unity にはメインキーとして強力なエンジンとコンポーネント NavMeshAgent があり、数行のコードを使用してキャラクターのブレーキパスファインディング機能を解決できます。
自動経路検索を完了するには、まずこの主キーを追加し、地形を選択して静的に設定する必要があります。
次に地形をベイクします
次にベイクを選択し、そこで使用するベイクを選択します
次にコードセグメントですが、ここでは UnityEngine.AI を使用して AI の名前空間を導入する必要があることに注意してください。
public class Animators : MonoBehaviour {
private Animator an;
private NavMeshAgent agent; //动态加载这个组件
// Use this for initialization
void Start () {
an=GetComponent<Animator>();//使用这个组件
agent=GetComponent<NavMeshAgent>();
}
// Update is called once per frame
void Update () {
Move();
}
void Move()
{
if(Input.GetMouseButton(0))//点击鼠标左键生成一条射线
{
an.SetBool("Walk", true);//播放动画
Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray,out hit))
{
agent.SetDestination(hit.point);//判断鼠标点击的位置,人物制动寻路到这个地方
}
}
if(agent.remainingDistance < 0.5f)
{
an.SetBool("Walk", false);//播放动画
}
}
}
この自動経路探索は障害物を回避することもできます。このコンポーネントを障害物に追加する必要があります。