【发布时间】:2017-07-21 01:27:59
【问题描述】:
我正在开发一款基于球形重力的游戏。但不知何故,我的代码没有按预期工作。所以请看看我的代码,告诉我如何让我的球形重力起作用。
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);
}
}
问题阐述。项目是二维的。它包含一个圆形精灵作为带有碰撞器的行星,六边形有一个带有碰撞器和刚体的玩家(只是一个原型)。此脚本附加到播放器(六边形)。根据我的逻辑刚体应该对玩家施加一个力并将其推向行星,它应该面向行星。因此,即使玩家在圆圈的下方,它也不应该下落,而是应该被推向行星。但是所有的对撞机都被忽略了,玩家只是要去一个奇怪的位置
【问题讨论】:
-
感谢您向您的问题添加代码,但什么不起作用?什么是球面重力?
-
@Programmer well 也就是游戏超级马里奥星系中的人造重力。一旦谷歌
-
@programmer 我的玩家本应停留在地球周围,但它正在向行星中心移动
-
@SamratLuitel 嗯,这就是引力点,将你拉到地球的中心。您的对撞机可能有问题。
-
@SamratLuitel 你确定它们在同一个轴上并且它们实际上正在碰撞吗?