protected override void ProcessMsg(int key, QMsg msg) { switch (msg.msgId) { case (ushort)AudioEvent.SoundSwitch: AudioMsgWithBool soundSwitchMsg = msg as AudioMsgWithBool; mSoundOn = soundSwitchMsg.on; break; case (ushort)AudioEvent.MusicSwitch: AudioMsgWithBool musicSwitchMsg = msg as AudioMsgWithBool; mMusicOn = musicSwitchMsg.on; if (!mMusicOn) { StopMusic(); } break; case (ushort)AudioEvent.PlayMusic: Debug.LogFormat("play music msg: {0}, is musicOn: ", AudioEvent.PlayMusic.ToString(), mMusicOn); PlayMusic(msg as AudioMsgPlayMusic); break; case (ushort)AudioEvent.StopMusic: StopMusic(); break; case (ushort)AudioEvent.PlaySound: AudioMsgPlaySound audioMsgPlaySound = msg as AudioMsgPlaySound; PlaySound(audioMsgPlaySound); break; case (ushort)AudioEvent.PlayVoice: PlayVoice(msg as AudioMsgPlayVoice); break; case (ushort)AudioEvent.StopVoice: StopVoice(); break; case (ushort)AudioEvent.PlayNode: ICoroutineCmdNode msgPlayNode = (msg as AudioMsgWithNode).Node; StartCoroutine(msgPlayNode.Execute()); break; } }
public IEnumerator Execute() { if (null != OnBeganCallback) { OnBeganCallback(); } for (int i = 0; i < RepeatCount; i++) { yield return(mNode.Execute()); } if (null != OnEndedCallback) { OnEndedCallback(); } Completed = true; }
public IEnumerator ExecuteNode(ICoroutineCmdNode node) { yield return(node.Execute()); mExecutedNodeCount++; }