public string CrossFadeAuxiliaryDirectly(AnimationClip clip, AnimSettings settings, float fadeLength, PlayMode playMode = PlayMode.StopSameLayer, string auxId = null) { if (_animation == null) { throw new AnimationInvalidAccessException(); } if (clip == null) { throw new System.ArgumentNullException("clip"); } if (!_initialized) { this.Init(); } if (this.ControllerMask != null && !this.ControllerMask.CanPlay(clip, settings)) { return(null); } var id = this.AddAuxiliaryClip(clip, auxId); var anim = _animation[id]; settings.Apply(anim); this.CrossFadeInternal(id, fadeLength, playMode, anim.layer); return(id); }
public static AnimSettings Intersect(AnimSettings settings, AnimSettings with, AnimSettingsMask mask) { if ((mask & AnimSettingsMask.Weight) != 0) { settings.weight = with.weight; } if ((mask & AnimSettingsMask.Speed) != 0) { settings.speed = with.speed; } if ((mask & AnimSettingsMask.Layer) != 0) { settings.layer = with.layer; } if ((mask & AnimSettingsMask.WrapMode) != 0) { settings.wrapMode = with.wrapMode; } if ((mask & AnimSettingsMask.BlendMode) != 0) { settings.blendMode = with.blendMode; } if ((mask & AnimSettingsMask.TimeSupplier) != 0) { settings.timeSupplier = with.timeSupplier; } return(settings); }
public SPAnim CrossFadeAuxiliary(AnimationClip clip, AnimSettings settings, float fadeLength, QueueMode queueMode = QueueMode.PlayNow, PlayMode playMode = PlayMode.StopSameLayer, string auxId = null) { if (_animation == null) { throw new AnimationInvalidAccessException(); } if (clip == null) { throw new System.ArgumentNullException("clip"); } if (!_initialized) { this.Init(); } if (this.ControllerMask != null && !this.ControllerMask.CanPlay(clip, settings)) { return(null); } var id = this.AddAuxiliaryClip(clip, auxId); var anim = SPAnim.Create(_animation, id); settings.Apply(anim); anim.CrossFade(fadeLength, queueMode, playMode); return(anim); }
private object PlayClip(SPAnimationController controller, UnityEngine.Object clip) { if (controller == null || !controller.isActiveAndEnabled || clip == null) { return(null); } if (clip is AnimationClip) { if (_crossFadeDur > 0f) { return(controller.CrossFadeAuxiliary(clip as AnimationClip, (_settingsMask != 0) ? AnimSettings.Intersect(AnimSettings.Default, _settings, _settingsMask) : AnimSettings.Default, _crossFadeDur, _queueMode, _playMode)); } else { return(controller.PlayAuxiliary(clip as AnimationClip, (_settingsMask != 0) ? AnimSettings.Intersect(AnimSettings.Default, _settings, _settingsMask) : AnimSettings.Default, _queueMode, _playMode)); } } else if (clip is IScriptableAnimationClip) { return(controller.Play(clip as IScriptableAnimationClip)); } return(null); }
public bool CanPlay(AnimationClip clip, AnimSettings settings) { return(TestLayer(settings.layer)); }