Montag, 3. September 2007

Wie mit Lua in Quest3D über ein Array iteriert werden kann

Boah, das hat mich Nerven gekostet! Es gibt kein programmatisches Mittel bei dem mit Hilfe der Lua-Quest3D-Befehle die Größe eines Arrays festgestellt werden kann. Offensichtlich hatten aber auch andere das Problem.

Es gibt ein - ich nenne es mal - Workaround über den Graph-Weg:

  1. Channel vom Typ "Array Info Value" in den Graph ziehen und bei den Properties "Number of Rows in Child" auswählen
  2. Child-Seite mit einer "Array Table" verbinden
  3. Parent-Seite mit einem ChannelCaller o.ä. verbinden. (Wichtig: Ohne diesen Schritt holt sich der Array Info Value Channel nicht die Informationen wieviele Elemente in der Array Table drin sind)
  4. Parent-Seite mit einem Lua-Skript verbinden (z.B. an 2. Stelle). In Lua folgenden Aufruf durchführen:
    • local arraySize = channel.GetChild(1):GetValue()
Fertig.

Keine Kommentare: