C# 统一-需要球形重力的帮助吗?
我正在做一个基于球面引力的游戏。但不知何故,我的代码没有按预期工作。所以,请看一下我的代码,告诉我如何使我的球面重力工作C# 统一-需要球形重力的帮助吗?,c#,unity3d,C#,Unity3d,我正在做一个基于球面引力的游戏。但不知何故,我的代码没有按预期工作。所以,请看一下我的代码,告诉我如何使我的球面重力工作 public class CircularGravity : MonoBehaviour { private Rigidbody2D rigid; [SerializeField] Transform planet; [SerializeField] float acceleration = 0.81f; // Use thi
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);
}
}
公共类循环权重:单一行为{
私有刚体2d刚性;
[序列化字段]
改造地球;
[序列化字段]
浮子加速度=0.81f;
//用于初始化
无效开始(){
刚性=GetComponent();
}
//每帧调用一次更新
无效更新(){
刚性.AddForce((planet.position-transform.position).归一化*加速度);
transform.rotation=Quaternion.LookRotation(planet.position-transform.position,transform.up);
}
}
问题阐述。项目是二维的。它包含一个圆形精灵,作为一个带有对撞机的行星,六边形有一个带有对撞机和刚体的播放器(只是一个原型)。此脚本附加到播放器(hexagon)。根据我的逻辑,刚体应该对玩家施加一个力,把它推向行星,它应该面对行星。因此,即使玩家处于圆圈的下方,它也不应该坠落,而是应该被推向行星。但是所有的对撞机都被忽略了,玩家只是去了一个奇怪的位置我要检查的第一件事
- 确保精灵的原点实际位于图像的中心。如果它在角落里,玩家将被拉向角落
- 确保行星和玩家都有刚体和碰撞器。单击碰撞器,确保边与形状对齐
- 确保行星和玩家的z都设置为零。在两个刚体中锁定z
- 确保精灵的原点实际位于图像的中心。如果它在角落里,玩家将被拉向角落
- 确保行星和玩家都有刚体和碰撞器。单击碰撞器,确保边与形状对齐
- 确保行星和玩家的z都设置为零。在两个刚体中锁定z
- 我要检查的第一件事