Javascript 如何在Three.js中单击后继续调整3DObject的大小,除了scale.set,还有其他调整大小的方法吗?
我关于StackOverflow的第一个问题 我正在创建一个javascript交互式游戏,我希望芒果在每次发生事件时都变大/变小/颜色不同/等等。我正在测试,我在mango上安装了一个事件侦听器,它在回调中使用scale.set调整大小,但只调整了一次。还有别的办法吗?我希望它的尺寸继续增大,直到达到一定的尺寸,但尚未确定。我试着使用百分比,结果是同样的事情,再加上我的林特对我大喊大叫。这是我的相关代码:Javascript 如何在Three.js中单击后继续调整3DObject的大小,除了scale.set,还有其他调整大小的方法吗?,javascript,3d,three.js,resize,Javascript,3d,Three.js,Resize,我关于StackOverflow的第一个问题 我正在创建一个javascript交互式游戏,我希望芒果在每次发生事件时都变大/变小/颜色不同/等等。我正在测试,我在mango上安装了一个事件侦听器,它在回调中使用scale.set调整大小,但只调整了一次。还有别的办法吗?我希望它的尺寸继续增大,直到达到一定的尺寸,但尚未确定。我试着使用百分比,结果是同样的事情,再加上我的林特对我大喊大叫。这是我的相关代码: const Mango = function() { this.mesh = new
const Mango = function() {
this.mesh = new THREE.Object3D();
const geom = new THREE.BoxGeometry(8, 16, 5, 8, 8, 8);
// making the box round
for (let i = 0; i< geom.vertices.length; i++) {
geom.vertices[i].normalize().multiplyScalar(16);
}
for (let i = 0; i < geom.faces.length; i ++) {
let face = geom.faces[i];
face.vertexNormals[0].copy( geom.vertices[face.a] ).normalize();
face.vertexNormals[1].copy( geom.vertices[face.b] ).normalize();
face.vertexNormals[2].copy( geom.vertices[face.c] ).normalize();
}
// making it oblong
geom.applyMatrix( new THREE.Matrix4().makeScale(1.0, 1.3, 0.6));
// adding mango skin
const loader = new THREE.TextureLoader();
const mangoMap = loader.load("images/mangoMap.jpg");
const mat = new THREE.MeshPhongMaterial({
color: 0xffd507,
shininess: 40,
map: mangoMap,
});
const mango = new THREE.Mesh(geom, mat);
// adding eventlistener
const domEvents = new THREEx.DomEvents(camera, renderer.domElement);
domEvents.addEventListener(mango, 'click', function increaseMangoSize(e) {
mango.scale.set(1.2, 1.2, 1.2);
});
this.mesh.add(mango);
};
const Mango=function(){
this.mesh=new THREE.Object3D();
const geom=新的三盒几何体(8,16,5,8,8,8);
//把箱子弄圆
for(设i=0;i
此外,如果您在我的代码中看到任何其他您想要评论或有益的评论,请让我知道!我今天才刚开始使用Three.js,还有很多东西要学。我想起来了!!我曾经
mango.scale.multiplyScalar(1.2);
相反,它是有效的。呸 但如果有人有任何其他意见/建议,请告诉我!