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