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



我试图在固定其他模型的同时,围绕其中心旋转一个长方体。这是我的代码-

<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

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

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

我正在努力让它发挥作用,这样,在我正在开发的游戏中,我可以根据鼠标拖动,让一个3d枪模型指向不同的方向。它们是游戏中的其他三维模型,如树木和岩石,但当拖动鼠标时,它们应该保持在原来的位置。

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

你能帮我做这个吗?

谢谢,Niraj

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

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

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

  1. 按下鼠标时,获取位置
  2. 在mousemove上,检查位置有多大变化。根据更改旋转对象
  3. 释放后,停止监听mousemove

最新更新