コード例 #1
0
        private void OnAnticipation()
        {
            m_anticipationParticle.Play();

            m_currState = ManHoleState.Anticipation;
            m_currTimer = m_anticipationDuration;
        }
コード例 #2
0
        private void OnAttack()
        {
            m_attackSoundInstance.start();
            m_anticipationParticle.Stop();
            m_attackTrigger.Enable(m_attackStruct.attackDatas[0]);
            m_attackParticle.Play();

            m_currState = ManHoleState.Attack;
            m_currTimer = m_attackDuration;
        }
コード例 #3
0
        private void OnWait()
        {
            m_attackSoundInstance.stop(FMOD.Studio.STOP_MODE.ALLOWFADEOUT);
            m_attackParticle.Stop();
            m_attackTrigger.Disable();
            m_anticipationParticle.Stop();

            m_currState = ManHoleState.Wait;
            m_currTimer = m_waitDuration;
        }
コード例 #4
0
        public void SwitchToNextState()
        {
            if (m_isActive)
            {
                m_currState++;
                if (m_currState == ManHoleState.StateCount)
                {
                    m_currState = 0;
                }

                SwitchToState(m_currState);
            }
            else
            {
                SwitchToState(ManHoleState.Wait);
            }
        }
コード例 #5
0
        private void SwitchToState(ManHoleState state)
        {
            switch (state)
            {
            case ManHoleState.Wait:
                OnWait();
                break;

            case ManHoleState.Anticipation:
                OnAnticipation();
                break;

            case ManHoleState.Attack:
                OnAttack();
                break;

            default:
                break;
            }
        }