Three.js将变量添加到对象?

时间:2017-03-02 02:57:35

标签: javascript three.js

在Three.js中,我想创建一个对象,然后向其中添加一个变量。我确定它很简单,但我似乎无法做到,也无法知道如何去做。

例如,我创建了一个多维数据集,我想让它存储一个变量" beenHit"然后可以在Raycast.intersectObjects中访问它。

var geometry = new THREE.BoxGeometry( 1, 1, 1 );
var newColor = new THREE.Color("rgb(12%, 6%, 0%)");
var material = new THREE.MeshStandardMaterial( { color: newColor } );
var cube = new THREE.Mesh( geometry, material );
scene.add( cube );
var cube.beenHit = false;

显然是错的,但是我尝试了不同的方式并且进行了相当多的搜索,但我虚弱的大脑无法计算。任何最感谢的帮助。

1 个答案:

答案 0 :(得分:5)

您可以使用对象THREE.Object3D.userData

cube.userData.beenHit = false;

但是

cube.beenHit = false;

没有 var

也可以做到这一点。请记住,THREE.Object3D只不过是JavaScript对象,只要不覆盖 Three.js 属性,就可以存储任何内容。

修改

正如Martin指出的那样,您应该始终使用userData,否则将来可能会遇到兼容性问题