Несколько разных камер в A-кадре - PullRequest
0 голосов
/ 13 июля 2020

Я работаю над сценой с несколькими камерами, установленными в различных предопределенных положениях и поворотах. Я заметил, что когда я смотрю по сторонам с помощью мыши (или в режиме VR), вращение камеры связано между камерами. Поэтому я подумал, что этого можно избежать, используя атрибут active: false, но обе камеры по-прежнему вращаются вместе. Ниже приведен пример сцены, в которой обе камеры находятся в одном положении и имеют <a-box> в своем поле зрения. Обратите внимание, что когда вы смотрите вокруг кадра сцены, кубы (дочерние элементы двух отдельных камер) движутся синхронно. Есть ли способ запретить неактивной камере следовать за вращением активной камеры, чтобы синий куб (с неактивной камерой) оставался неподвижным?

Кроме того, нет ошибок консоли, связанных с A-Frame в этом скрипте. Мы очень ценим вашу помощь, заранее большое спасибо за ваше время.

<!DOCTYPE html>
<html>

<head>
    <script src="https://aframe.io/releases/1.0.4/aframe.min.js"></script>
</head>

<body>
    <a-scene>
        <a-camera active="true" look-controls>
            <a-box color="red" position="-2 0 -10"></a-box>
        </a-camera>
        <a-camera active="false" look-controls>
            <a-box color="blue" position="2 0 -10"></a-box>
        </a-camera>
        <a-plane color="gray" rotation="-90 0 0" width="20" height="20"></a-plane>
    </a-scene>
</body>

</html>

1 Ответ

0 голосов
/ 20 июля 2020

Жизнеспособным решением для этого является включение и отключение look-controls на камерах при переключении между ними. Это можно сделать в JavaScript с помощью newCameraElement.setAttribute('look-controls', 'enabled', true); и oldCameraElement.setAttribute ('look-controls', 'enabled', false) ;. Вот исправленная версия примера вопроса, которая изначально отключает look-controls другой камеры, чтобы обеспечить желаемое поведение отдельных камер:

<!DOCTYPE html>
<html>

<head>
    <script src="https://aframe.io/releases/1.0.4/aframe.min.js"></script>
</head>

<body>
    <a-scene>
        <a-camera active="true" look-controls>
            <a-box color="red" position="-2 0 -10"></a-box>
        </a-camera>
        <a-camera active="false" look-controls="enabled: false">
            <a-box color="blue" position="2 0 -10"></a-box>
        </a-camera>
        <a-plane color="gray" rotation="-90 0 0" width="20" height="20"></a-plane>
    </a-scene>
</body>

</html>
...