私は C# を使用しており、現在 3 人称視点のゲームを構築しています。フレーム内のアニメーションを含む 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を押して文字をパンチすると問題が発生します。update関数のアイドルアニメーションが呼び出されて、パンチアニメーションが再生されていないようです。
それで、解決策は何ですか?アニメーション管理技術はありますか、それとも遅延を使用する必要がありますか?