ThreeJs OrbitControls: Как отключить панорамирование мыши, не отключая панорамирование клавиш?

Я пытаюсь запретить пользователям панорамирование с помощью мыши, но по-прежнему разрешено панорамирование с помощью клавиш. Если это использование controls.enablePan = false;Я не могу использовать ключи для панорамирования. Однако, если я пытаюсь перепривязать кнопки мыши, это заставляет меня назначить кнопку мыши на Орбиту, Панорамирование и Масштаб. Как я могу запретить пользователям использовать панорамирование мыши, но при этом иметь возможность панорамирования клавишами? Я не хочу полностью отключать мышь, потому что мне нужно иметь возможность вращаться с правой кнопкой мыши.

3 ответа

Нет возможности отключить только панорамирование мыши. Вам нужно будет загрузить и изменить OrbitControls.js и закомментировать, удалить или изменить код, связанный с панорамированием с помощью мыши.

Например, эта строка

https://github.com/mrdoob/three.js/blob/bcd4bec92609ce8af76a590b0f281ecf71019c2b/examples/js/controls/OrbitControls.js#L703

и эта строка

https://github.com/mrdoob/three.js/blob/bcd4bec92609ce8af76a590b0f281ecf71019c2b/examples/js/controls/OrbitControls.js#L780

так далее...

Вы уже пробовали изменить свойство кнопок мыши ?

Что-то вроде того:

      controls.mouseButtons = {
    LEFT: THREE.MOUSE.ROTATE,
    MIDDLE: THREE.MOUSE.DOLLY,
    RIGHT: ''
}

Он решил аналогичную проблему, которая возникла у меня некоторое время назад.

Вы можете переназначить клавиши управления, фактически отключив их:

this.controls.keys = { LEFT: 0, RIGHT: 0, UP: 0, BOTTOM: 0 }
Другие вопросы по тегам