首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PointerLockControls时three.js渲染场景失败

使用PointerLockControls时three.js渲染场景失败
EN

Stack Overflow用户
提问于 2017-07-31 04:23:07
回答 1查看 277关注 0票数 0

我有一个问题,一旦我创建了一个PointerLockControls对象,我的three.js场景就无法渲染。我完全不知道问题出在哪里。

main.js:

代码语言:javascript
复制
const THREE = require("three");
var PointerLockControls = require('three-pointerlock');
//utils
import detect from "./detect"
import dialogs from "./dialogs"
import calc from "./calc"
import {Player} from "./charackters"


//3D stuff
import world from "./world"

//Scene creation
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 1000 );

var controls = new PointerLockControls(camera);

camera.position.y = -50;
camera.position.z = 40;
camera.rotation.x = calc.rad(90);


//WebGL Renderer
var renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
renderer.setClearColor(0x000000);
document.body.appendChild( renderer.domElement );

world.drawFloor(scene, THREE);
var cGeo = new THREE.BoxGeometry(10,10,10);
var cTexture = new THREE.MeshNormalMaterial();
var Cube = new THREE.Mesh(cGeo, cTexture);
scene.add(Cube);


//tick function
var clock = new THREE.Clock(true);
function animate() {
    requestAnimationFrame(animate);
    controls.update(clock.getDelta);
    renderer.render( scene, camera );
}

if(detect.webgl()){
  animate();
}else{
  dialogs.error("Your browser does not support WebGL. Please install a modern Browser such as Google Chrome or Mozilla Firefox to play AlphaWars!", "Warning:")
} 

如果您需要我的任何其他文件,请发表意见。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-07-31 11:07:30

也许你错误地使用了PointerLockControls。应该在var controls = new PointerLockControls(camera);之后添加scene.add( controls.getObject() );,因为PointerLockControls对象具有属性pitchObject,并且应该将其添加到场景中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45404328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档