我必须在渲染中旋转我的网格物体。为此,我必须全局查看我的网格物体。我创建了网格表单对象加载器(json)。因此,我就在回调函数内部。当我尝试在函数之前使用对象创建var,然后赋予函数值时,它不起作用。 如何在全球范围内制作网格?
var material = new THREE.MeshBasicMaterial({ map: earthTexture });
let objectLoader = new THREE.BufferGeometryLoader();
objectLoader.load('geometry.json',
function (geometry) {
var object = new THREE.Mesh(geometry, material);
scene.add(object);
});
答案 0 :(得分:0)
使用全局变量并在回调函数中分配其值,然后检查变量是否未定义:
var obj; // define this variable in the section - let camera, scene, renderer;
. . .
var material = new THREE.MeshBasicMaterial({ map: earthTexture });
let objectLoader = new THREE.BufferGeometryLoader();
objectLoader.load('geometry.json',
function (geometry) {
var obj = new THREE.Mesh(geometry, material);
scene.add(obj);
});
...
// somewhere in your animation loop
if (obj) obj.rotation.y += 0.1;
答案 1 :(得分:0)
我为它服务,我创建了var objectWrapper = new THREE.Object3D();我在其中放置对象