//变形 protected virtual CommandReplyType CheckVariation(VariationCommand cmd) { if (CannotControlSelf()) { return(CommandReplyType.NO); } if (GetActorState(ActorStateType.IsDivine)) { return(CommandReplyType.NO); } m_ActorSkill.Clear(); ChangeState <ActorVariationFsm>(); return(CommandReplyType.YES); }
private static void StopPauseOrUnpauseSoundsOfTransform(Transform trans, List<AudioInfo> varList, VariationCommand varCmd) { MasterAudioGroup grp = null; for (var v = 0; v < varList.Count; v++) { var variation = varList[v].variation; if (!variation.WasTriggeredFromTransform(trans)) { continue; } if (grp == null) { var sType = variation.ParentGroup.name; grp = GrabGroup(sType); } var stopEndDetector = grp != null && grp.curVariationMode == MasterAudioGroup.VariationMode.LoopedChain; // matched, stop or pause the audio. switch (varCmd) { case VariationCommand.Stop: variation.Stop(stopEndDetector); break; case VariationCommand.Pause: variation.Pause(); break; case VariationCommand.Unpause: if (AudioUtil.IsAudioPaused(variation.audio)) { variation.audio.Play(); } break; } } }