Espaces local et monde
Fait partie de la section Les bases du scripting dans Unity du Journey Unity de Coddy. Leçon 19 sur 67.
Un objet possède ses propres directions, en plus de celles du monde. transform.forward indique où pointe le nez de l'objet (la flèche bleue dans la vue Scene de Unity), sous la forme d'un vecteur du monde d'une unité de long ; transform.right et transform.up correspondent à ses propres directions droite et haut. Faites tourner l'objet et elles tourneront avec lui. Cet avion en papier est tourné de 90 degrés autour de y dans la scène ; il vole donc le long de l'axe x du monde, dans la direction où il pointe :
public float speed = 4f;
void Update()
{
transform.position += transform.forward * speed * Time.deltaTime;
}transform.Translate(Vector3.forward * speed * Time.deltaTime) fait la même chose, car Translate interprète son vecteur dans l'espace propre de l'objet : dans cet espace, Vector3.forward désigne la direction avant de l'objet. Passez Space.World en deuxième argument pour utiliser à la place les axes du monde ; ainsi, transform.Translate(Vector3.forward * speed * Time.deltaTime, Space.World) déplace l'objet le long de l'axe z du monde, quelle que soit la direction vers laquelle pointe l'avion.
transform.Rotate fait également tourner l'objet autour de ses propres axes. Vu d'en haut, un angle positif autour de y fait tourner un objet debout vers sa droite, et un angle négatif vers sa gauche ; son transform.forward tourne avec lui.
Défi
FacileDonne au tank des commandes : la flèche droite le fait tourner vers la droite et la flèche gauche vers la gauche, autour de son axe y à raison de turn degrés par seconde. La flèche haut le fait avancer dans la direction où il fait face, à raison de speed unités par seconde. Le fait de tourner seul ne le déplace pas.
Appuie sur Play, tourne et avance, puis appuie sur Check.
Essayez vous-même
using UnityEngine;
public class Tank : MonoBehaviour
{
public float speed = 3f;
public float turn = 90f;
void Update()
{
// Flèches droite/gauche : pivoter autour de l’axe y. Flèche haut : avancer dans la direction vers laquelle le char est orienté.
}
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Les bases du scripting dans Unity
1Votre premier script
Bonjour, UnityPlacez le cubeBouger à chaque imageTourner chaque secondeDirigez avec les touchesRécapitulatif : conduisez le cube4Vecteurs
Addition de vecteursDirectionsEspaces local et mondeVitesse diagonaleDistance entre les objetsVector3 est une structRécapitulatif : pilote de drone7Projet : Attrape l’étoile
L’attrapeurUne étoile qui tombe2L’inspecteur
Champs de l’inspecteurSerializeFieldNombres flottants et MathfAttributs de l’inspecteurRécapitulatif : ascenseur5Transformations et hiérarchie
Parents et enfantsÉchelleRegarder les objetsSe déplacer vers un pointRécapitulatif : Lune en orbite8Rechercher des objets
Rechercher par nomTagsRechercher par typeLes références plutôt que FindLe null de UnityRécapitulatif : la pièce la plus proche11Projet : Esquivez les blocs
Le coureurBlocs qui tombent6GameObjects et composants
Références dans l’InspectorObtenir un composantComposants manquantsAjouter un composantRequireComponentAfficher et masquerRécapitulatif : interrupteur