Я работаю над простой демонстрацией Three.js, которая использует OrbitControls.js. В настоящее время левая кнопка мыши перемещается, правая кнопка мыши и средняя кнопка мыши/тележки прокрутки (масштабирование). Но я бы хотел поменять местами орбиту и панорамирование, чтобы они контролировались правой кнопкой мыши и левой кнопкой мыши, соответственно. Существуют ли настройки конфигурации для изменения этой функции? Или мне придется погрузиться в код, чтобы изменить это?Three.js & OrbitControls.js - Могу ли я изменить конфигурацию входа?
3
A
ответ
1
Вам нужно будет погрузиться в код; на данный момент нет опции конфигурации. К счастью, это довольно легкое изменение; вам просто нужно обновить функцию onMouseDown
и изменить условное, который проверяет event.button
:
// you could change this to `event.button == 1` if you wanted the
/// right mouse button to rotate, and so on...
if (event.button === 0) {
if (scope.noRotate === true) return;
state = STATE.ROTATE;
rotateStart.set(event.clientX, event.clientY);
} else if (event.button === 1) {
if (scope.noZoom === true) return;
state = STATE.DOLLY;
dollyStart.set(event.clientX, event.clientY);
} else if (event.button === 2) {
if (scope.noPan === true) return;
state = STATE.PAN;
panStart.set(event.clientX, event.clientY);
}
https://github.com/mrdoob/three.js/blob/master/examples/js/controls/OrbitControls.js#L333-L352
Одна из причин, эти элементы управления ставятся в примерах (а не части ядра) является то, что люди потребности варьируются довольно широко, поэтому вам рекомендуется редактировать элементы управления в соответствии с вашими потребностями.
Three.js R68
1
Теперь вы можете настроить мышь-управления очень легко. Просто получите Control-Object, а затем измените конфигурацию мыши-кнопки следующим образом:
this._controls = new OrbitControls(world._engine._camera, world._container);
// Mouse buttons
this._controls.mouseButtons = { ORBIT: THREE.MOUSE.RIGHT, ZOOM: THREE.MOUSE.MIDDLE, PAN: THREE.MOUSE.LEFT };
Смежные вопросы
- 1. three.js OrbitControls.js зум масштабирование не линейна
- 2. Могу ли я изменить ориентацию входа входа в приложение?
- 3. OrbitControls.js - Не могу прочитать свойство «prototype» undefined
- 4. Three.js & OrbitControls.js - камера панорамирования, параллельная плоскости земли (например, Google Earth)
- 5. Могу ли я изменить конфигурацию ядра в реальном времени?
- 6. Могу ли я изменить конфигурацию (application.conf) продукции без перекомпиляции?
- 7. OrbitControls - Могу ли я включать/отключать масштабирование динамически?
- 8. Могу ли я использовать конфигурацию Log4j.xml для SLF4J и Logback?
- 9. Могу ли я просмотреть конфигурацию из конкретной сборки в Jenkins?
- 10. Как я могу изменить конфигурацию Apache (веб-корень) в Codenvy?
- 11. Как я могу изменить эту конфигурацию, чтобы работать с Hibernate?
- 12. Как я могу изменить прозрачность модели JSON в сцене Three.js?
- 13. Могу ли я изменить EditText
- 14. Могу ли я изменить json.RawMessage?
- 15. THREE.js OrbitControl.js вы можете изменить обратное вращение оси y?
- 16. Как изменить конфигурацию пряжи?
- 17. Можно ли изменить конфигурацию Log4j на лету?
- 18. Как изменить конфигурацию времени?
- 19. изменить конфигурацию NDK_builder
- 20. Могу ли я экспортировать всю конфигурацию подписки на Azure?
- 21. Могу ли я отключить поставщика кэша .Net через конфигурацию
- 22. Могу ли я использовать конфигурацию маршрутизации AngularJS внутри Express?
- 23. Могу ли я применить конфигурацию от кукольного мастера к агенту
- 24. Могу ли я создать конфигурацию для моей java-программы?
- 25. Могу ли я скопировать конфигурацию Open Graph между приложениями?
- 26. Могу ли я хранить конфигурацию shiro в другом хранилище данных?
- 27. Могу ли я настроить конфигурацию Джерси-Клиента с web.xml
- 28. Могу ли я передать другие компоненты в конфигурацию Castle Windsor?
- 29. Могу ли я добавить конфигурацию стиля ini в комплекты pytest?
- 30. MSBuild - Могу ли я построить конфигурацию сборки без решения?
Я придумал настраиваемое решение этой проблемы на основе вашего предложения. Макет кнопки мыши - это еще одна членная переменная класса ObjectControls, которую вы можете изменить после ее создания. Является ли это дополнительным предложением, предлагающим разработчикам кода? – Justin
Хм, видимо, такое изменение уже было объединено для следующей версии! https://github.com/mrdoob/three.js/pull/5260 – caseygrun