IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Unity - Marble Madness 3D

Afficher le score

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Sommaire

Vous pouvez retrouver les autres épisodes de cette série dans le sommaire dédié.

II. Vidéo


Unity - Marble Madness 3D - Afficher le score


III. Résumé

Maintenant que nous pouvons ramasser les bonus, nous devons les compter et les afficher pour notre joueur.

III-A. Compter les objets ramassés

Dans le script du joueur (PlayerController.cs), vous devez ajouter un compteur (une variable contenant le nombre d'objets ramassés). Chaque fois qu'un objet est ramassé, le compteur doit être incrémenté.

III-B. Afficher le nombre d'objets ramassés

Pour afficher du texte, nous utilisons le système d'interface utilisateur d'Unity. Créons un nouvel élément « Text ». Afin de contenir celui-ci, Unity rajoute automatiquement un canevas ainsi qu'un « EventSystem » pour recueillir les événements du joueur.
Renommez l'élément « Text » en « Count Text ». Ensuite, configurez l'élément afin qu'il soit visible et qu'il corresponde à vos souhaits. Nous souhaitons avoir le texte en haut à gauche de l'écran. Pour cela, modifiez son ancrage. Afin de le décoller des bords de l'écran, vous pouvez déplacer l'élément en modifiant ses propriétés « Pos X » et « Pos Y ».

Finalement, pour mettre à jour dynamiquement le texte, vous devez retourner dans votre script. Créez une variable publique « Text » et modifiez sa propriété « text » chaque fois que vous voulez mettre à jour le texte.
Toutefois, afin que le programme sache d'où tirer les informations sur les éléments d'interface utilisateur, vous devez inclure, à l'aide du mot-clé using, UnityEngine.UI. Sans quoi, le script n'a aucune connaissance de ce qu'est une variable de type « Text ».

C'est souvent un mauvais signe d'écrire plusieurs fois les mêmes lignes de code. Pour factoriser le code, vous pouvez créer une fonction.

Finalement, dans l'éditeur, associez « Count Text » à la variable « Count Text » du composant « Player Controller ».

III-C. Afficher un message lorsque tous les éléments ont été ramassés

Nous souhaitons afficher un message de félicitations lorsque le joueur a ramassé tous les éléments. Pour ce faire, nous utilisons un second élément « Text » que l'on appelle « Win Text ». Configurez ce nouvel élément.

Afin de le modifier dans le script, vous devez une nouvelle fois rajouter une variable « Text ». Dans la fonction Start() le texte est initialisé à une chaîne vide.
Dans la fonction SetCountText(), un test est ajouté pour savoir si tous les éléments ont été ramassés. Dans un tel cas, le texte est modifié pour afficher nos félicitations au joueur.

Finalement, dans l'éditeur, associez « Win Text » à la variable « Win Text » du composant « Player Controller ».

III-D. PlayerController.cs

Voici le script, une fois le compteur et le texte rajoutés :

 
Sélectionnez
using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class PlayerController : MonoBehaviour {

    public float speed;
    public Text countText;
    public Text winText;

    private Rigidbody rb;
    private int count;

    void Start ()
    {
        rb = GetComponent<Rigidbody>();
        count = 0;
        SetCountText ();
        winText.text = "";
    }

    void FixedUpdate ()
    {
        float moveHorizontal = Input.GetAxis ("Horizontal");
        float moveVertical = Input.GetAxis ("Vertical");

        Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);

        rb.AddForce (movement * speed);
    }

    void OnTriggerEnter(Collider other) 
    {
        if (other.gameObject.CompareTag ( "Pick Up"))
        {
            other.gameObject.SetActive (false);
            count = count + 1;
            SetCountText ();
        }
    }

    void SetCountText ()
    {
        countText.text = "Count: " + count.ToString ();
        if (count >= 12)
        {
            winText.text = "You Win!";
        }
    }
}

IV. Commenter

Vous pouvez commenter et donner vos avis dans la discussion associée sur le forum.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Copyright © 2015 Unity Technologies. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.