- Home /
How to play a simple animation in Unity2017.1
Hi, trying to update from an older version of Unity to 2017.1 but I'm not able to make a simple animation "play" work.
Before, I was using this, and it worked:
AnimationClipPlayable acp = AnimationClipPlayable.Create (myTransition);
InstanceAnimator.Play ( acp );
Now, I see that AnimationClipPlayable.Create requires a PlayableGraph. Most examples for the Playables API are way too complicated for what I want to achieve (they mix different animations etc.). Found a simple example here: https://docs.unity3d.com/Manual/Playables-Examples.html but the code there:
void Start()
{
playableGraph = PlayableGraph.Create();
playableGraph.SetTimeUpdateMode(DirectorUpdateMode.GameTime);
var playableOutput = AnimationPlayableOutput.Create(playableGraph, "Animation", GetComponent<Animator>());
// Wrap the clip in a playable
var clipPlayable = AnimationClipPlayable.Create(playableGraph, clip);
// Connect the Playable to an output
playableOutput.SetSourcePlayable(clipPlayable);
// Plays the Graph.
playableGraph.Play();
}
compiles but gives me the following error repeatedly on runtime:
ArgumentException: The playable passed as an argument is invalid. To create a valid playable, please use the appropriate Create method
UnityEngine.Playables.PlayableHandle.SetSpeedInternal (UnityEngine.Playables.PlayableHandle& playable, Double speed) (at
Any help on this?
Answer by Mandark · Dec 05, 2018 at 01:47 AM
public class MyPlayer : MonoBehaviour{
PlayableGraph graph;
AnimationClipPlayable playable;
Animator animator;
void Start(){
animator = GetComponent<Animator>();
}
public void PlayClip(float duration, AnimationClip clip){
playable = AnimationPlayableUtilities.PlayClip(animator, clip, out graph);
playable.SetDuration(duration);
}
public bool IsPlayablePlaying(){
if (playable.IsValid()){
return playable.IsDone()==false;
}
return false;
}
private void CleanupAfterPlay(){
if (playable.IsValid() && playable.CanDestroy()){
playable.Destroy();
}
if (graph.IsValid()){
graph.Stop();
graph.Destroy();
}
}
}
Your answer
Follow this Question
Related Questions
Mirroring animation clip without mirroring root motion node? 0 Answers
Animation Error 0 Answers
How can I make my model invisible before trigging the animation ??? 0 Answers
How Do I make a cutscene or add a video in my game? 2 Answers
Not all animations are replaced when using an Animator Override Controller 0 Answers