我有一个文件结构,如:
- 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 中设置了球状态,例如:
反过来(命中->空闲):
我的问题是什么?我尝试调整位但没有成功。我究竟做错了什么?