根据海拔高度改变物体的重力



我正在使用统一,并试图计算2D对象的重力。我能根据某个物体在世界或空间中的位置改变它的重力吗?还是整个世界的重力都保持不变?

也就是说,如果我有一个物体在零度的特定重力下,一旦物体到达1000米,重力就会改变。

只是一个非常快速的答案,

  1. 了解Physics2D.gravity。在场景中放置一些对象(球,无论什么(,然后让场景运行,注意它们会掉落。尝试改变重力,注意加速度不同

在进行步骤2之前掌握所有这些!

现在坏消息来了!

正如你所看到的,Unity中的"普通重力"非常简单。不幸的是,如果你想对不同的物体进行单独的重力测量,这是非常先进的!

  1. 基本上关闭Unity免费提供的(1(中的"整体重力"。然后你必须手动为每个物体添加重力(你想要它!(

基本上你会做这样的事情。。。

public float gravity;
void FixedUpdate () {
rigidbody2D.AddForce(Vector3.down * 9 * rigidbody2D.mass);
}

不幸的是,你有很多关于运行循环、物理(即真实世界的物理!(、游戏对象、刚体和C#的知识要学。

在进行步骤3之前掌握所有这些!!

  1. 最后,您希望重力随海拔高度而变化(对于某些对象(。基本上就是这样做:

例如,重力随着上升而减弱。。a'是你的高度

public float gravity;
void FixedUpdate () {
f = (1000.0 - a) / 1000.0
rigidbody2D.AddForce(Vector3.down * 9 * f * rigidbody2D.mass);
}

有很多东西要学!

最新更新