【问题标题】:Magnetic Field Unity磁场统一
【发布时间】:2014-12-26 14:17:37
【问题描述】:

我一直在尝试制作某种磁场,让 AddForce 朝着它前进。我在某处找到了这段代码:

 else if(collider.tag == "magnet")
     {
         float radius = collider.GetComponent<CircleCollider2D>().radius;
             Vector3 magnetField = collider.transform.position- transform.position;
             float index = (radius - magnetField.magnitude) / radius;
             rigidbody2D.AddForce( -4 * force * magnetField * index);
     }

它确实会向场设置力,但在它发生之前,如果我的角色的速度很小,它会在相反的方向设置力。在代码之外当然有 OnTriggerStay2D。谁能告诉我这是怎么回事?

提前致谢

【问题讨论】:

    标签: unity3d game-physics


    【解决方案1】:

    问题的根源是 AddForce 方法中的 -4,假设“力”是一个正值,表示磁铁对这个物体的吸引力有多大。 MagnetField 是一个从带有脚本的对象指向磁铁的向量,这是对象应该移动的方向,因此无需取反。

    【讨论】:

      猜你喜欢
      • 2022-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多