你是不是遇到了这样的情况?
上面的是Button组件Translation中自带的
Animation
方式,会自动创造出来一个Animator Controller 和几个button不同状态下的
Animation
,但是怎么进行
编辑
呢?
点击Window->
Animation
->
Animation
,这时会弹出
Animation
面板。
选择你要
编辑
的
Animation
所在的物体...
近期在做项目的时候遇到这样一个问题:在3dmax里做的
动画
直接导入到
unity
中,但是
动画
无法
在
animation
窗口进行
编辑
。
解决方案:将
动画
Ctrl+D复制一份,复制后的
动画
赋给以前带
动画
的模型,复制后的
动画
就可以在
animation
窗口进行
编辑
了。
Animator
动画
控制器组件存在某一个
动画
片段控制过那个被锁死的属性!即使没播放中,除非你完全禁用Animator或删除Animator。代码Update或FixUpdate、LateUpdate等每帧执行函数(或每秒执行函数...)一直在控制着属性!②(最好)添加新的父物体,控制它的父物体(进行缩放、位移、旋转)来间接控制它。①禁用Animator 或 删掉它 换形式播放
动画
(比如 DOTWEEN)哎,第二个情况真的是一直都没有解决啊
Unity
咋回事捏。需要加bool或改控制形式。
有一个炮塔物体,需要对炮管体做水平方向上的旋转,要让炮管永远朝着目标。单实现这个需求很简单,算出炮管朝目标的方向后,使得炮管朝向变成这个方向。
但实际上,炮管旋转过程中是在播放待机
动画
的,经常会出现代码修改炮的旋转但是不起效的情况。后来发现是待机
动画
在修改炮管的旋转值,然后把待机动作修改旋转的帧去掉问题就解决了。
最近又发现一个新的情况,表现还是代码
无法
修改炮管的旋转值,然而查看了待机
动画
发现
动画
里也没有修改炮管旋转值的帧。
那么问题就来了,是什么导致代码
无法
修改炮管旋转了
一、
无法
修改携带Animator组件的物体属性问题
1、播放
动画
状态结束后,如果没有进行任何连线切换到下一个状态了,此时Animator默认会保持这个
动画
控制过的属性不变的,即不允许修改了。
解决方案:
将Culling Mode设置为Cull Update Transforms 即剔除更新Transforms属性,即Transforms属性不会被保持不变了。Cull Completely是全部
动画
控制过的属性都不会去维持不变了。默认是Always Animate 即总是维持在最后一帧的属性。注.
https://forum.
unity
.com/threads/animator-locking-animated-value-even-when-current-state-has-no-curves-keys-for-that-value.440363/
以上链接并未解决问题,因为官方从12年到现在 都不觉得这是个问题。但是实际用的时候确实非常难受,clip中用到的属性,包括setactive ,enable, position等的修改 ,在其他地方都要用到。不被脚本修改 是不现实的。
当前的方案是:
本文分享
Unity
中Animator播放
动画
后
无法
修改transform的问题
在使用Animator时, 如果某些
动画
状态设计到transform的改动, 比如位置, 缩放等, 在默认情况下我们就
不能
手动修改该对象的transform相关属性了.
比如
动画
修改了缩放, 不管该
动画
有没有执行, 只要在Animator的控制之下, 我们不管是通过代码还是通过Inspector面板都
无法
修改该对象的缩放值.
当然, 如果
动画
只是加入了缩放的关键帧, 但是并没有修改值, 那么还是可以被我们修改的.
官方的说明是: