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; } }
public static IEnumerator Execute(this IExecuteNode selfNode) { if (selfNode.Finished) { selfNode.Reset(); } while (!selfNode.Execute(Time.deltaTime)) { yield return(null); } }
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; } }
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; } }
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; } }
public static T ExecuteNode <T>(this T selBehaviour, IExecuteNode commandNode) where T : MonoBehaviour { selBehaviour.StartCoroutine(commandNode.Execute()); return(selBehaviour); }