抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Unity Playable Script 动画播放

当我们在使用Unity Animator时,会发现我们必须要先将所需的动画片段放入Animation Controller中才能播放。如果我们想要一个Resources目录下的某个Clip,是做不到的

当游戏动画逻辑非常复杂时,状态机会非常复杂,几乎不可维护,于是很多公司会自己用Playable Script重写一份动画播放系统

Playable Script仍然是驱动Animator和Avatar的,所以角色身上仍需要Animator组件

直接播放一个动画片段

PlayableGraph playableGraph;
AnimationClip idleClip;

void Start()
{
playableGraph = PlayableGraph.Create();
playableGraph.SetTimeUpdateMode(DirectorUpdateMode.GameTime);
}

void Update()
{
if(xxx)
{
// var output = AnimationPlayableOutput.Create(playableGraph, "AnimationOutput", GetComponent<Animator>());
// var clip = AnimationClipPlayable.Create(playableGraph, idleClip);
// output.SetSourcePlayable(clip);
// playableGraph.Play();
AnimationPlayableUtilities.PlayClip(GetComponent<Animator>(), idleClip, out playableGraph);

}
}

private void OnDisable()
{
playableGraph.Destroy();
}

评论