【问题标题】:Changing gravity on an object depending on, say, altitude根据高度改变物体的重力
【发布时间】:2020-04-05 16:44:26
【问题描述】:

我正在使用 unity 并试图计算 2D 对象的重力。我是否能够根据某物在世界或空间中的位置来改变它的重力,或者重力是否会在整个世界中保持不变?

意思是如果我在零高度有一个特定重力的物体,然后一旦物体到达 1000 米,重力就会发生变化。

【问题讨论】:

标签: c# unity3d gravity


【解决方案1】:

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

  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);
}

很多东西要学!

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-19
  • 2020-10-20
  • 2013-10-14
  • 1970-01-01
  • 2012-09-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多