0

我有一个文件结构,如:

- Ball (CircleCollider 2D + RigidBody 2D) (BallScript.cs) as parent
   - BallGraphics (image + animations) as child
- Pipe (BoxCollider2D + RigidBody2D)

有了这种结构,球成功地撞击了管道。它还识别功能OnCollisionEnter2D(打印日志)。

但是,当我尝试使用动画器更改碰撞时动画的状态时,它不起作用。

public class BallScript : MonoBehaviour { 
    Animator animator;

    void Start () {
       animator = GetComponent<Animator>();
    }

    public void OnCollisionEnter2D(Collision2D collision) {
        print ("A");      // prints

        animator.SetTrigger ("BallHit");  // if comment it out everything works, if not, error below..
    }
}

没有附加到“球”游戏对象的“动画师”,但脚本正在尝试访问它。您可能需要将 Animator 添加到游戏对象“Ball”。或者您的脚本需要在使用之前检查组件是否已附加。

很公平,但我在 BallGraphics 上的 Animator 中设置了球状态,例如:

在此处输入图像描述 在此处输入图像描述

反过来(命中->空闲):

在此处输入图像描述

我的问题是什么?我尝试调整位但没有成功。我究竟做错了什么?

4

0 回答 0