我正在寻找的东西类似于我们的太阳系,在那里你被吸引到一颗行星直到你离开它,然后一旦你在另一个行星上被吸引到那个引力。
我在网上发现了很多关于如何为一颗行星创造重力的条目,但没有找到适合多个来源的工作。
任何帮助都会非常感激。
我已经看过的项目主要针对单行星引力。
unity 3.3, create local gravity on object
http://answers.unity3d.com/questions/13639/how-do-i-make-a-small-planet-with-gravitational-pu.html
http://answers.unity3d.com/questions/701618/how-could-i-simulate-planetary-gravity-that-has-an.html
答案 0 :(得分:3)
这可以通过在周围物体上相对于行星增加法向力来轻松完成。
根据Universal gravitational force的物理学,你可以计算出重力。然后计算当前的法向力并加上力。
void FixedUpdate(){
// Do the Force calculation (refer universal gravitation for more info)
// Use numbers to adjust force, distance will be changing over time!
forceSun = G x (massPlanet x massSun)/d^2;
// Find the Normal direction
Vector3 normalDirectionSun = (planet.position - sun.position).normalized;
// calculate the force on the object from the planet
Vector3 normalForceSun = normalDirection * forceSun;
// Calculate for the other systems on your solar system similarly
// Apply all these forces on current planet's rigidbody
// Apply the force on the rigid body of the surrounding object/s
rigidbody.AddForce(normalForceSun);
// .... add forces of other objects.
}
使用各种m1, m2
值,您将能够使系统更加真实。作为一个例子,使物体向质量较高的行星移动/加速。