我在Orbitcontrols上有麻烦。我有我的三个js模型,我希望它能够自动加载页面时,第一次,但出于某种原因,它不能正常工作。三维模型静止不动,好像没有考虑命令行。下面是我初始化函数的代码:
init()函数,其中声明模型并将它们添加到场景中:
controls.autoRotate=true
controls.addEventListener('change', render);
render();呈现功能:
function render() {
renderer.render(scene, camera);
}请注意,我可以移动我的模型,我希望在我的网页,但自动旋转似乎没有触发。
发布于 2021-01-20 17:11:02
只有在动画循环中调用OrbitControls.autoRotate时,才能使用controls.update()。不能将自动旋转与按需呈现结合使用(这意味着通过使用控件的change事件侦听器)。
let camera, scene, renderer, controls;
init();
animate();
function init() {
camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.01, 10 );
camera.position.z = 1;
scene = new THREE.Scene();
const geometry = new THREE.BoxGeometry( 0.2, 0.2, 0.2 );
const material = new THREE.MeshNormalMaterial();
const mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );
renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
controls = new THREE.OrbitControls( camera, renderer.domElement );
controls.autoRotate = true;
}
function animate() {
requestAnimationFrame( animate );
controls.update();
renderer.render( scene, camera );
}body {
margin: 0;
}<script src="https://cdn.jsdelivr.net/npm/three@0.124/build/three.js"></script>
<script src="https://cdn.jsdelivr.net/npm/three@0.124/examples/js/controls/OrbitControls.js"></script>
https://stackoverflow.com/questions/65814177
复制相似问题