在Unity 2d中添加速度后没有反弹

时间:2017-10-18 18:09:39

标签: c# unity3d

首先,我是Unity和游戏编程的新手。我试图添加像动画一样的板球保龄球。但是当球接触地面时它根本没有反弹,它显示出一种奇怪的滚动动画。

这是GIF,

No Bounce

所以我只是在代码中添加了速度,

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素材文件,

2d Material

Ball Properties,

Ball

它在没有任何速度的情况下完美弹跳。我的意思是当它以直角落下时。

Thanx For The Help !!

1 个答案:

答案 0 :(得分:4)

由于Update()每帧都会运行,因此您不断设置速度,并立即覆盖反弹材料,尝试更改其移动方向。如果将速度移动到Start()方法,速度将只设置一次,并且弹性将能够正确地影响您的对象。

void Start () {
    rigidBody = GetComponent<Rigidbody2D> ();
    rigidBody.velocity = new Vector3(EndPointX, EndPointY, 0)*2;
}