Unity5权威讲解之菜鸟读书笔记(四)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40695551/article/details/78539709

    Unity5权威讲解之菜鸟读书笔记(四)

16.Mecanim动画系统
动画类型
类型 特征
Legacy Unity4.0 之前版本中使用的动画系統
Generic Mecanim动画系统(非人形模型),无法使用重新设定目标功能
Humaniod Mecanim动画系统(人形模型、2足步行模型),可以重新设定目标
更改动画类型后记得点击Apply保存。
点击Configure按钮看骨骼是否映射成功。

17.创建动画控制器(Animator Controller)

状态分类 作用
Entry 开始状态,状态机最初进入点
Exit 结束状态,所有状态结束的终态
Any State 无论当前正在以何种状态运行,只要满足条件,都需要分离的任一状态


Parameters选项变量为
         Float:浮点型(speed)
         Int:整形(多用于控制状态机内部的整型参数)
         Bool:布尔值(isRun)
         Trigger:本质上也是一个Bool类型的参数,但是其值默认为false,且设置为true后系统会自动将其还原为false;

            Has Exit Time有存在时间,表示动画必须播放完毕后才跳转到下一个动画,去掉勾选可以直接进行跳转。

18.导航系统
1.先将Floor模型设置为Navigation Static。如果有障碍物也要修改为Navigation Static。
2.Nav Mesh Agent 分析烘培的导航网络,回避障碍物,追踪目标。
简单的追踪代码:
     private Transform player;
    // 获取玩家位置
    private Transform monsterTr;
  private  NavMeshAgent nav;
    // 获取NavMesh Agen't


    void Awake()
    {
        monsterTr = this.gameObject.GetComponent<Transform>();
        // 引用赋值
        player = GameObject.FindGameObjectWithTag("Player").transform;


        // 如果场景层级过多,建议不要使用 FindGameObjectWithTag的方法
        //  鉴于这种情况,可以把玩家设置成公共变量,或者从检视面板中设置引用


        nav = GetComponent<NavMeshAgent>();
    }


    void Update()
    {
        // 设置目标为玩家的寻路代理的目的地
        nav.SetDestination(player.position);
    }
 GameObject.FindGameObjectWithTag("  ")函数处理速度比较慢,最好不要在Update函数中使用,而在Awake,Start中使用。

猜你喜欢

转载自blog.csdn.net/qq_40695551/article/details/78539709