示例#1
0
文件: ZombieAI.cs 项目: kanc/DSOW
    // Use this for initialization
    void Start()
    {
        //get reference to animator component
        m_Animator = GetComponent <Animator>();

        //get player reference
        Player cmpPlayer = (Player)GameObject.FindObjectOfType(typeof(Player));

        if (cmpPlayer != null)
        {
            m_Player = cmpPlayer.gameObject;
        }
        else
        {
            m_Player = null;
        }

        //get ground position
        GetGroundPosition();

        //get distance close to player to stop movement
        CloseOffset = AttackRangeSquare - 1;

        //asign random value for movement animations
        WalkType = Random.value;

        //get zombie speed
        Speed = (RandomSpeed) ? Random.Range(0.2f, 2.0f) : Speed;

        //initial state
        m_eState = GlobalData.ZombieState.Rising;
    }
示例#2
0
文件: ZombieAI.cs 项目: kanc/DSOW
    void ChangeState(GlobalData.ZombieState newState)
    {
        //manage state transitions
        switch (m_eState)
        {
        case GlobalData.ZombieState.Attack: OnExitAttacking(); break;
        }

        m_eState = newState;

        switch (m_eState)
        {
        case GlobalData.ZombieState.Moving: OnEnterMoving();    break;

        case GlobalData.ZombieState.Attack: OnEnterAttacking(); break;

        case GlobalData.ZombieState.Death:  OnEnterDeath();     break;
        }
    }