B-3*_*-30 2 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;
Run Code Online (Sandbox Code Playgroud)
显然是错误的,但是我尝试了不同的方法并进行了很多搜索,但是我的大脑无力计算。任何帮助,不胜感激。
您可以使用对象THREE.Object3D.userData。
cube.userData.beenHit = false;
Run Code Online (Sandbox Code Playgroud)
但
cube.beenHit = false;
Run Code Online (Sandbox Code Playgroud)
没有 var
也可以做到这一点。请记住,THREE.Object3D这些不过是JavaScript对象,只要不覆盖Three.js属性,就可以存储所需的任何内容。
编辑
正如Martin所指出的那样,您应该始终使用它,userData否则将来可能会遇到兼容性问题。
| 归档时间: |
|
| 查看次数: |
655 次 |
| 最近记录: |