Skip to content

Commit 9e6a191

Browse files
committed
Merge branch 'feature/test-animator-playback' into develop
2 parents 333cb5b + 358c671 commit 9e6a191

31 files changed

+1091
-17
lines changed

Assets/AdncAnimatorVariableStates/Editor/Testing.meta

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/AdncAnimatorVariableStates/Editor/Testing/AnimatorPlayback.meta

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
using Adnc.AnimatorVariables.Conditions;
2+
using Adnc.AnimatorVariables.Variables;
3+
using Adnc.Utility.Testing;
4+
using NUnit.Framework;
5+
using UnityEngine;
6+
using Object = UnityEngine.Object;
7+
8+
namespace Adnc.AnimatorVariables.Editors.Testing {
9+
public class TestAnimatorPlayback : TestBase {
10+
private const string ANIMATOR_STUB_LOC = "AnimatorTesting/AnimatorStub";
11+
12+
private AnimatorPlayback _playback;
13+
private Animator _anim;
14+
15+
[SetUp]
16+
public void SetupAnimatorPlayback () {
17+
_playback = ScriptableObject.CreateInstance<AnimatorPlayback>();
18+
var stub = Resources.Load<GameObject>(ANIMATOR_STUB_LOC);
19+
_anim = Object.Instantiate(stub).GetComponent<Animator>();
20+
}
21+
22+
[TearDown]
23+
public void TeardownAnimatorPlayback () {
24+
Object.DestroyImmediate(_anim.gameObject);
25+
_playback = null;
26+
_anim = null;
27+
}
28+
29+
[Test]
30+
public void StubBoolIsFalse () {
31+
Assert.IsFalse(_anim.GetBool("bool"));
32+
}
33+
34+
[Test]
35+
public void StubFloatIsZero () {
36+
Assert.IsTrue(Mathf.Abs(_anim.GetFloat("float")) < 0.1f);
37+
}
38+
39+
[Test]
40+
public void StubIntIsZero () {
41+
Assert.IsTrue(_anim.GetInteger("int") == 0);
42+
}
43+
44+
[Test]
45+
public void PlaySetsAnimatorBool () {
46+
_playback.bools.Add(new VarBool {
47+
name = "bool",
48+
value = true
49+
});
50+
51+
_playback.Play(_anim);
52+
53+
Assert.IsTrue(_anim.GetBool("bool"));
54+
}
55+
56+
[Test]
57+
public void PlaySetsAnimatorFloat () {
58+
_playback.floats.Add(new VarFloat {
59+
name = "float",
60+
value = 1
61+
});
62+
63+
_playback.Play(_anim);
64+
65+
Assert.AreEqual(_anim.GetFloat("float"), 1);
66+
}
67+
68+
[Test]
69+
public void PlaySetsAnimatorInt () {
70+
_playback.ints.Add(new VarInt {
71+
name = "int",
72+
value = 1
73+
});
74+
75+
_playback.Play(_anim);
76+
77+
Assert.AreEqual(_anim.GetInteger("int"), 1);
78+
}
79+
80+
[Test]
81+
public void IsConditionMetTrueWithNoAnimatorNull () {
82+
Assert.IsTrue(_playback.IsConditionsMet(null));
83+
}
84+
85+
[Test]
86+
public void IsConditionMetIsTrueWithNoConditions () {
87+
_playback.conditions.RemoveAt(0);
88+
Assert.IsTrue(_playback.IsConditionsMet(_anim));
89+
}
90+
91+
[Test]
92+
public void IsConditionMetFalseWhenConditionsNotMet () {
93+
_playback.conditions.RemoveAt(0);
94+
_playback.conditions.Add(new Condition {
95+
compareValues = OperatorAll.AreEqual,
96+
variableBool = new VarBool {
97+
name = "bool",
98+
value = true
99+
},
100+
variableType = ConditionVarType.Bool
101+
});
102+
103+
Assert.IsFalse(_playback.IsConditionsMet(_anim));
104+
}
105+
106+
[Test]
107+
public void IsConditionMetTrueWhenConditionsAreMet () {
108+
_playback.conditions.RemoveAt(0);
109+
_playback.conditions.Add(new Condition {
110+
compareValues = OperatorAll.AreEqual,
111+
variableBool = new VarBool {
112+
name = "bool",
113+
value = true
114+
},
115+
variableType = ConditionVarType.Bool
116+
});
117+
118+
_anim.SetBool("bool", true);
119+
120+
Assert.IsTrue(_playback.IsConditionsMet(_anim));
121+
}
122+
}
123+
}

