예제 #1
0
    // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        if (_objectMap == null)
        {
            _objectMap = GameObject.FindWithTag("StateMachine").GetComponent <GameObjectMap>();
        }
        if (_autoReverse)
        {
            _activityMap = new Dictionary <GameObject, bool>();
        }
        foreach (string s in _deactivate)
        {
            GameObject g = _objectMap.Get(s);
            if (_autoReverse)
            {
                _activityMap.Add(g, g.activeSelf);
            }
            g.SetActive(false);
        }

        foreach (string s in _activate)
        {
            GameObject g = _objectMap.Get(s);
            if (_autoReverse)
            {
                _activityMap.Add(g, g.activeSelf);
            }
            g.SetActive(true);
        }
    }
예제 #2
0
    // OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
    //override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
    //
    //}

    // OnStateExit is called when a transition ends and the state machine finishes evaluating this state
    //override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
    //
    //}

    // OnStateMove is called right after Animator.OnAnimatorMove(). Code that processes and affects root motion should be implemented here
    //override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
    //
    //}

    // OnStateIK is called right after Animator.OnAnimatorIK(). Code that sets up animation IK (inverse kinematics) should be implemented here.
    //override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
    //
    //}

    private void initIfNeeded()
    {
        if (_initialized)
        {
            return;
        }
        _objectMap      = GameObject.FindWithTag("StateMachine").GetComponent <GameObjectMap>();
        _playerLauncher = _objectMap.Get("PlayerLauncher").GetComponent <PlayerLauncher>();
        _spawner        = _objectMap.Get("EnemySpawner").GetComponent <EnemySpawner>();
    }