【问题标题】:Godot 3d get Forward VectorGodot 3d 获取正向向量
【发布时间】:2018-07-04 10:20:00
【问题描述】:

我想知道是否有办法在 godot 3d 中获取空间节点的前向向量。

统一起来就是transform.forward。

Godot 给了我一个旋转向量,但我不知道如何将其转换为方向向量。

什么是godot版本的transform.forward?

【问题讨论】:

    标签: vector 3d godot


    【解决方案1】:

    Forward 是您决定的。我通常这样做:

    var aim = $Player.get_global_transform().basis
    var forward = -aim.z
    var backward = aim.z
    var left = -aim.x
    var right = aim.x
    

    当然,如果您在设计资产和场景时对此有一个约定,这会有所帮助。我总是使用 -Z 作为转发,但如果你愿意,你可以选择不同的。

    【讨论】:

      【解决方案2】:

      我使用get_global_transform().basis.z解决了我的问题

      【讨论】:

      • 请多解释一下这有什么帮助
      • 我的目标是让游戏对象朝着它所面对的方向移动。我需要这个方向向量
      • 很高兴听到您找到了问题的原因。您可以通过解释如何诊断它,特别是在其他地方看到该问题时,哪些证据可以识别此问题,从而使您的答案对未来的读者更有帮助。
      【解决方案3】:

      SanzioSan 使用 basic.z 向量是正确的,但他解释得不够好。本质上,这是一个非常简单的问题。

      如果您尝试在 3d 中拖动对象或拥有一个对象并希望它跟随您的屏幕,您可以使用与此类似的代码

      var transform_hold_obj = node_to_hold_obj.get_global_transform()
      transform_hold_obj.origin = transform_hold_obj.origin - transform_hold_obj.basis.z * some_distance_between_you_and_object
      obj_being_dragged.set_transform(transform_hold_obj)
      

      在我的例子中,transform_hold_obj 来自我的相机节点。我想要一些我选择的对象来跟随我的相机。此代码位于连接到被拖动对象的一些脚本中。 base.z 向量是我的前向向量或相机指向的方向。

      【讨论】:

        【解决方案4】:

        我知道这有点晚了,但我提出了建立自己的前锋和左矢量的解决方案。它在 c# 中,但应该很容易转换为 GDScript。希望它可以帮助某人。

        Vector3 forward = new Vector3(-(float)Math.Sin(Rotation.y), 0, -(float)Math.Cos(Rotation.y));
        
        Vector3 left = new Vector3((float)Math.Sin(Rotation.y - Math.PI/2), 0, 
        (float)Math.Cos(Rotation.y - Math.PI/2));
        

        【讨论】:

          【解决方案5】:
          【解决方案6】:

          和Vector3.FORWARD有关系吗?

              transform.position += Vector3.forward * Time.deltaTime;
          

          【讨论】:

            猜你喜欢
            • 2017-10-19
            • 2014-02-21
            • 2017-03-22
            • 1970-01-01
            • 2022-08-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多