我试图通过以下代码将多属性组件添加到实体-
在一帧场景内-
<a-entity id="hornets"></a-entity>
在控制器内-
var hornets = document.querySelector('#hornets');
hornets.setAttribute('crtmodelcopy', {id: 'ball', jitter: 5 1.2 0.4, modelCenter: 2 0.5 -50, src:'#hornet'});
该组件的代码如下-
AFRAME.registerComponent('crtmodelcopy', {
schema: {
id: {type:'string'},
jitter: {type:'vec3'},
modelCenter: {type:'vec3'},
src: {type:'string'}
},
init: function() {
......
}
但是,我在控制台中收到以下错误-
Uncaught SyntaxError: Unexpected number
我无法理解我在这里做错了什么。我尝试了其他组合,但无济于事。在某些情况下,该组件没有任何属性即可被附加。我认为问题是由于抖动和modelCenter属性属于vec3字段,因此我还需要以相同的格式传递数据。
有人可以帮忙吗?
谢谢, 尼拉吉
答案 0 :(得分:0)
实际上,您没有传递vec3
,只是传递了三个数字(这是一个意外值),因为解析器需要一个向量。
通过vec3
:
setAttribute("test", {"jitter": new THREE.Vector3( 0, 1, 0 )})
或向量的字符串版本:
setAttribute("test", {"jitter": "0 1 0"})
检出here。控制台显示两个向量都正确传递到update
函数中。