Assets/AdncAnimatorVariableStates/Editor/Testing/AnimatorPlayback/TestAnimatorPlayback.cs.meta

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
%YAML 1.1
2+
%TAG !u! tag:unity3d.com,2011:
3+
--- !u!91 &9100000
4+
AnimatorController:
5+
m_ObjectHideFlags: 0
6+
m_PrefabParentObject: {fileID: 0}
7+
m_PrefabInternal: {fileID: 0}
8+
m_Name: AnimatorExample
9+
serializedVersion: 5
10+
m_AnimatorParameters:
11+
- m_Name: fade
12+
m_Type: 4
13+
m_DefaultFloat: 0
14+
m_DefaultInt: 0
15+
m_DefaultBool: 1
16+
m_Controller: {fileID: 0}
17+
m_AnimatorLayers:
18+
- serializedVersion: 5
19+
m_Name: Base Layer
20+
m_StateMachine: {fileID: 1107784786885212438}
21+
m_Mask: {fileID: 0}
22+
m_Motions: []
23+
m_Behaviours: []
24+
m_BlendingMode: 0
25+
m_SyncedLayerIndex: -1
26+
m_DefaultWeight: 0
27+
m_IKPass: 0
28+
m_SyncedLayerAffectsTiming: 0
29+
m_Controller: {fileID: 9100000}
30+
--- !u!114 &114224176892540848
31+
MonoBehaviour:
32+
m_ObjectHideFlags: 1
33+
m_PrefabParentObject: {fileID: 0}
34+
m_PrefabInternal: {fileID: 0}
35+
m_GameObject: {fileID: 0}
36+
m_Enabled: 1
37+
m_EditorHideFlags: 0
38+
m_Script: {fileID: 11500000, guid: 2617d9626f63e475d898c98af52215ad, type: 3}
39+
m_Name:
40+
m_EditorClassIdentifier:
41+
--- !u!114 &114729550644549088
42+
MonoBehaviour:
43+
m_ObjectHideFlags: 1
44+
m_PrefabParentObject: {fileID: 0}
45+
m_PrefabInternal: {fileID: 0}
46+
m_GameObject: {fileID: 0}
47+
m_Enabled: 1
48+
m_EditorHideFlags: 0
49+
m_Script: {fileID: 11500000, guid: cfe299efb6c44af29bf73ad6a4ed73c1, type: 3}
50+
m_Name:
51+
m_EditorClassIdentifier:
52+
_event: 0
53+
_startDelay:
54+
min: 0
55+
max: 0
56+
_name: fade
57+
_value: 1
58+
--- !u!1101 &1101315704248538500
59+
AnimatorStateTransition:
60+
m_ObjectHideFlags: 1
61+
m_PrefabParentObject: {fileID: 0}
62+
m_PrefabInternal: {fileID: 0}
63+
m_Name:
64+
m_Conditions: []
65+
m_DstStateMachine: {fileID: 0}
66+
m_DstState: {fileID: 1102939410579684922}
67+
m_Solo: 0
68+
m_Mute: 0
69+
m_IsExit: 0
70+
serializedVersion: 3
71+
m_TransitionDuration: 0
72+
m_TransitionOffset: 0
73+
m_ExitTime: 0
74+
m_HasExitTime: 1
75+
m_HasFixedDuration: 0
76+
m_InterruptionSource: 0
77+
m_OrderedInterruption: 1
78+
m_CanTransitionToSelf: 1
79+
--- !u!1102 &1102256826735867974
80+
AnimatorState:
81+
serializedVersion: 5
82+
m_ObjectHideFlags: 1
83+
m_PrefabParentObject: {fileID: 0}
84+
m_PrefabInternal: {fileID: 0}
85+
m_Name: animation
86+
m_Speed: 1
87+
m_CycleOffset: 0
88+
m_Transitions:
89+
- {fileID: 1101315704248538500}
90+
m_StateMachineBehaviours: []
91+
m_Position: {x: 50, y: 50, z: 0}
92+
m_IKOnFeet: 0
93+
m_WriteDefaultValues: 1
94+
m_Mirror: 0
95+
m_SpeedParameterActive: 0
96+
m_MirrorParameterActive: 0
97+
m_CycleOffsetParameterActive: 0
98+
m_TimeParameterActive: 0
99+
m_Motion: {fileID: 7400000, guid: e7807d04de6be4bb1b936bd11d7df92e, type: 2}
100+
m_Tag:
101+
m_SpeedParameter:
102+
m_MirrorParameter:
103+
m_CycleOffsetParameter:
104+
m_TimeParameter:
105+
--- !u!1102 &1102939410579684922
106+
AnimatorState:
107+
serializedVersion: 5
108+
m_ObjectHideFlags: 1
109+
m_PrefabParentObject: {fileID: 0}
110+
m_PrefabInternal: {fileID: 0}
111+
m_Name: end
112+
m_Speed: 1
113+
m_CycleOffset: 0
114+
m_Transitions: []
115+
m_StateMachineBehaviours:
116+
- {fileID: 114729550644549088}
117+
m_Position: {x: 50, y: 50, z: 0}
118+
m_IKOnFeet: 0
119+
m_WriteDefaultValues: 0
120+
m_Mirror: 0
121+
m_SpeedParameterActive: 0
122+
m_MirrorParameterActive: 0
123+
m_CycleOffsetParameterActive: 0
124+
m_TimeParameterActive: 0
125+
m_Motion: {fileID: 0}
126+
m_Tag:
127+
m_SpeedParameter:
128+
m_MirrorParameter:
129+
m_CycleOffsetParameter:
130+
m_TimeParameter:
131+
--- !u!1107 &1107784786885212438
132+
AnimatorStateMachine:
133+
serializedVersion: 5
134+
m_ObjectHideFlags: 1
135+
m_PrefabParentObject: {fileID: 0}
136+
m_PrefabInternal: {fileID: 0}
137+
m_Name: Base Layer
138+
m_ChildStates:
139+
- serializedVersion: 1
140+
m_State: {fileID: 1102256826735867974}
141+
m_Position: {x: -72, y: 180, z: 0}
142+
- serializedVersion: 1
143+
m_State: {fileID: 1102939410579684922}
144+
m_Position: {x: 240, y: 180, z: 0}
145+
m_ChildStateMachines: []
146+
m_AnyStateTransitions: []
147+
m_EntryTransitions: []
148+
m_StateMachineTransitions: {}
149+
m_StateMachineBehaviours: []
150+
m_AnyStatePosition: {x: 50, y: 20, z: 0}
151+
m_EntryPosition: {x: 50, y: 120, z: 0}
152+
m_ExitPosition: {x: 800, y: 120, z: 0}
153+
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
154+
m_DefaultState: {fileID: 1102256826735867974}

Assets/AdncAnimatorVariableStates/Examples/Default/AnimatorExample.controller.meta

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
using System.Collections;
2+
using System.Collections.Generic;
3+
using UnityEngine;
4+
5+
namespace Adnc.AnimatorVariables.Examples {
6+
public class AnimatorPlaybackExample : MonoBehaviour {
7+
[SerializeField]
8+
private AnimatorPlayback _completeEvent;
9+
10+
[SerializeField]
11+
private string _completeMessage = "Detected animation playback as complete";
12+
13+
private void Start () {
14+
StartCoroutine(DetectEventComplete());
15+
}
16+
17+
IEnumerator DetectEventComplete () {
18+
var anim = GetComponent<Animator>();
19+
yield return _completeEvent.PlayCoroutine(anim);
20+
Debug.Log(_completeMessage);
21+
}
22+
}
23+
}

Assets/AdncAnimatorVariableStates/Examples/Default/AnimatorPlaybackExample.cs.meta

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)