我试图通过以下代码向实体添加多属性组件-
在A帧场景中-
<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
我无法理解我在这里做错了什么。我试过其他组合,但没有用。在某些情况下,组件不带任何属性就被附加。我认为问题是由于抖动和模型中心属性是vec3字段,所以我需要以相同的格式传递数据。
有人能帮忙吗?
谢谢, 尼拉杰
实际上你不会通过 vec3 ,只有三个数字,这是一个意外的值,因为解析器需要一个向量。
vec3
要么通过 VEC3 :
VEC3
setAttribute("test", {"jitter": new THREE.Vector3( 0, 1, 0 )})
或矢量的字符串版本:
setAttribute("test", {"jitter": "0 1 0"})
过来看 here . 控制台显示两个向量都正确地传递到 update 功能。
update