首页 > 解决方案 > 球的无限弹跳(Unity)

问题描述

我目前正在创建一个简单的游戏,例如Angry Bird. 所以我成功地创造了这样的东西,我目前面临一个问题,我想无限射击这只鸟,如果它撞到墙上,它应该会反弹回来,如果它再次撞到墙上,它会像无限一样反弹回来。

这是我的拍摄代码

public float force = 1300;

private void OnMouseUp()
{
    // Disable IsKenematic
    GetComponent<Rigidbody2D>().isKinematic = false;

    // Add the Force
    Vector2 dir = startPos - (Vector2)transform.position;
    GetComponent<Rigidbody2D>().AddForce(dir * force);


    //Remove the script (not the gameobject)
    Destroy(this);

}

编辑

只是为了添加一个信息,我正在使用物理 2D 材料摩擦力:0.8 弹性:0.45

标签: c#unity3d

解决方案


将游戏对象的 Rigidbody.Drag 设置为 0。

有关 Drag 功能的更多信息:https ://docs.unity3d.com/ScriptReference/Rigidbody-drag.html

您也应该将 Rigidbody.GravityScale 设置为 0。

如果你想控制恒速也改变 Rigidbody.Velocity.Magnitude。


推荐阅读