ChangeState() private method

private ChangeState ( State, newState ) : void
newState State,
return void
Esempio n. 1
0
    private void ChangeState(S_JohnState currentState, S_JohnState nextState)
    {
        switch (currentState)
        {
        case S_JohnState.Idle:
            switch (nextState)
            {
            case S_JohnState.MoveTowards:
                break;
            }
            break;

        case S_JohnState.MoveTowards:
            switch (nextState)
            {
            case S_JohnState.Idle:
                break;

            case S_JohnState.Patrol:
                break;

            case S_JohnState.BullyAction:
                break;
            }
            break;

        case S_JohnState.BullyAction:
            switch (nextState)
            {
            case S_JohnState.RunAway:
                break;

            case S_JohnState.BullyAction:
                Collider[] l_nearActors;
                l_nearActors = Physics.OverlapSphere(this.transform.position, m_proximityRadius);

                foreach (Collider nearActor in l_nearActors)
                {
                    if (nearActor.gameObject.tag == "Actor")
                    {
                        Actor l_actor = nearActor.gameObject.GetComponent <Actor>();
                        l_actor.ChangeState(l_actor.m_currentState, S_ActorState.BullyActionGroupal);

                        if (m_hp == 1)
                        {
                            //hacer que el grupo se active y le persiga
                            foreach (Actor actor in L_actors)
                            {
                                actor.ChangeState(actor.m_currentState, S_ActorState.MoveTowards);
                                m_newDestination = m_waitingPoint.position;
                            }
                        }
                    }
                }

                break;
            }
            break;
        }
    }
Esempio n. 2
0
        /// <summary>
        /// Changes the state of its state machine by the specified transition name.
        /// </summary>
        /// <param name="transitionName">Transition name to move to.</param>
        public void ChangeState(string transitionName)
        {
            State newState;

            if (transitions.TryGetValue(transitionName, out newState))
            {
                Actor.ChangeState(this, newState);
            }
        }