Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 三.js-“的;未捕获类型错误:无法读取属性';中心';对于未定义的-three.js:6754“;当我添加另一个网格时正在发生_Javascript_Three.js - Fatal编程技术网

Javascript 三.js-“的;未捕获类型错误:无法读取属性';中心';对于未定义的-three.js:6754“;当我添加另一个网格时正在发生

Javascript 三.js-“的;未捕获类型错误:无法读取属性';中心';对于未定义的-three.js:6754“;当我添加另一个网格时正在发生,javascript,three.js,Javascript,Three.js,所以。我开始编写一些un JS代码,并想用Three.JS做一些东西。直到我添加行 scene.add(my_square)一切正常。但每当我尝试拥有它时,它就不起作用了,记录下这个 Uncaught TypeError: Cannot read property 'center' of undefined at Sphere.copy (three.js:6754) at Frustum.intersectsObject (three.js:14106) at proj

所以。我开始编写一些un JS代码,并想用Three.JS做一些东西。直到我添加行
scene.add(my_square)一切正常。但每当我尝试拥有它时,它就不起作用了,记录下这个

Uncaught TypeError: Cannot read property 'center' of undefined
    at Sphere.copy (three.js:6754)
    at Frustum.intersectsObject (three.js:14106)
    at projectObject (three.js:24835)
    at projectObject (three.js:24880)
    at WebGLRenderer.render (three.js:24654)
    at animate (game.js:85)
我试着只在我的场景中添加他,结果也是一样。 起初我称它为square,所以我认为它已经被使用了,所以我将所有相关变量改为my_somthing

顺便说一句,我正在Chrome上做测试。 这是我的密码:

var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(
    75,
    window.innerWidth / window.innerHeight,
    0.1,
    1000
);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
var loader = new THREE.TextureLoader();
//#######################################################################################
//CREATE THE THING IN THE SCENE. Created : background, player, my_square, light.
//#######################################################################################
//background
//#######################################################################################
var planeBackground = new THREE.PlaneGeometry(40, 40);

var texture = loader.load("ressources/Images/sourire_texture.jpg");

var planeMaterial = new THREE.MeshLambertMaterial({
    map: texture,
    side: THREE.DoubleSide
});

var background = new THREE.Mesh(planeBackground, planeMaterial);
//#######################################################################################
//player
//#######################################################################################
player = {
    max: {
        pv: 30,
        grade: "chef",
        colordeg: 0xff0000,
        colorNormal: 0xffffff,
        actualColor: this.colorNormal
    },
    loup: {
        pv: 45,
        grade: "officer",
        colordeg: 0xff0000,
        colorNormal: 0xffffff,
        actualColor: this.colorNormal
    }
};
//#######################################################################################
//light
//#######################################################################################
var light = new THREE.DirectionalLight(0xffffff, 1);
light.position.setScalar(10);

scene.add(light);
//#######################################################################################
//my_square
//#######################################################################################
var my_planeSquare = new THREE.PlaneGeometry(40, 40);

var my_squareTexture = loader.load("ressources/Images/square_texture.jpg");

var my_planeSquare = new THREE.MeshLambertMaterial({
    map: my_squareTexture,
    side: THREE.DoubleSide
});

var my_square = new THREE.Mesh(my_planeSquare, my_squareTexture);

//#######################################################################################
//END OF CREATE
//#######################################################################################

background.player = player["max"];
my_square.player = player["loup"];

scene.add(background);
//scene.add(my_square); // <---------------------- when i add this it trigeer my problem.
camera.position.z = 100;
my_square.position.x = 5;

function rotationXY(x, y) {
    background.rotation.x += x;
    background.rotation.y += y;
}
function animate() {
    requestAnimationFrame(animate);
    renderer.render(scene, camera);
}
animate();

