Skip to content

Switch et container

Gentilhomme edited this page Jan 26, 2015 · 4 revisions

#Switch et container (pratique)

Ce qu'il faut comprendre du système d'UI c'est qu'il marche principalement autour de container. Qu'est qu'un container ? Hmm on pourrait d'écrire un container comme une page d'un site internet. Si tu est sur la page option alors tu n'est pas sur la page accueil, etc..

Switch étant la function UI qui va permettre de déplacer des containers. Prenons une scène neutre avec un script simple :

Notre scène en image :

Notre script lié au gameObject "HUD" :

function Behavior:Awake()
    UI = United.UserInterface:New(self,true,"Accueil") 
    --United.Stylesheets("Test")
end

function Behavior:Update()
    United()
    if CS.KeyReleased("A") then
        UI:Switch("Option")
    end
end

Lancer votre jeu vos serers sur la page "Accueil", mais si vous appuyiez sur la touche "A" vous serez alors sur la page "option" !

Je vous conseille de noter l'argument New pour crée votre HUD que vous pouvez trouver dans le référencement d'userinterface.

New(env,autocreate,indexSwitch,callback)

Connaître le container actif.

Si pendant le développement de votre jeu vous avez besoin d'intéragir de manière plus effectif avec vos containers alors il vos mieux savoir récupérer le container actif non ?

print(UI.ActiveContainer) -- Retournera "Accueil" par exemple.

SceneConstructor

Par défaut si la construction n'a pas éter effectuer le HUD va s'en occuper lui même car il en a besoin. Et oui container fait partit des catégories présente dans la construction de scène!

Récupérer tout les containers de la scène

-- On enregistre nos objets dans une variable 
local ContainerTable = SceneConstructor:Get("container")

-- On boucle et print nos objets.
for k,v in pairs(ContainerTable) do
    print(k,v:GetName())
end
-- Rapport d'exécution
1    Container_Accueil
2    Container_Option

Détails

Pas besoin de demander a switch "Container_Option", la function switch ajoutera le mot clé "Container_" elle même.

-- Mauvais
UI:Switch("Container_Option")

-- Bon 
UI:Switch("Option")

Stylesheets

Je vous conseille de vous documenter sur les commandes disponibles en stylesheets pour faire des transitions et des actions assez facilement.

La plus importante reste "switch" :

CSS.MenuOption = {
    onclick = {
        switch = "Option"
    }
}