FANDOM


Bonjour à tous, vous avez peut-être déjà regardé le tutoriel mon premier tutoriel : Créer un bouton. Si oui, vous avez du vous rendre compte que c'était bien mais qu'il falait recréer un script à chaque nouveau bouton. Maintenant je vais vous expliquer comment faire un script qui pourra gérer tous vos boutons !

Le tutoriel pas à pas Modifier

Le début de ce script est le même que celui pour créer un bouton, je ne vais donc pas le réexpliquer.

Nous avons donc :

function Behavior:Awake()
    self.camera = CraftStudio.FindGameObject( "camera" ):GetComponent( "Camera" )
    self.modelRndr = self.gameObject:GetComponent( "ModelRenderer" )
end

function Behavior:Update()
    if CraftStudio.Input.WasButtonJustPressed("clicgauche") then
        local mousePos = CraftStudio.Input.GetMousePosition()
        local ray = self.camera:CreateRay( mousePos )
        local distance = ray:IntersectsModelRenderer( self.modelRndr )

        if ray:IntersectsModelRenderer( self.modelRndr ) ~= nil then
            CraftStudio.Exit()
        end
    end
end


Tout reste identique jusqu'a if ray:IntersectsModelRenderer( self.modelRndr ) ~= nil then.

Nous allons utiliser une fonction assez peu utilisée car peu connue : les variables du haut du script (oui oui ^^ Le nom est très recherché :P ça a bien un nom mais honnêtement je n'en ai aucune idée '^^)

Pour ce faire, vous devez agrandir la zone marron foncé qui se trouve entre le script et la liste des sauvegardes (Mais si, il y a écris Nom, Type, Valeur par defaut et un + !)

Pour l'agrandir vous positionnez votre souris sur la ligne marron clair entre le script et la zone des "variables du haut du script" vous cliquez et descendez votre souris puis vous lâchez le clic ^^.

Nous allons avoir besoin d'une "variable du haut du script" donc vous cliquez une fois sur le +

Une nouvelle ligne est apparue, dans la case "Nom" entrez le nom de votre variable. Moi je vais mettre fonction car c'est cette variable qui contiendra la fonction du bouton. Dans la case Type vous choisissez "Texte" et vous ne mettez rien dans la valeur par defaut.

Une fois cela fait, retournez sur votre scène et normalement en selectionnant votre bouton, qui a le comportement scripté de votre script, il y a, juste en dessous du nom du script, une case avec fonction à côté. Cochez cette case et une autre case, de texte cette fois ci, est apparue. Dans cette case vous allez écrire ce que contiendra la variable fonction, je vous conseille de metre un mot explicite (si c'est le bouton play ecrivez play, pas ezfhyzvcyz '^^).

Une fois ceci fait pour tous vos boutons, revenez sur votre script, nous allons imaginer que j'ai créé deux boutons : un play et un quit.

Il faut verifier que ce que contient notre variable fonction est égal au mot que nous avons défini auparavant pour cela nous allons utiliser la condition : If then ... elseif then ... end .

if self.fonction == "quit" then

end

Fonction est notre "variable du haut du script".

Self. veux dire que la variable est propre a l'objet de la scène ça permet de ne pas mélanger les différents boutons.

Le symbole== signifie "est égal à".

"quit" est le texte qui doit etre contenu dans la variable pour que l'action s'effectue. (Les guillemets servent à designer un texte)

Et maintenant nous pouvons mettre la fonction

CraftStudio.Exit()

qui permet de quitter le jeu.

Le script entier Modifier

Voici le script terminé. Il fonctionne pour deux boutons, mais vous pouvez bien sur en ajouter, ça ne devrais pas vous poser de problème si vous avez bien suivi le tutoriel.


function Behavior:Awake()
    self.camera = CraftStudio.FindGameObject( "camera" ):GetComponent( "Camera" )
    self.modelRndr = self.gameObject:GetComponent( "ModelRenderer" )
end


function Behavior:Update()
    if CraftStudio.Input.WasButtonJustPressed("clicgauche") then
        local mousePos = CraftStudio.Input.GetMousePosition()
        local ray = self.camera:CreateRay( mousePos )
        if ray:IntersectsModelRenderer( self.modelRndr ) ~= nil then

            if self.fonction == "quit" then
                CraftStudio.Exit()

            elseif self.fonction == "play" then
                CraftStudio.LoadScene (CraftStudio.FindAsset("jeu"))
            end
        end
    end    
end


J'espère que ce second tutoriel vous aura aussi appris quelque chose ;)

Wardow

Interférence d'un bloqueur de publicité détectée !


Wikia est un site gratuit qui compte sur les revenus de la publicité. L'expérience des lecteurs utilisant des bloqueurs de publicité est différente

Wikia n'est pas accessible si vous avez fait d'autres modifications. Supprimez les règles personnalisées de votre bloqueur de publicité, et la page se chargera comme prévu.

Sur le réseau FANDOM

Wiki au hasard