【问题标题】:Separate RigidBod2D rotation from Sprite从 Sprite 中分离 RigidBody2D 旋转
【发布时间】:2017-01-19 13:36:55
【问题描述】:

使用 Unity 2D 我想允许它使用 Rigidbody2D,但我想防止精灵在刚体旋转时旋转。我该怎么做?

换句话说,我希望模拟很好,但我不希望这个对象的图形旋转。

【问题讨论】:

    标签: unity3d unityscript


    【解决方案1】:

    使用两个 GameObject:一个父 GameObject 包含您的 Rigidbody2D 组件,一个子 GameObject 包含您的 SpriteRenderer 组件。

    然后将脚本附加到子游戏对象,该脚本始终将其transform.rotation 分配为您想要的任何内容:

    var desiredRotation:Quaternion;
    
    function LateUpdate () {
        transform.rotation = desiredRotation;
    }
    

    无论刚体如何旋转,这都允许精灵持续保持旋转。

    【讨论】:

      【解决方案2】:

      我使用了两个 GameObjects(父和子,在子上带有 sprite 组件)并在子的更新函数中添加了以下代码:

      transform.localRotation = transform.localRotation * Quaternion.Inverse(transform.rotation);
      

      它做了魔术:)

      【讨论】:

        【解决方案3】:

        将此脚本添加到您的GameObject

        void Update () {
            transform.localRotation = new Quaternion ();
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-03-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多