aframe-template-component + nunjucks шаблон, показываемый в коде, но не появляющийся в сцене - PullRequest
0 голосов
/ 20 октября 2018

Я очень мало знаю о 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>

Кажется, что код появляется в консоли

OneЯ заметил, что проблема заключается в том, что идентификаторы не обновляются должным образом, это должно быть id = "frontOuter1"

Однако здания не отображаются визуально в пределах сцены.Любой совет о том, как это исправить, будет принята с благодарностью!

1 Ответ

0 голосов
/ 20 октября 2018

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>

...