aframe-template-component + nunjucks模板显示在代码中但不出现在场景中

时间:2018-10-19 22:19:59

标签: aframe nunjucks

我对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"

但是,建筑物在场景中没有视觉显示。任何有关如何解决此问题的建议将不胜感激!

1 个答案:

答案 0 :(得分:1)

rw-roomsrw-wall ...不是A-Frame实体,它们不会被渲染。在模板中使用a-entitymixins而不是wr-XXX元素。例如:

<a-entity mixin="wall"></a-entity>

<a-mixin id="wall" material="color: red"></a-mixin>