我对Nunjucks知之甚少,因此,如果我完全朝错误的方向前进,我深表歉意,但这是我将其与aframe-template-component结合使用以在不同位置生成10个建筑实体的镜头。
我在index.html中创建了这个脚本标签:
<script id="building" type="text/x-nunjucks-template">
{% for x in range(0, 10) %}
<a-entity template="src: building.template; type: handlebars"
data-position="{{ x * 10 }} 1 0"
data-positionB="{{ x * 10 }} 1 0"
from="#frontInner{{ x }}"
to="#frontOuter{{ x }}">
</a-entity>
{% endfor %}
</script>
我将此实体放置在场景中
<a-entity template="src: #building"></a-entity>
然后我创建了一个building.template文件(其中包含我要创建其多个版本的建筑物的简化版本):
<rw-room data-position material="color:#866" width="4.8" length="4.8" height="3">
<rw-wall >
</rw-wall>
<rw-wall >
</rw-wall>
<rw-wall >
<rw-doorhole id="frontInner{{ x }}" material="color:#866"></rw-doorhole>
</rw-wall>
<rw-wall >
</rw-wall>
<rw-floor material="color:#870"></rw-floor>
<rw-ceiling material="color:#880"></rw-ceiling>
</rw-room>
<rw-room data-positionB material="color:#866" width="5" length="5" height="3" outside="true">
<rw-wall ></rw-wall>
<rw-wall ></rw-wall>
<rw-wall ></rw-wall>
<rw-wall >
<rw-doorhole id="frontOuter{{ x }}" material="color:#866"></rw-doorhole>
<rw-doorlink from to position="2.5 0 0" material="color:#866" >
<rw-floor material="color:#866"></rw-floor>
<rw-ceiling material="color:#866"></rw-ceiling>
<rw-sides material="color:#866"></rw-sides>
</rw-doorlink>
</rw-wall>
<rw-floor material="color:#866"></rw-floor>
<rw-ceiling material="color:#866"></rw-ceiling>
</rw-room>
The code seems to be appearing in the console
One issue I noticed is that the id's aren't updating as they should, should be id="frontOuter1"
但是,建筑物在场景中没有视觉显示。任何有关如何解决此问题的建议将不胜感激!
答案 0 :(得分:1)
rw-rooms
,rw-wall
...不是A-Frame实体,它们不会被渲染。在模板中使用a-entity
和mixins而不是wr-XXX
元素。例如:
<a-entity mixin="wall"></a-entity>
<a-mixin id="wall" material="color: red"></a-mixin>