• SurvivalShooter学习笔记(三.敌人移动)


    1.敌人和玩家若存活,敌人始终朝着玩家所在位置移动,所以要给玩家物体一个Tag:Player从而找到玩家

    2.敌人的自动寻路使用Unity自带的NavMeshAgent寻路组件寻路,要先把场景中不动的物体勾选Static,然后Navigation-Bake烘焙


    移动 代码如下:

     public class EnemyMovement : MonoBehaviour
        {
            Transform player;               // 玩家位置变量.
            PlayerHealth playerHealth;      // 玩家生命脚本
            EnemyHealth enemyHealth;        // 敌人生命脚本
            UnityEngine.AI.NavMeshAgent nav; //敌人身上寻路组件
    
            void Awake ()
            {
                // 获取组件
                player = GameObject.FindGameObjectWithTag ("Player").transform; //根据Tag找到玩家
                playerHealth = player.GetComponent <PlayerHealth> ();
                enemyHealth = GetComponent <EnemyHealth> ();
                nav = GetComponent <UnityEngine.AI.NavMeshAgent> ();//获取物体身上寻路组件
            }
    
            void Update ()
            {
                // 如果主角和敌人都存活
                if(enemyHealth.currentHealth > 0 && playerHealth.currentHealth > 0)
                {
                    // 使用寻路组件朝玩家位置寻路
                    nav.SetDestination (player.position);
                }
                else
                {
                    //主角或敌人死亡,停止寻路,禁用寻路组件
                    nav.enabled = false;
                }
            }
        }



    3.敌人小怪身上状态机:默认移动,始终朝着敌人移动;直到玩家死亡,才切换到待机状态


    4.小怪身上挂刚体组件,Drag和Angular Drag都设置为Inf无限大,使用重力取消物理属性。勾选禁用Y方向移动和XZ方向旋转


    5.小怪身上加CapsuleCollider组件,调整适配,不勾选IsTrigger


    6.小怪身上加大一点的SphereCollider组件,勾选IsTrigger,作为进入攻击玩家范围的触发判断用

    注意:

    7.本例中有三种怪,其中两种怪是用的一套动画,而大象是单独一套动画

    但是,大象的动画状态机和其他的是一个逻辑,所以为了复用状态参数以及状态机的逻辑,不新建AnimatorController,而是

    复用状态机:AnimatorOverrideController(针对动画不同,但是状态机逻辑与参数都相同的情况:如多种角色)

    Controller拖入复用的源状态机,然后分别拖入相应动画:


    因此需要注意,父AC的改变会影响override的AC。


  • 相关阅读:
    第三十四节(java-实现在线翻译)
    第三十三节(java-操作Excel实现企业级批量处理大数据)
    第三十二节( Java-实现体育彩票开奖系统)
    第三十一节(java-实现QQ空间访问量统计系统)
    第三十节(java-实现水印图片)
    使用VBA批量CSV转XLS(97-2003)
    WPF中Datagrid控件添加行号
    简单多播委托Demo
    使用Linq查找重复
    简单的操作符重载,笔记
  • 原文地址:https://www.cnblogs.com/caymanlu/p/6361689.html
Copyright © 2020-2023  润新知