Пример #1
0
        //变形
        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);
        }
Пример #2
0
    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;
            }
        }
    }