Aller au contenu
Tous les guides

Le menu de saisie

Nous allons ici construire un menu permettant au joueur de saisir un texte.

Construction#

Commençons par créer la fonction qui englobera la création du menu pour le joueur :

C#
public void CreatePanel(Player player) { }

Ensuite, appelons le constructeur en utilisant le type Input :

C#
UIPanel inputPanel = new UIPanel("Menu de saisie", UIPanel.PanelType.Input);

Nous pouvons ensuite définir le texte avec la méthode SetText() :

C#
inputPanel.SetText("Voici le texte affiché sur votre menu");

Et mettre un texte d’exemple dans la zone de saisie avec la méthode SetInputPlaceholder() :

C#
inputPanel.SetInputPlaceholder("Le texte d'exemple");

Nous pouvons également ajouter un bouton Fermer avec la méthode AddButton() qui fermera le menu que nous intitulerons panel :

C#
inputPanel.AddButton("Fermer", (panel) =>
{
    player.ClosePanel(panel);
});

Et un bouton Valider qui affichera dans la console le texte rentré dans le champs de saisie :

C#
inputPanel.AddButton("Valider", (panel) =>
{
    Debug.Log(panel.inputText);
});

Il ne nous reste plus qu’à afficher le menu au joueur avec la méthode ShowPanelUI() :

C#
player.ShowPanelUI(textPanel);

Résultat#

Le code complet#

C#
public void CreatePanel(Player player)
{
    UIPanel inputPanel = new UIPanel("Menu de saisie", UIPanel.PanelType.Input);

    inputPanel.SetText("Voici le texte affiché sur votre menu");

    inputPanel.AddButton("Fermer", (panel) =>
    {
        player.ClosePanel(panel);
    });

    inputPanel.AddButton("Valider", (panel) =>
    {
        Debug.Log(panel.inputText);
    });

    player.ShowPanelUI(inputPanel);
}

Une version simplifiée#

C#
public void CreatePanel(Player player)
{
    UIPanel inputPanel = new UIPanel("Menu de saisie", UIPanel.PanelType.Input)
    .SetText("Voici le texte affiché sur votre menu");
    .AddButton("Fermer", (panel) =>
    {
        player.ClosePanel(panel);
    })
    .AddButton("Valider", (panel) =>
    {
        Debug.Log(panel.inputText);
    });

    player.ShowPanelUI(inputPanel);
}

Remarque

Vous pouvez masquer le texte saisi en activant le booléen isPassword avant d’afficher le panel :

C#
inputPanel.isPassword = true;