首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在three.js中通过名称或id访问场景,没有scene.childs只访问场景

如何在three.js中通过名称或id访问场景,没有scene.childs只访问场景
EN

Stack Overflow用户
提问于 2017-02-07 03:18:57
回答 2查看 1.3K关注 0票数 0

我试试这个three.js how to get scene by id(name)

我得到了这个错误

Uncaught : THREE.getObjectByName不是函数

为什么我不能用名字或身份进入现场?

密码是

代码语言:javascript
复制
// setup scenes
var scene-1 = new THREE.Scene();
scene-1.add('cube_red');

var scene-2 = new THREE.Scene();
scene-2.add('cube_green');

// get scenes by name
var sceneObj = THREE.Object3D.getObjectByName("scene-1");
console.log(sceneObj.userData.someProp);

// or 

selectedScene = THREE.Object3D.getObjectByName("scene-1");

有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2017-02-07 03:42:15

变量名中不能有-1或-2。

票数 1
EN

Stack Overflow用户

发布于 2017-02-07 05:28:02

您发布的代码无效。但这会给出与您所得到的错误相同的错误:

代码语言:javascript
复制
var scene1 = new THREE.Scene();
var sceneObj = THREE.Object3D.getObjectByName("scene1");

在使用getObjectByName之前,需要实例化一个对象。这将起作用:

代码语言:javascript
复制
//create a Scene
var scene1 = new THREE.Scene();

//create an Object3D
var object1 = new THREE.Object3D();

//give the object a name. By default objects in three don't have names
//but you can add one manually
object1.name = 'obj1';

//add the object as a child of the scene
scene1.add(object1);

//now search through the scene's children for an object called 'obj1'
var obj1 = scene1.getObjectByName('obj1');

console.log(object1 === obj1); //true
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42081113

复制
相关文章

相似问题

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