我在Blender中制作了一个简单的3D模型,并将其导出为.obj文件。现在我正在使用three.js加载它,我希望拥有名称中包含“clickable”字符串的对象在单击时沿Y轴移动。
您可以在此处查看它:http://three.parkz.cz/shop.html 问题是从对象名称(我在Blender中设置的名称)解析的信息与正确的对象不对应。
加载和解析:
例如,中心的两个立方体(称为“005_kiosek”和“010_kiosek2”)不应该是可点击的,但它们却是可点击的!您可以打开控制台,在单击它后,您可以看到它们的名称错误地命名为“004_clickable”和“009_clickable”!
这是我的blender文件:http://three.parkz.cz/shop.blend 这是javascript方面的问题还是blender导出有误?
谢谢您的帮助!
马丁
P.S:有人知道为什么那些简单的网格(绿色和蓝色)渲染得不好吗?
您可以在此处查看它:http://three.parkz.cz/shop.html 问题是从对象名称(我在Blender中设置的名称)解析的信息与正确的对象不对应。
加载和解析:
var loader = new THREE.OBJMTLLoader();
loader.addEventListener('load', function(event) {
object = event.content;
object.name = 'CustomObjects';
for(var i = 0; i < object.children.length; i++) {
//console.log(object.children[i]);
var properties = object.children[i].name.split('_');
if(properties[1] == 'clickable') {
object.children[i].clickable = true;
} else object.children[i].clickable = false;
}
object.rotation.x = 0.5;
object.rotation.y = 0.5;
scene.add(object);
});
loader.load('shop.obj', 'shop.mtl');
例如,中心的两个立方体(称为“005_kiosek”和“010_kiosek2”)不应该是可点击的,但它们却是可点击的!您可以打开控制台,在单击它后,您可以看到它们的名称错误地命名为“004_clickable”和“009_clickable”!
这是我的blender文件:http://three.parkz.cz/shop.blend 这是javascript方面的问题还是blender导出有误?
谢谢您的帮助!
马丁
P.S:有人知道为什么那些简单的网格(绿色和蓝色)渲染得不好吗?