团结 - 球形引力需要帮助吗?

时间:2017-07-20 15:52:55

标签: c# unity3d

我正在开发一款基于球形重力的游戏。但不知何故,我的代码没有按预期工作。所以,请看看我的代码并告诉我如何使我的球形重力工作。

public class CircularGravity : MonoBehaviour {
    private Rigidbody2D rigid;
    [SerializeField]
    Transform planet;

    [SerializeField]
    float acceleration = 0.81f;
    // Use this for initialization
    void Start () {
        rigid = GetComponent<Rigidbody2D>();
    }

    // Update is called once per frame
    void Update () {
        rigid.AddForce((planet.position - transform.position).normalized * acceleration);
        transform.rotation = Quaternion.LookRotation(planet.position - transform.position, transform.up);
    }
}

enter image description here 问题阐述。项目是2d。它包含一个圆形精灵作为一个带有对撞机和六角形的行星,它有一个带有对撞机和刚体的玩家(只是一个原型)。此脚本附加到播放器(六角形)。根据我的逻辑,刚体应该向玩家施加一个力并将其推向行星并且应该面向行星。因此,即使玩家位于圆圈的下方,它也不会倒下而是被推向行星。但是所有的对手都被忽视了,而玩家只是走向了奇怪的位置

1 个答案:

答案 0 :(得分:2)

我要检查的第一件事......

  • 确保精灵的原点实际上位于图像的中心。如果它在角落里,玩家将被拉向角落。

  • 确保行星和玩家都有刚体和碰撞器。单击对撞机并确保边缘与您的形状对齐。

  • 确保行星和玩家的z都设置为零。在两个刚体中锁定z。