Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 统一-需要球形重力的帮助吗?_C#_Unity3d - Fatal编程技术网

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


      感谢您在问题中添加代码,但什么不起作用?什么是球形重力?@程序员:嗯,这也被称为人造重力,就像超级马里奥星系游戏中一样。曾经的谷歌that@programmer我的球员本应该留在地球周围,但它正朝着地球的中心移动planet@SamratLuitel这就是重力点,把你拉到行星的中心。您的碰撞器可能有问题。@SamratLuitel您确定它们在同一个轴上并且它们确实在碰撞吗?感谢您为您的问题添加代码,但什么不起作用?什么是球形重力?@程序员:嗯,这也被称为人造重力,就像超级马里奥星系游戏中一样。曾经的谷歌that@programmer我的球员本应该留在地球周围,但它正朝着地球的中心移动planet@SamratLuitel这就是重力点,把你拉到行星的中心。您的碰撞器可能有问题。@SamratLuitel您确定它们在同一轴上并且确实在碰撞吗?还要确保在刚体上关闭重力(不确定这是否与2D相关)。还要确保在刚体上关闭重力(不确定这是否与2D相关)。