我正在使用 C#,目前正在构建第三人称视角游戏。我有一个带有帧动画的 3D 角色模型,所以我必须逐帧剪切动画
问题是我目前有 5 个动画(空闲、跑步、步行、打孔、跳跃),这是我的代码
void Update () {
if (Input.GetAxis("Horizontal") != 0 || Input.GetAxis("Vertical") != 0){
//play run animation
} else {
if (motion.x != 0 || motion.z != 0){
motion.x = 0;
motion.z = 0;
}
//play idle anim
}
if (Input.GetKeyDown(KeyCode.Space) && controller.isGrounded){
//play jump anim
}
if (Input.GetKeyDown(KeyCode.P)){
//play punch anim
}
if (!controller.isGrounded){
//play jump anim
}
vertVelo -= gravity * Time.deltaTime;
motion.y = vertVelo;
this.controller.Move(motion * Time.deltaTime);
}
当我按 P 使字符打孔时,就会出现问题。似乎正在调用更新函数中的空闲动画,因此打孔动画没有时间播放。
那么,解决方案是什么?是否有任何动画管理技术或者我应该使用延迟?