当前位置 博文首页 > 和我一起学习:Unity中Animator组件的基本使用
deltaPosition:相对上一帧的位置变化量(必须允许根运动才能被计算)
deltaRotation:相对上一帧的角度变化量(必须允许根运动才能被计算)
例如:
Vector3 move;
CharacterController cont;
void Start()
{
cont = this.GetComponent<CharacterController>();
}
void OnAnimatorMove()
{
move = anim.deltaPosition;
cont.Move(move);
//根运动控制的旋转
transform.rotation *= anim.deltaRotation;
}
public static int StringToHash(string name);
描述:根据动画的名字返回其哈希值,常与GetHashCode配合判断当前播放的动画是不是给定的动画
参数:name:动画名字
例如:
int deathHash = Animator.StringToHash("EllenDeath");
Animator anim;
AnimatorStateInfo animInfo;
void Start()
{
anim = this.GetComponent<Animator>();
}
void Update()
{
animInfo = anim.GetCurrentAnimatorStateInfo(0);
if (animInfo.GetHashCode() != deathHash )//当前动画不是死亡动画
{
}
}
public AnimatorStateInfo GetCurrentAnimatorStateInfo(int layerIndex);
描述:返回当前的状态信息
参数:图层索引
返回值:动画状态信息,详情见下:
public bool IsName(string name);
:当前播放的动画名称是否是name(name必须是层级点动画名,如:Base.Idle)public void SetTrigger(string name);
public void SetTrigger(int id);
描述:触发一个触发器
参数:name:触发器名称、id:触发器索引
public void ResetTrigger(string name);
public void ResetTrigger(int id);
描述:重置触发器,如果一个触发器还未来得及触发,那么调用该函数之后,该触发器将不会触发
参数:name:触发器名称、id:触发器索引