无限弹跳球(统一)

时间:2019-05-06 11:31:28

标签: c# unity3d

我目前正在创建一个简单的游戏,例如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);

}

编辑

只需添加一个信息,我正在使用Physics 2D材料 摩擦:0.8 弹跳度:0.45

3 个答案:

答案 0 :(得分:3)

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

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

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

如果您也想控制恒定速度,请更改Rigidbody.Velocity.Magnitude。

答案 1 :(得分:0)

最初回答HERE,您可以将建议的ZeroFriction材料用于墙壁等。我在先前的尝试中已经使用过它,并且效果很好。

答案 2 :(得分:0)

Yehey感谢帮助人们终于能够通过在刚体和2D物理材质上进行此设置来控制球

刚体 全部拖掉 重力为零

2D物理材料 摩擦为0 跳动为1

谢谢