首先,我是Unity和游戏编程的新手。我试图添加像动画一样的板球保龄球。但是当球接触地面时它根本没有反弹,它显示出一种奇怪的滚动动画。
这是GIF,
所以我只是在代码中添加了速度,
public class Ball : MonoBehaviour {
public float EndPointX ;
public float EndPointY ;
bool ForceAdded = true;
private Rigidbody2D rigidBody;
void Start () {
rigidBody = GetComponent<Rigidbody2D> ();
}
void Update () {
rigidBody.velocity = new Vector3(EndPointX, EndPointY, 0)*2;
}
}
我的Bounce 2d素材文件,
Ball Properties,
它在没有任何速度的情况下完美弹跳。我的意思是当它以直角落下时。
Thanx For The Help !!
答案 0 :(得分:4)
由于Update()每帧都会运行,因此您不断设置速度,并立即覆盖反弹材料,尝试更改其移动方向。如果将速度移动到Start()方法,速度将只设置一次,并且弹性将能够正确地影响您的对象。
void Start () {
rigidBody = GetComponent<Rigidbody2D> ();
rigidBody.velocity = new Vector3(EndPointX, EndPointY, 0)*2;
}