[英]How to get my animation to play in unity when my character jumps
我正在制作一个角色不断上下跳跃的游戏。 我每次碰到地面时都会使用OnCollisionEnter()让他跳跃。 我试图调用一个动画,使角色武器在函数内部摆动,如下所示:
void OnCollisionEnter(碰撞碰撞){
foreach(ContactPoint contact in collision.contacts){
rigidbody.velocity = transform.up*10;
audio.Play();
animation.Play ("JumpAnimation");
}
}
当我运行游戏时,我收到以下错误:
MissingComponentException:“Green Bot”游戏对象没有附加“动画”,但是脚本正在尝试访问它。 您可能需要将动画添加到游戏对象“Green Bot”中。 或者您的脚本需要在使用之前检查组件是否已连接。
我有一个动画组件连接到我的“绿色机器人”,如果我点击循环播放动画,但我只想让它在上面的功能中播放。 如何在错误提示中检查组件是否附加到脚本中?
更新:
我已将代码设置为:
void OnCollisionEnter(碰撞碰撞){
foreach(ContactPoint contact in collision.contacts){
rigidbody.velocity = transform.up*10;
audio.Play();
animator.SetTrigger("Jump");
}
}
这是我的Animator窗口的快照:
您是否考虑过在动画师中使用触发器然后调用动画师。 OnCollisionEnter事件中的SetTrigger (“YourTrigger”)? 在动画师中,您将创建上述触发器参数(布尔值)并将动画与此相关联。
void OnCollisionEnter(Collision collision){
foreach(ContactPoint contact in collision.contacts){
rigidbody.velocity = transform.up*10;
audio.Play();
animator.SetTrigger("Jump");
}
}
关于Animator Scripting的Unity3D教程也可能是一个有用的参考,因为他们更详细地介绍了这个概念,包括如何正确配置动画师。
如果要使用动画,除动画师外还应该有一个动画组件。 然后在动画的“大小”部分播放,输入1并按Enter键。 输入来了。 选择你的动画就是这样。
请享用!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.