コード例 #1
0
        protected override void ProcessMsg(int key, QMsg msg)
        {
            switch (msg.msgId)
            {
            case (int)AudioEvent.SoundSwitch:
                AudioMsgWithBool soundSwitchMsg = msg as AudioMsgWithBool;
                SoundOn = soundSwitchMsg.on;
                break;

            case (int)AudioEvent.MusicSwitch:
                AudioMsgWithBool musicSwitchMsg = msg as AudioMsgWithBool;
                MusicOn = musicSwitchMsg.on;
                if (!MusicOn)
                {
                    StopMusic();
                }
                break;

            case (int)AudioEvent.PlayMusic:
                Debug.LogFormat("play music msg: {0}, is musicOn: ", AudioEvent.PlayMusic.ToString(), MusicOn);
                PlayMusic(msg as AudioMusicMsg);
                break;

            case (int)AudioEvent.StopMusic:
                StopMusic();
                break;

            case (int)AudioEvent.PlaySound:
                AudioSoundMsg audioSoundMsg = msg as AudioSoundMsg;
                PlaySound(audioSoundMsg);
                break;

            case (int)AudioEvent.PlayVoice:
                PlayVoice(msg as AudioVoiceMsg);
                break;

            case (int)AudioEvent.StopVoice:
                StopVoice();
                break;

            case (int)AudioEvent.PlayNode:
                IExecuteNode msgPlayNode = (msg as AudioMsgWithNode).Node;
                StartCoroutine(msgPlayNode.Execute());
                break;

            case (int)AudioEvent.AddRetainAudio:
                AddRetainAudioMsg addRetainAudioMsg = msg as AddRetainAudioMsg;
                AddRetainAudio(addRetainAudioMsg.AudioName);
                break;

            case (int)AudioEvent.RemoveRetainAudioAudio:
                RemoveRetainAudioMsg removeRetainAudioMsg = msg as RemoveRetainAudioMsg;
                RemoveRetainAudio(removeRetainAudioMsg.AudioName);
                break;
            }
        }
コード例 #2
0
        public static IEnumerator Execute(this IExecuteNode selfNode)
        {
            if (selfNode.Finished)
            {
                selfNode.Reset();
            }

            while (!selfNode.Execute(Time.deltaTime))
            {
                yield return(null);
            }
        }
コード例 #3
0
        protected override void OnExecute(float dt)
        {
            if (RepeatCount == -1)
            {
                if (mNode.Execute(dt))
                {
                    mNode.Reset();
                }
                return;
            }

            if (mNode.Execute(dt))
            {
                mNode.Reset();
                mCurRepeatCount++;
            }

            if (mCurRepeatCount == RepeatCount)
            {
                Finished  = true;
                Completed = true;
            }
        }
コード例 #4
0
        protected override void OnExecute(float dt)
        {
            if (LoopCount < 0)
            {
                if (mNode.Execute(dt))
                {
                    mNode.ResetState();
                }

                return;
            }

            if (mNode.Execute(dt))
            {
                mNode.ResetState();
                mCurLoopIndex++;
            }

            if (mCurLoopIndex == LoopCount)
            {
                Finished = true;
            }
        }
コード例 #5
0
        protected override void OnExecute(float dt)
        {
            if (_repeatCount == -1)
            {
                if (_executeNode.Execute(dt))
                {
                    _executeNode.Reset();
                }
                return;
            }

            if (_executeNode.Execute(dt))
            {
                _executeNode.Reset();
                _curRepeatCount++;
            }

            if (_curRepeatCount == _repeatCount)
            {
                Finished   = true;
                _completed = true;
            }
        }
コード例 #6
0
 public static T ExecuteNode <T>(this T selBehaviour, IExecuteNode commandNode) where T : MonoBehaviour
 {
     selBehaviour.StartCoroutine(commandNode.Execute());
     return(selBehaviour);
 }