blob: 9b1ee0742eabb1d3e7d0688091825ce97d60ff1c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
using UnityEngine;
namespace UnityEngine.Graphs.LogicGraph
{
public partial class AnimationNodes
{
[Logic(typeof(Animation))]
public sealed class SimpleAnimationPlayer
{
// Logic Target
public Animation self;
// Settings
private AnimationState m_AnimationState;
[Setting]
public string animationName
{
set
{
m_AnimationState = self[value != "" ? value : self.clip.name];
}
}
private bool m_Crossfade;
[Setting]
public bool crossfade { set { m_Crossfade = value; } }
private float m_FadeLength;
[Setting]
public float fadeLength { set { m_FadeLength = value; } }
private bool m_IsPaused;
private float m_ResumeSpeed;
public SimpleAnimationPlayer () { }
public SimpleAnimationPlayer (Animation self, string animationName, bool crossfade, float fadeLength)
{
this.self = self;
this.animationName = animationName;
m_Crossfade = crossfade;
m_FadeLength = fadeLength;
}
public void Play ()
{
if (m_Crossfade)
self.CrossFade (m_AnimationState.name, m_FadeLength);
else
self.Play (m_AnimationState.name);
}
public void Stop ()
{
StopAnimationState (m_AnimationState);
}
[Title("Pause/Resume")]
public void PauseResume ()
{
float tmpSpeed = m_AnimationState.speed;
m_AnimationState.speed = m_IsPaused ? m_ResumeSpeed : 0.0f;
m_ResumeSpeed = tmpSpeed;
m_IsPaused = !m_IsPaused;
}
public void Rewind ()
{
m_AnimationState.time = 0.0f;
}
private static void StopAnimationState (AnimationState animationState)
{
animationState.enabled = false;
animationState.time = 0.0f;
}
}
}
}
|