unity4.5怎么用代码播放动作

之前使用的3.5的unity,最近刚升级到4.5.3,新的动画大改了,完全找不到方向,求大神解答。之前MAX动画导入unity切一下动画帧,动画剪辑就做好了,代码之前是这... 之前使用的3.5的unity,最近刚升级到4.5.3,新的动画大改了,完全找不到方向,求大神解答。
之前MAX动画导入unity切一下动画帧,动画剪辑就做好了,代码之前是这样的
Animation ani = Game.Find("模型物体名").GetComponent<Animation>();
ani.Play("动画剪辑名称");
现在如何播放?
展开
 我来答
百度网友7c7d368
2014-09-09 · TA获得超过534个赞
知道小有建树答主
回答量:114
采纳率:0%
帮助的人:78.5万
展开全部
之前的代码也繁琐了。
animation本来就可以通过transform.animation 来访问。如果是在脚本代码中,可以直接用animation来访问animation组件。 默认的基础类都是这个特性,比如rigidbody、renderer等等这些一样,你既可以通过rigidbody.transform来访问其transform,也可以通过transform.rigidbody来访问rigidbody,前提是确实该组件,否则为null。

现在的版本animation 一样可以使用,比较重大的改变是不再具备通过动画编辑窗口来添加材质方面的动画,比如color 方面的动画,无法直接给material的相关参数添加关键帧建立动画曲线。

你只能通过给一个脚本的变量添加动画曲线,然后再在脚本中通过代码去关联该变量和color,间接做材质color动画 :
var a:float; //在动画编辑器中添加曲线改变alpha值

function Update(){
renderer.material.color.a = a;
}

unity4.x版本保留了animation作为旧版本的动画组件,同时加入了Animator,也就是mecanim动画系统,这个系统是专门设计来应付生物属性的角色动画的,有更紧密、更复杂的混合系统,其编辑模式跟animation 截然不同!你需要通过animator动画状态可视化编辑器来搭建动画层级和状态图,再通过animator来播放预定义的状态,从而达到动画播放效果。也就是说,动画不再基于clip剪辑,而是state状态。
你可以去查看animator的官方脚本参考,你就知道他是怎么用的了。其实也差不多,原理不同,不能再用animation["clip name"] 来简单粗暴的操作clip的参数了,现在改变播放速度、时间轴等操作你都必须通过animator来调整相应state的播放属性,而不是像旧版直接去改变clip的参数。基本的播放也是用Play()、Stop()等,参数不同, 而且你要play的动画状态必须预先在编辑面板正确设置好!

如果你想继续使用旧版的animation做为导入动画剪辑,那你应该在导入的动画模型选项中选择使用旧版legacy animation,具体怎么写的记不得了,应该可以找到的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式