Пример #1
0
        static void Main(string[] args)
        {
            //Primero, creas los estados que tendra tu maquina

            State hide   = new HideState();
            State attack = new AttackState();
            State flee   = new FleeState();
            State dance  = new DanceState();

            // Luego, mapeamos cada estado y le damos etiquetas

            hide.setMap(new Dictionary <string, State> {
                { "notice_sempai", dance }
            });

            attack.setMap(new Dictionary <string, State> {
                { "afraid", flee }
            });

            flee.setMap(new Dictionary <string, State> {
                { "not_afraid", dance }
            });

            dance.setMap(new Dictionary <string, State> {
                { "not_afraid", attack },
                { "afraid", flee }
            });

            // Creamos nuestro state machine, dandole un estado inicial

            ObjectStateMachine sm = new ObjectStateMachine(hide);

            if (sm.getState() is HideState)
            {
                Console.WriteLine("Se escondio");
            }

            // Ahora le damos un input

            Dictionary <string, bool> input = new Dictionary <string, bool> {
                { "notice_sempai", true }
            };

            sm.updateState(input);

            if (sm.getState() is DanceState)
            {
                Console.WriteLine("Te noticeo");
            }
        }
Пример #2
0
        public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
        {
            danceStates = Enum.GetValues(typeof(DanceState));
            random      = new System.Random();

            DanceState danceState = (DanceState)danceStates.GetValue(random.Next(danceStates.Length));

            switch (danceState)
            {
            case DanceState.GangnamStyle:
                animator.SetTrigger("StartGangnamStyle");
                break;

            case DanceState.HipHop:
                animator.SetTrigger("StartHipHop");
                break;

            case DanceState.Shuffling:
                animator.SetTrigger("StartShuffling");
                break;
            }
        }