Esempio n. 1
0
    //启动时调用
    void Start()
    {
        //获取僵尸的各种组件
        agent           = GetComponent <NavMeshAgent>();
        animator        = GetComponent <Animator>();
        zombieHealth    = GetComponent <ZombieHealth> ();
        zombieSensor    = GetComponentInChildren <ZombieSensor> ();
        zombieRender    = GetComponent <ZombieRender> ();
        zombieTransform = transform;
        //把僵尸感知到的玩家字段设置为null
        targetPlayer = null;

        EnableZombie(false);
        AIInitFinish = true;
    }
    private Transform targetPlayer;                 //僵尸感知范围内的玩家

    //初始化
    void OnEnable()
    {
        zombieTransform = transform;                                    //获取Transform组件
        animator        = GetComponent <Animator>();                    //获取动画管理器组件
        agent           = GetComponent <NavMeshAgent>();                //获取NavMeshAgent组件
        //agent.updateRotation = false;
        //agent.updatePosition = false;

        zombieHealth      = GetComponent <ZombieHealth> ();                //获取僵尸生命值管理组件
        zombieSoundSensor = GetComponentInChildren <ZombieSoundSensor> (); //获取僵尸感知器组件
        zombieRender      = GetComponent <ZombieRender>();                 //获取僵尸渲染器控制组件

        targetPlayer = null;                                               //僵尸初始化时,未发现玩家,该值设为null
        curState     = FSMState.Wander;                                    //初始化僵尸状态
    }
Esempio n. 3
0
    private bool firstInDead = true;                    //僵尸是否首次进入死亡状态


    void OnEnable()
    {
        //获取僵尸的各种组件
        agent           = GetComponent <NavMeshAgent>();
        animator        = GetComponent <Animator>();
        zombieHealth    = GetComponent <ZombieHealth> ();
        zombieSensor    = GetComponentInChildren <ZombieSensor> ();
        zombieRender    = GetComponent <ZombieRender> ();
        zombieTransform = transform;
        //把僵尸感知到的玩家字段设置为null
        targetPlayer = null;
        //初始状态为死亡状态
        currentState = FSMState.Dead;
        //禁用导航代理组件
        agent.enabled = false;
        //自动初始化僵尸
        if (autoInit)
        {
            Born();
        }
    }