我有gameobject
个rigidbody
组件。
标准刚体重力拉下我的游戏对象,但我想重力将游戏对象拉到左边。
我知道如何将重力设置为左侧编辑 - >项目设置 - > ...但是此设置会将重力更改为所有刚体,这在我的情况下是一个问题。
我只想为1个游戏对象设置引力。
答案 0 :(得分:5)
由于您正在制作2D游戏,我假设您的GameObject附加了Rigidbody2D组件。将重力比例设置为0.还要将 ConstantForce2D 附加到GameObject,并将重力应用于 Force - > X 。要获得与重力相同的力量,您必须将重力(可能是9.81)乘以GameObject的质量。 如果您的自定义重力或GameObject的质量不时发生变化,请确保在更新方法中计算,然后将其应用于ConstantForce2D组件。这可能看起来像这样:
Rigidbody2D playerRigidbody;
ConstantForce2D customGravity;
void Awake () {
playerRigidbody = GetComponent<Rigidbody2D> ();
customGravity = GetComponent<ConstantForce2D> ();
float gravityForceAmount = playerRigidbody.mass * Physics2D.gravity.magnitude;
customGravity.force = new Vector2 (-gravityForceAmount, 0); // gravity to the left
}
void Update () {
if(mass or gravity changes)
modify the constant force;
}