问答详情
源自:4-5 NPC的AI-Unity3D角色互动

怎么让ai动起来

怎么让ai动起来啊

提问者:慕粉0317406088 2018-01-20 01:16

个回答

  • 傻圆傻圆
    2018-01-29 16:48:05

    1. 选择Window->Navigation,会出现Navigation的相关设置;

    2. 选择场景中构成游戏地图的物体,点击Navigation下的Object,将Naviga Static选项勾选;

    3. 点击Navigation下的Bake,设置其中参数,最后点击右下角的Bake对所选物体进行烘焙,烘焙成功后,会在Scene视窗下看到蓝色网格;

    4. 在需要进行寻路的游戏物体上添加NavMeshAgent组件以及一个新的脚本;

    5. 脚本:加入UnityEngine.AI的命名空间,声明一个类型为NavMeshAgent类型的变量,在Start方法或者Awake方法中通过GetComponent方法获取到NavMeshAgent组件,在Update方法中使用变量的SetDestination方法设定目标位置(在脚本中添加一个共有变量GameObject,将这个物体的位置作为寻路的目标点,在上述的SetDestination方法中填入这个物体的position);

    6. using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      using UnityEngine.AI;
      
      public class Player : MonoBehaviour {
      
      	private NavMeshAgent agent;
      	public GameObject target;
      
      	// Use this for initialization
      	void Start () {
      		// 获取NavMeshAgent组件
      		agent = GetComponent<NavMeshAgent> ();
      	}
      	
      	// Update is called once per frame
      	void Update () {
      		// 设定目标位置
      		agent.SetDestination (target.transform.position);		
      	}
      
      }
    7. 不要忘记将目标物体拖到脚本的共有变量target中;
    8. 可以做一些其他的设置,不过这样就已经可以运行了,运行后的效果就是一个物体向着一个目标点进行移动。