[英]Horizontal gravity on a gameObject in Unity
我正在制作一个简单的2D游戏。
我有一个gameobject
具有rigidbody
组件。
标准刚体重力将我的游戏对象下拉,但是我希望重力将游戏对象向左拖动。
我知道如何在编辑->项目设置-> ...中将重力设置为向左拉,但是此设置会将重力更改为所有刚体,这对我来说是个问题。
我只想为1个游戏对象设置重力。
由于您正在制作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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.