I. Sommaire▲
Vous pouvez retrouver les autres épisodes de cette série dans le sommaire dédié.
II. Vidéo▲
Unity - Marble Madness 3D - Déplacement de la caméra
III. Résumé▲
Dans ce chapitre, nous apprenons à déplacer la caméra.
III-A. Comportement▲
La caméra doit être liée au joueur. Ainsi, elle visualisera de manière efficace la scène et le joueur ne pourra plus sortir du champ.
III-B. Implémentation▲
Associez la caméra comme enfant du « GameObject » du joueur. Cette configuration est la configuration de base pour une caméra en vue à la troisième personne.
Notre problème est que si la balle roule, la caméra peut tourner et se retrouver à traverser le sol, rendant le jeu injouable. En effet, la balle peut tourner suivant les trois axes et cette rotation sera héritée par la caméra. Du coup, nous sommes obligés de détacher la caméra du joueur. Afin de faire suivre le joueur par la caméra, nous allons utiliser un script.
III-B-1. Script▲
Le suivi du joueur par la caméra est simplement effectué en replaçant la caméra selon la position du joueur et en ajoutant à cette dernière un décalage.
using
UnityEngine;
using
System.
Collections;
public
class
CameraController :
MonoBehaviour {
public
GameObject player;
private
Vector3 offset;
void
Start (
)
{
offset =
transform.
position -
player.
transform.
position;
}
void
LateUpdate (
)
{
transform.
position =
player.
transform.
position +
offset;
}
}
Nous utilisons la fonction LateUpdate() au lieu de Update(). La fonction LateUpdate() est appelée après que la fonction Update() a été appelée pour tous les objets du jeu. Ainsi, nous définissons la position de la caméra après être certain que la position du joueur a été mise à jour.
IV. Commenter▲
Vous pouvez commenter et donner vos avis dans la discussion associée sur le forum.