代码之家  ›  专栏  ›  技术社区  ›  Niraj

Aframe轨道控制围绕其中心旋转对象,同时保持其他对象固定

  •  0
  • Niraj  · 技术社区  · 7 年前

    我试图旋转一个盒子的中心,同时保持其余的模型固定。这是我的密码-

    <head>
      <title>My A-Frame Scene</title>
      <script src="https://aframe.io/releases/0.8.2/aframe.min.js"></script>
      <script src="https://unpkg.com/aframe-orbit-controls@1.0.0/dist/aframe-orbit-controls.min.js"></script>
      <script src="https://unpkg.com/aframe-supercraft-loader@1.1.3/dist/aframe-supercraft-loader.js"></script>
    </head>
    
    <body>
      <a-scene>
        <a-entity id="super" supercraft-loader="name: better-reaction" ></a-entity>
    
        <a-entity camera look-controls orbit-controls="target: 0 1.6 -0.5; minDistance: 0.5; maxDistance: 180; initialPosition: 0 5 15">
            <a-box position="0 1.6 -21" color="red"></a-box>
        </a-entity>
      </a-scene>
    
    </body>
    

    这是密码笔: https://codepen.io/nirajupadhyay11/pen/RBBpbd

    但是,拖动鼠标时整个模型会旋转,而不仅仅是框。

    我所追求的结果是将盒子和模型固定在各自的位置,但是当鼠标被拖动时,盒子应该围绕其中心旋转。

    我正试图让这个工作,以便,在我的游戏,我正在开发,我可以有一个三维枪模型指向不同的方向,基于鼠标拖动。它们是游戏中的其他三维模型,如树和石头,但是当鼠标被拖动时,它们应该保持在原来的位置。

    以下是我努力实现的一个例子- https://codepen.io/jordizle/pen/haIdo

    你能帮我做这个吗?

    谢谢, 尼拉杰

    1 回复  |  直到 7 年前
        1
  •  0
  •   Piotr Adam Milewski    7 年前

    轨道控制基本上是一个在轨道上旋转的相机。因此得名。

    如果希望场景“静止”且只有一个对象旋转,则无法旋转整个摄影机。您需要单独旋转对象。

    一个简单的实现方法是检查鼠标在窗口上的拖动位置

    1. 当鼠标被按下时,得到位置
    2. 在鼠标上检查位置有多大变化。根据更改旋转对象。
    3. 当它被释放时,停止听鼠标的声音。