Dynamiczna zmiana zawartości elementu

Transform umożliwia zmianę wyglądu elementów lub grup elementów, ale w niektórych przypadkach możesz chcieć przełączać się między listą zachowań na podstawie określonego warunku. Jest to odpowiednik instrukcji switch lub if…else w innych językach.

Możesz na przykład wyświetlać różne tła wczesnym rankiem, rano, w porze lunchu, po południu, wieczorem i w nocy.

Instrukcje Condition w formacie tarczy zegarka umożliwiają uwzględnianie różnych części sceny tarczy zegarka w zależności od oceny wyrażeń, np.:

<Condition>
    <Expressions>
        <Expression name="is_early_morning">
            <![CDATA[[HOUR_0_23] >= 6 && [HOUR_0_23] < 8]]
        </Expression>
        <Expression name="is_morning">
            <![CDATA[[HOUR_0_23] < 12]]
        </Expression>
        <!-- Further expressions -->
    </Expressions>
    <Compare expression="is_early_morning">
        <!-- Early morning content here -->
    </Compare>
    <Compare expression="is_morning">
        <!-- Morning content here -->
    </Compare>
    <!-- Further Compare elements -->
    <!-- The "else" case -->
    <Default>
        <!-- content -->
    </Default>
</Condition>

Kilka uwag na temat warunków:

  1. Używany jest pierwszy element Compare, w którym expression ma wartość true, a pozostałe są ignorowane.
  2. Ze względu na format XML najłatwiej jest umieścić definicję wyrażenia w elemencie CDATA, jak pokazano tutaj. Pozwala to uniknąć konieczności stosowania znaków ucieczki XML za pomocą elementów encji, takich jak &gt;&amp;.
  3. Condition struktur można zagnieżdżać.