var raycaster = new THREE.Raycaster();
var mouse = new THREE.Vector2();
function onMouseMove(event) {
    // calculate mouse position in normalized device coordinates
    // (-1 to +1) for both components

    mouse.x = (event.clientX / window.innerWidth) * 2 - 1;
    mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;
}

window.addEventListener("click", () => {
    mouse.x = (event.clientX / window.innerWidth) * 2 - 1;
    mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;
    raycaster.setFromCamera(mouse, camera);

    // calculate objects intersecting the picking ray
    var intersects = raycaster.intersectObjects(scene.children);

    if (intersects.length > 0) {
        console.log(intersects[0].object.player);
    }
});
var scene=new THREE.scene();
var摄像机=新的三视角摄像机(
75,
window.innerWidth/window.innerHeight,
0.1,
1000
);
var renderer=new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth、window.innerHeight);
document.body.appendChild(renderer.doElement);
var loader=new THREE.TextureLoader();
//#######################################################################################
//在场景中创建对象。创建:背景、播放器、我的广场、灯光。
//#######################################################################################
//背景
//#######################################################################################
var planeBackground=新的三个平面几何体(40,40);
var texture=loader.load(“ressources/Images/sourire_texture.jpg”);
var planeMaterial=新的3.0网格lambertMaterial({
贴图:纹理,
侧面:三个。双面
});
var background=新的三个网格(planeBackground,planeMaterial);
//#######################################################################################
//玩家
//#######################################################################################
玩家={
最大值:{
pv:30,
等级:“厨师”,
colordeg:0xff0000,
colorNormal:0xffffff,
实际颜色:这是正常颜色
},
卢普:{
pv:45,
职系:"警务人员",
colordeg:0xff0000,
colorNormal:0xffffff,
实际颜色:这是正常颜色
}
};
//#######################################################################################
//轻的
//#######################################################################################
var灯=新的三方向灯(0xffffff,1);
灯。位置。设置刻度(10);
场景。添加(灯光);
//#######################################################################################
//我的广场
//#######################################################################################
var my_planeSquare=新的三个平面几何体(40,40);
var my_squareTexture=loader.load(“ressources/Images/square_texture.jpg”);
var my_planeSquare=新的3.0网格LambertMaterial({
地图:我的心,
侧面:三个。双面
});
var my_square=new THREE.Mesh(my_planeSquare,my_square纹理);
//#######################################################################################
//创建结束
//#######################################################################################
background.player=player[“max”];
my_square.player=玩家[“loup”];
场景。添加(背景);
//场景。添加(my_square);//{
mouse.x=(event.clientX/window.innerWidth)*2-1;
mouse.y=-(event.clientY/window.innerHeight)*2+1;
raycaster.setFromCamera(鼠标、相机);
//计算与拾取光线相交的对象
var intersects=raycaster.intersectObjects(scene.children);
如果(相交长度>0){
console.log(与[0].object.player相交);
}
});

我想如果这只是我没见过的东西。如果事先感到抱歉。

编辑:我发现了问题。我把这部分搞砸了:

//#######################################################################################
//my_square
//#######################################################################################
var my_planeSquare = new THREE.PlaneGeometry(40, 40);

var my_squareTexture = loader.load("ressources/Images/square_texture.jpg");

var my_planeSquare = new THREE.MeshLambertMaterial({
    map: my_squareTexture,
    side: THREE.DoubleSide
});

var my_square = new THREE.Mesh(my_planeSquare, my_squareTexture);
与此相反:


var my_squareTexture = loader.load("ressources/Images/square_texture.jpg");

var my_planeSquare = new THREE.MeshLambertMaterial({
    map: my_squareTexture,
    side: THREE.DoubleSide
});

var my_square = new THREE.Mesh(my_planeSquareGeometry, my_planeSquare);

所以是的。。。问这个问题有助于我的大脑从代码中解放出来,并看到错误。(THREE.PlaneGeometry被THREE.MeshLambertMaterial删除,因为它的名称相同)

将您的编辑作为答案发布怎么样?