Créer un jeu avec Unity 3D

Accéder à un composant

ToutApprendre

- Titre : Créer un jeu avec Unity 3D

- Auteur : ToutApprendre

- Parution : 6 octobre 2014

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2014 Équipe rubrique 2D/3D/Jeux. Aucune reproduction, même partielle, ne peut être faite de ce site et 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.

Sommaire

- Navigation

- I. Vidéo

- II. Ce qu'il faut retenir

- II-A. Accéder à un composant

- II-B. Tourner le GameObject avec GetComponent()

- III. Commenter

- IV. Remerciements

- Navigation

Navigation

Tutoriel précédent : Déplacer un GameObject

Sommaire

Tutoriel suivant : Interagir avec l'utilisateur

I - Vidéo

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/watch?v=B1F54TKRuNk

II - Ce qu'il faut retenir

II-A - Accéder à un composant

MonoBehaviour est la classe de base pour tous les scripts Unity. Chaque script que vous créez hérite de cette classe.

La fonction pour accéder à un composant se nomme GetComponent(). Elle permet de récupérer un composant. Dans cette vidéo, l'objectif est de tourner le GameObject grâce à un script externe (non attaché) à celui-ci.

Pour cela, deux scripts sont créés :

Message.js

#pragma strict

function Start() {
Debug.Log("Je suis un message");
}

function addition(n1:int,n2:int) {
return (n1 + n2);
}

MoveBall.js

#pragma strict

private var script:Message;
script = GetComponent("Message");

function Start()
{
script.Start();
Debug.Log(script.addition(40,2));
}

Même si le script Message est désactivé dans Unity 3D, le script sera appelé durant l'exécution de la fonction Start() de MoveBall.js.

Il n'est pas possible, dans ce cas, d'écrire directement : private var script:Message = GetComponent("Message");

En effet, il n'est pas possible d'appeler GetComponent() directement lors de la création des variables.

II-B - Tourner le GameObject avec GetComponent()

Le code pour tourner le GameObject avec GetComponent() est le suivant :

#pragma strict

function Update() {
this.GetComponent(Transform).Rotate(Vector3(0,2,0), Space.World);
}

Celui-ci récupère le composant Transform, afin d'appeler la fonction Rotate() pour le faire tourner.

Cette fois, pour accéder à une classe, telle que Transform, avec GetComponent(), les guillemets ne sont pas nécessaires. Les guillemets ne sont utiles que lorsque l'on accède à un script.

III - Commenter

Vous pouvez commenter et donner vos avis dans la discussion associée sur le forum, ou encore, poser vos questions dans le forum Unity.

IV - Remerciements

Nous remercions « ToutApprendre » pour l'élaboration et la réalisation de ces vidéos. Vous pouvez retrouver sa chaîne YouTube en suivant ce lien.

Navigation

Tutoriel précédent : Déplacer un GameObject

Sommaire

Tutoriel suivant : Interagir avec l'utilisateur