1.恰当地设置Animator组件的Culling Mode。Always Animate表示如果该动画不可见,也会播放它。Cull Update Transformations表示如果该动画不可见,则不会渲染该动画,但是依然会根据该动画的播放来改变游戏对象的位置、旋转、缩放,这样是常用的选项。Cull Completely表示完全不会播放该动画,不但不会渲染该动画,而且也不会改变游戏对象的位置、旋转、缩放。
2.禁用SkinMesh Renderer组件的Update When Offscreen可以让角色在不可见的时候动画不更新,这样可以减少计算量,提升性能。
3.对于Animator组件,可以使用Animator.StringToHash方法获得指定字符串的哈希值,再把它作为参数传入Animator型对象.GetXXX方法和Animator型对象.SetXXX方法中进行使用。
//获取动画组件
Animator animator = GetComponent<Animator>();
//正常情况播放动画的方法
animator.SetBool("animName", true);
animator.SetFloat("animName", 1);
//优化播放的方法
int hashValue = Animator.StringToHash("animName");
animator.SetBool(hashValue, true);
animator.SetFloat(hashValue, 1);
4.不用的Animation组件和Animator组件可以考虑删掉,因为只要它们存在,就会消耗性能来检测当前的状态和过渡条件。文章来源:https://www.toymoban.com/news/detail-838336.html
5.一些简单的动画可以使用DoTween、iTween等插件实现,而不需要每个动画都用Animator来实现。文章来源地址https://www.toymoban.com/news/detail-838336.html
到了这里,关于Unity性能优化篇(十一) 动画优化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!