public void PlayAutomatically_WithNo_DefaultClip_HasNoEffect_OnOtherClips([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; animation.playAutomatically = true; animation.AddClip(clipInstance, clipInstance.name); var newGO = Object.Instantiate <GameObject>(animation.gameObject); animation = newGO.GetComponent <IAnimation>(); Assert.AreEqual(false, animation.isPlaying); }
public IEnumerator State_Enabled_AfterStateEnd_ReturnsFalse([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; animation.AddClip(clipInstance, "ValidName"); IAnimationState state = animation.GetState("ValidName"); state.enabled = true; yield return(new WaitForSeconds(1.1f)); Assert.IsFalse(state.enabled); }
public IEnumerator Rewind_ValidName_Playing_StateTime_IsZero([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clipX = Resources.Load <AnimationClip>("LinearX"); var clipInstanceX = Object.Instantiate <AnimationClip>(clipX); clipInstanceX.legacy = animation.usesLegacy; animation.AddClip(clipInstanceX, "ValidName"); animation.Play("ValidName"); yield return(new WaitForSeconds(0.5f)); animation.Rewind("ValidName"); IAnimationState state = animation.GetState("ValidName"); Assert.AreEqual(0f, state.time); }
public void State_Enabled_False_IsPlaying_ReturnsFalse([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; animation.AddClip(clipInstance, "ValidName"); IAnimationState state = animation.GetState("ValidName"); animation.Play(state.name); state.enabled = false; Assert.IsFalse(animation.isPlaying); Assert.IsFalse(animation.IsPlaying(state.name)); }
public void Blend_DoesntChange_OtherState_Weight([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clipX = Resources.Load <AnimationClip>("LinearX"); var clipInstance1 = Object.Instantiate <AnimationClip>(clipX); var clipInstance2 = Object.Instantiate <AnimationClip>(clipX); clipInstance1.legacy = animation.usesLegacy; clipInstance2.legacy = animation.usesLegacy; animation.AddClip(clipInstance1, "ToBlend"); animation.AddClip(clipInstance2, "ToLeaveAlone"); animation.Play("ToLeaveAlone"); animation.Blend("ToBlend", 1f, 0f); Assert.AreEqual(1f, animation.GetState("ToLeaveAlone").weight); }
public IEnumerator CrossfadedOut_Clips_AreTimeReset([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; animation.AddClip(clipInstance, "ToPlay"); animation.AddClip(clipInstance, "ToCrossfade"); animation.Play("ToPlay"); animation.CrossFade("ToCrossfade", 0.1f); yield return(new WaitForSeconds(0.2f)); Assert.AreEqual(0.0f, animation.GetState("ToPlay").normalizedTime); }
public void DefaultClip_Plays_When_IsPlayingAutomatically_IsTrue([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; animation.clip = clipInstance; animation.playAutomatically = true; var newGO = Object.Instantiate <GameObject>(animation.gameObject); animation = newGO.GetComponent <IAnimation>(); Assert.AreEqual(true, animation.isPlaying); Assert.AreEqual(true, animation.IsPlaying(animation.clip.name)); }
public void State_Time_SetPast_ClipEnd_Doesnt_Immediately_StopState([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; animation.AddClip(clipInstance, "ValidName"); IAnimationState state = animation.GetState("ValidName"); animation.Play(state.name); state.time = 2.0f; Assert.IsTrue(state.enabled, "State should be enabled"); Assert.IsTrue(animation.IsPlaying(state.name), "State should be playing"); Assert.IsTrue(animation.isPlaying, "Component should be playing"); }
public IEnumerator WrapMode_DoesntOverrideClipsSetting([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; clipInstance.wrapMode = WrapMode.Once; animation.wrapMode = WrapMode.Loop; animation.AddClip(clipInstance, "test"); animation.Play("test"); yield return(new WaitForSeconds(1.2f)); Assert.AreEqual(false, animation.isPlaying); }
public IEnumerator Rewind_PlaysFrameZero([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clipX = Resources.Load <AnimationClip>("LinearX"); var clipInstanceX = Object.Instantiate <AnimationClip>(clipX); clipInstanceX.legacy = animation.usesLegacy; animation.AddClip(clipInstanceX, "ValidName"); animation.Play("ValidName"); yield return(new WaitForSeconds(0.5f)); Assert.AreNotEqual(0f, animation.gameObject.transform.localPosition.x); animation.Rewind("ValidName"); yield return(null); Assert.AreEqual(0f, animation.gameObject.transform.localPosition.x); }
public IEnumerator Stop_ValidName_DoesntMoveObject([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clipX = Resources.Load <AnimationClip>("LinearX"); var clipInstanceX = Object.Instantiate <AnimationClip>(clipX); clipInstanceX.legacy = animation.usesLegacy; animation.AddClip(clipInstanceX, "ValidName"); animation.Play("ValidName"); yield return(null); Vector3 localPos = animation.gameObject.transform.localPosition; animation.Stop("ValidName"); Assert.AreEqual(localPos, animation.gameObject.transform.localPosition); }
public IEnumerator PlayQueue_Queueing_SameClip_AfterFirstClipIsDone_IsPlaying_ReturnsTrue([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; animation.AddClip(clipInstance, "ToPlayAndPlayQueue"); animation.Play("ToPlayAndPlayQueue"); animation.PlayQueued("ToPlayAndPlayQueue", QueueMode.CompleteOthers); yield return(new WaitForSeconds(1.1f)); Assert.IsTrue(animation.IsPlaying("ToPlayAndPlayQueue")); yield return(null); }
public IEnumerator PlayQueue_WithClipPlaying_IsStatePlaying_ReturnsFalse([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; animation.AddClip(clipInstance, "ToPlay"); animation.AddClip(clipInstance, "ToPlayQueue"); animation.Play("ToPlay"); animation.PlayQueued("ToPlayQueue", QueueMode.CompleteOthers); Assert.IsFalse(animation.IsPlaying("ToPlayQueue")); yield return(null); }
public void State_Weight_SetWeight_DoesntChange_Enable([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; animation.AddClip(clipInstance, "ValidName"); IAnimationState state = animation.GetState("ValidName"); state.weight = 1f; Assert.IsFalse(state.enabled); state.enabled = true; state.weight = 0f; Assert.IsTrue(state.enabled); }
public IEnumerator Queue_Looped_Clips_Block_QueuedAnimations([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; clipInstance.wrapMode = WrapMode.Loop; animation.AddClip(clipInstance, "Play"); animation.AddClip(clipInstance, "Queued"); animation.Play("Play"); animation.PlayQueued("Queued", QueueMode.CompleteOthers); yield return(new WaitForSeconds(1.1f)); Assert.IsFalse(animation.IsPlaying("Queued")); }
public void State_Time_Affects_ClipPlayback([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; animation.AddClip(clipInstance, "ValidName"); IAnimationState state = animation.GetState("ValidName"); state.enabled = true; state.weight = 1f; state.time = 0.5f; animation.Sample(); Assert.AreEqual(animation.gameObject.transform.localPosition.x, state.time, "Sampling should have updated the position of the object at time 0.5"); }
public void RemoveClip_AnimationClip_DoesntRemoveUnrelatedClips([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clip2 = Resources.Load <AnimationClip>("LinearY"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; var clipInstance2 = Object.Instantiate <AnimationClip>(clip2); clipInstance2.legacy = animation.usesLegacy; animation.AddClip(clipInstance, clipInstance.name); animation.AddClip(clipInstance2, clipInstance2.name); animation.RemoveClip(clipInstance); Assert.AreEqual(1, animation.GetClipCount(), "Component should still have 1 connected clip after remove"); Assert.NotNull(animation.GetState(clipInstance2.name)); }
public IEnumerator State_Weight_NonZero_Writes([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; animation.AddClip(clipInstance, "ValidName"); IAnimationState state = animation.GetState("ValidName"); state.enabled = true; state.weight = 1f; state.time = 0.5f; //Seek the clip so that values should be written; yield return(null); Assert.AreNotEqual(0f, animation.gameObject.transform.localPosition.x); }
public void State_Speed_DoesntAffect_NormalizedTime([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; clipInstance.wrapMode = WrapMode.Loop; animation.AddClip(clipInstance, "ValidName"); IAnimationState state = animation.GetState("ValidName"); state.time = 0.5f; float normalizedTime = state.normalizedTime; state.speed = 10.0f; Assert.AreEqual(normalizedTime, state.normalizedTime); }
public IEnumerator State_Enabled_DoesntCover_QueuedState([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; animation.AddClip(clipInstance, "PlayAndQueue"); animation.Play("PlayAndQueue"); animation.PlayQueued("PlayAndQueue", QueueMode.CompleteOthers); IAnimationState state = animation.GetState("PlayAndQueue"); Assert.IsTrue(state.enabled); yield return(new WaitForSeconds(1.1f)); Assert.IsFalse(state.enabled); }
public IEnumerator Play_SameClip_StateTime_DoesntChange([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; animation.AddClip(clipInstance, "test"); animation.Play("test"); yield return(null); float time = animation.GetState("test").time; animation.Play("test"); Assert.AreEqual(time, animation.GetState("test").time); }
public void Sample_EvaluatesAt_StateTime([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clipX = Resources.Load <AnimationClip>("LinearX"); var clipInstanceX = Object.Instantiate <AnimationClip>(clipX); clipInstanceX.legacy = animation.usesLegacy; animation.AddClip(clipInstanceX, "ToSample"); IAnimationState state = animation.GetState("ToSample"); state.enabled = true; state.weight = 1f; state.time = 0.5f; animation.Sample(); Assert.AreEqual(0.5f, animation.gameObject.transform.localPosition.x); }
public void Sample_DoesntChange_StateTime([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clipX = Resources.Load <AnimationClip>("LinearX"); var clipInstanceX = Object.Instantiate <AnimationClip>(clipX); clipInstanceX.legacy = animation.usesLegacy; animation.AddClip(clipInstanceX, "clip1"); animation.GetState("clip1").enabled = true; animation.GetState("clip1").weight = 1f; animation.GetState("clip1").time = 0.5f; animation.Sample(); Assert.AreEqual(0.5f, animation.gameObject.transform.localPosition.x); Assert.IsTrue(Mathf.Approximately(0.5f, animation.GetState("clip1").time)); }
public IEnumerator CullingMode_CullCompletely_Doesnt_Animate_InvisibleObject([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.InstantiateCube(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; animation.cullingMode = AnimatorCullingMode.CullCompletely; animation.AddClip(clipInstance, "test"); animation.gameObject.GetComponent <MeshRenderer>().enabled = false; animation.Play("test"); yield return(null); yield return(null); Assert.AreEqual(Vector3.zero, animation.gameObject.transform.localPosition); }
public IEnumerator State_Time_SetPast_ClipEnd_StopsState_AfterOneFrame([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; animation.AddClip(clipInstance, "ValidName"); IAnimationState state = animation.GetState("ValidName"); animation.Play(state.name); state.time = 2.0f; yield return(null); Assert.IsFalse(state.enabled, "State should be disabled"); Assert.IsFalse(animation.IsPlaying(state.name), "State should be disabled"); Assert.IsFalse(animation.isPlaying, "State should be disabled"); }
public void State_NormalizedTime_AffectsTime([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; //Create event to extend clip var evt = new AnimationEvent(); evt.time = 2.0f; clipInstance.AddEvent(evt); animation.AddClip(clipInstance, "ValidName"); IAnimationState state = animation.GetState("ValidName"); state.normalizedTime = 0.5f; Assert.AreEqual(state.normalizedTime * state.length, state.time); }
public IEnumerator IsPlaying_AfterCrossfadeDone_ReturnsFalse([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; clipInstance.wrapMode = WrapMode.Once; animation.AddClip(clipInstance, "test"); animation.AddClip(clipInstance, "test2"); animation.Play("test"); yield return(new WaitForSeconds(0.2f)); animation.CrossFade("test2", 1.5f); yield return(new WaitForSeconds(2.0f)); Assert.AreEqual(false, animation.isPlaying); }
public IEnumerator State_Speed_SetTo_Zero_Time_DoesntAdvance([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; animation.AddClip(clipInstance, "ValidName"); IAnimationState state = animation.GetState("ValidName"); state.speed = 0f; state.enabled = true; yield return(null); yield return(null); //Second frame to allow Animation Component to advance time Assert.AreEqual(0f, state.time); }
public IEnumerator State_Speed_Negative_StopsState_WhenTime_Reaches_Negative([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clip = Resources.Load <AnimationClip>("LinearX"); var clipInstance = Object.Instantiate <AnimationClip>(clip); clipInstance.legacy = animation.usesLegacy; animation.AddClip(clipInstance, "ValidName"); IAnimationState state = animation.GetState("ValidName"); state.speed = -1f; state.enabled = true; yield return(null); yield return(null); //Second frame to allow Animation Component to advance time Assert.IsFalse(state.enabled); }
public IEnumerator CrossfadeQueue_WithClipPlaying_IsStatePlaying_AfterOriginalClipDone_ReturnsTrue([ValueSource(typeof(ComparativeTestFixture), "Sources")] System.Type type) { IAnimation animation = ComparativeTestFixture.Instantiate(type); var clipX = Resources.Load <AnimationClip>("LinearX"); var clipY = Resources.Load <AnimationClip>("LinearY"); var clipInstanceX = Object.Instantiate <AnimationClip>(clipX); var clipInstanceY = Object.Instantiate <AnimationClip>(clipY); clipInstanceX.legacy = animation.usesLegacy; clipInstanceY.legacy = animation.usesLegacy; animation.AddClip(clipInstanceY, "ToPlay"); animation.AddClip(clipInstanceX, "ToCrossfade"); animation.Play("ToPlay"); animation.CrossFadeQueued("ToCrossfade", 0.0f, QueueMode.CompleteOthers); yield return(new WaitForSeconds(1.1f)); Assert.IsTrue(animation.IsPlaying("ToCrossfade")); }