Unity动画中加入控制曲线
发表于2018-05-31
在动画状态机中某个状态时,播放某个动作,加入一个曲线,根据动画播放的时间来取曲线对应的值,这里以应用场景比如一个刀光的拖尾特效为例给大家介绍控制曲线。
效果图
1、添加曲线
在Animator面板中增加一个参数MyCv(这个就是用曲线控制的参数)
双击某个状态,在Curves中添加一个曲线,命名为MyCv(恩,控制的就是它了)
如图
2、代码中获取这个参数
private Animator mAtor; public float mCv; mAtor = GetComponentInChildren<Animator>(); mCv = mAtor.GetFloat("MyCv");
3、添加一个拖尾特效
在模型骨骼上添加一个空对象TrailSlot,TrailSlot挂一个TrailRender组件,随便创建一个颜色的材质球丢进去,调一下参数,如图:
4、用曲线值控制TrailRender组件的Time值
代码如下:
public class charCtrl : MonoBehaviour { //private Animation anim; private Animator mAtor; public float mCv; //用来测试曲线是否变化 private TrailRenderer mTrail; void Start () { mAtor = GetComponentInChildren<Animator>(); mTrail = GetComponentInChildren<TrailRenderer>(); } void Update () { mCv = mAtor.GetFloat("MyCv"); mTrail.time = mCv; } }