2016-07-25 7 views
2

A-Frameから、.object3Dまたは.getObject3D()でエンティティのobject3Dにアクセスできます。逆に、three.jsオブジェクトを使用している場合は、オブジェクトが属する要素おそらく親要素をuserdataに追加しますか?three.jsのA-Frame要素へのアクセスobject3D

答えて

4

object3Dにエンティティを添付して.elとします。メッシュのエンティティと例えば

document.querySelector('a-entity').getObject3D('mesh').el; 

また、グループobject3Dに付着:

document.querySelector('a-entity').object3D.el; 

はこれはsetObject3D()中に行われます。

object3Dの場合、Aフレームは直接管理されず、直接関連付けられたAフレームエンティティがありません。object3D.traverseAncestorsで最も近いものを見つけるためにシーングラフを歩くことができます。

+0

すべてのエンティティにメッシュがあるわけではありませんが、必ず 'document.querySelector( 'a-entity')。object3D.el' –

0

私は、traverseAncenstorsを使用して上を横断し、要素があればそれを返す小さな関数を書いています。

function getParentEl(o){ 
    let p; 
    o.traverseAncestors(function(a){ 
    if(p === undefined && a.el){ 
     p = a; 
    } 
    }); 
    if(p){ 
    return p.el 
    } 
    return; 
} 
関連する問題