如何在Unity3d、C#中按下按键时播放AnimationClip?

Je *_*der 2 c# animation unity-game-engine

  1. 我已经尝试过这段代码,但它不起作用。
  2. 有人可以帮助我吗?有人可以解释一下 Unity 3D 中的动画吗?我已经尝试了很多,谷歌,YouTube等。

    using UnityEngine;
    using System.Collections;
    
    public class PlayAnimation : MonoBehaviour {
    
        public AnimationClip walk;
        Animation anim;
    
        void Update () {
            if (Input.GetKeyDown(KeyCode.W)){
                anim.clip = walk;
                anim.Play();        
            }
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

Fre*_*hön 6

从代码的外观来看,您实际上从未引用组件上附加的 Animaton。尝试在 Start 方法中分配动画它的组件,如下所示:

public class PlayAnimation : MonoBehaviour 
{

    public AnimationClip walk;
    Animation anim;
 
    void Start() 
    {
        anim = GetComponent<Animation>();
    }
     
    void Update () 
    {
        if (Input.GetKeyDown(KeyCode.W)) 
        {
            anim.clip = walk;
            anim.Play();        
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Pro*_*mer 5

anim变量未初始化。您可以通过两种方式初始化它:

1.获取组件

如果组件附加到您的脚本附加到的Animation同一游戏对象:PlayAnimation

void Start()
{
    anim = GetComponent<Animation>();
}
Run Code Online (Sandbox Code Playgroud)

如果Animation组件附加到不同的游戏对象:

void Start()
{
    anim = GameObject.Find("GameObjectAnimationIsAttachedTo").GetComponent<Animation>();
}
Run Code Online (Sandbox Code Playgroud)

2.创建anim变量public,然后从编辑器中对其进行分配。

Animation anim;应该public Animation anim;。现在,将带有组件的 GameObject 拖到变量Animationanim

  • 照片就完成了,但你抢先了我!哈! (2认同)