c# - 球的无限弹跳(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
解决方案
将游戏对象的 Rigidbody.Drag 设置为 0。
有关 Drag 功能的更多信息:https ://docs.unity3d.com/ScriptReference/Rigidbody-drag.html
您也应该将 Rigidbody.GravityScale 设置为 0。
如果你想控制恒速也改变 Rigidbody.Velocity.Magnitude。