二维人造重力统一(C#)
我在做一个使用二维重力的项目。设置在你发射射弹的空间,如果它们离行星足够近,行星的重力会吸引射弹。发射时,弹丸使用对撞机和施加在刚体上的力 我发现的这张图片很好地解释了这一点: 我有一些代码可以工作,但并不完美。这有点奇怪,似乎有些部分比其他部分更难吸引炮弹。有些时候,当我把射弹射过物体时,它没有被物体吸引,而是突然加速飞过。代码如下:二维人造重力统一(C#),c#,unity3d,gravity,C#,Unity3d,Gravity,我在做一个使用二维重力的项目。设置在你发射射弹的空间,如果它们离行星足够近,行星的重力会吸引射弹。发射时,弹丸使用对撞机和施加在刚体上的力 我发现的这张图片很好地解释了这一点: 我有一些代码可以工作,但并不完美。这有点奇怪,似乎有些部分比其他部分更难吸引炮弹。有些时候,当我把射弹射过物体时,它没有被物体吸引,而是突然加速飞过。代码如下: public class Gravity : MonoBehaviour{ public GameObject planet; public float m
public class Gravity : MonoBehaviour{
public GameObject planet;
public float maxGravity;
public float maxGravityDist;
public Vector3 force;
public Rigidbody2D rb;
void Update(){
float dist = Vector2.Distance(planet.transform.position, transform.position);
Vector3 v = planet.transform.position - transform.position;
force = v.normalized * (1.0f - dist / maxGravityDist) * maxGravity;
rb.AddForce(v.normalized * (1.0f - dist / maxGravityDist) * maxGravity);
}
}
你的问题不是很清楚吗?我想在我的游戏中加入重力机制,如图所示。我已有的代码在一定程度上做到了这一点,但并不完美。我只是想知道我是否需要对代码进行一些修改,或者是否有更好的方法来实现这一点。N-body算法?你的问题还不完全清楚?我想把这个重力机制添加到我的游戏中,如图所示。我已有的代码在一定程度上做到了这一点,但并不完美。我只是想知道我是否需要对代码进行一些修改,或者是否有更好的方法来实现这一点。N-body算法?