Comment puis - je mettre des limites sur OrbitControl-trois.js
y a-t-il un moyen de limiter les contrôles orbitaux.js? Imagine que je crée quelque chose au-dessus du sol, Je ne voudrais pas que la caméra aille sous le sol, Tu vois ce que je veux dire?! La même chose vaut pour zoomer et dézoomer. Est-il possible de définir certaines variables de la limiter? Parce que je ne veux pas la caméra trop proche ou trop loin.
Merci beaucoup. = )
2 réponses
Zoom avant / arrière
this.minDistance = 0;
this.maxDistance = Infinity;
Où arrêter la rotation :
this.minPolarAngle = 0; // radians
this.maxPolarAngle = Math.PI; // radians
Ne laissez pas aller au-dessous du sol
controls.maxPolarAngle = Math.PI/2;
juste au cas où quelqu'un aurait besoin d'une réponse plus robuste avec l'altitude au sol et le réglage de la cible de la caméra:
vous trouvez l'angle par rapport à la cible des commandes et la position au sol de la caméra (quelle que soit l'altitude) et vous assignez le maxPolarAngle. Ajuster pour votre haut de l'axe, la mienne a été Y. à l'Intérieur de l'événement de changement de contrôle:
var centerPosition = controls.target.clone();
centerPosition.y = 0;
var groundPosition = camera.position.clone();
groundPosition.y = 0;
var d = (centerPosition.distanceTo(groundPosition));
var origin = new THREE.Vector2(controls.target.y,0);
var remote = new THREE.Vector2(0,d); // replace 0 with raycasted ground altitude
var angleRadians = Math.atan2(remote.y - origin.y, remote.x - origin.x);
controls.maxPolarAngle = angleRadians;