Bonjour,
Alors voilà, pour ce projet j'ai:
- Une caméra
- Un point P fixe que ma caméra va suivre en translation et qui sera toujours au centre de l'écran, qui se déplace en fonction de la position des joueurs
- Et donc plusieurs joueurs
L'idée, c'est de pouvoir faire dézoomer la caméra lorsque l'un des joueurs va trop loin, pour éviter qu'il sorte de l'écran et soit perdu.
Alors selon moi il y a deux solutions:
- Soit on fait comme les appareils photo en modifiant la focale de la caméra, mais je sais pas si c'est faisable avec la caméra Unity
- Ou alors (c'est la solution que j eprivilégie) déplacer la caméra sur l'axe correspondant à la droite passant par la caméra et le point P.
Le problème que j'ai, c'est que pour la 1ere solution je ne sais même pas si c'est jouable, et pour la seconde, bien que je visualise assez bien mathématiquement cette distance, je ne sais pas comment la retranscrire en code C#
[MY-AL] Zoom caméra selon la position des joueurs
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
Re: [MY-AL] Zoom caméra selon la position des joueurs
Pour la solution 1
https://docs.unity3d.com/ScriptReferenc ... fView.html
Pour la solution 2
https://docs.unity3d.com/ScriptReferenc ... tance.html
Si tu as plus de 2 personnages, tu calcule la distance entre les 2 premiers pour ce résultat avec la distance du 3eme, puis avec le 4eme, ...
https://docs.unity3d.com/ScriptReferenc ... fView.html
Pour la solution 2
https://docs.unity3d.com/ScriptReferenc ... tance.html
Si tu as plus de 2 personnages, tu calcule la distance entre les 2 premiers pour ce résultat avec la distance du 3eme, puis avec le 4eme, ...
Code : Tout sélectionner
private ArrayList<GameObject> personnage;
private GameObject p;
p.position = personnage[0].position;
for (int i =1; i < personnage.count; i++) {
p.position = Vector3.Distance(p.position, personnage[i].position);
}
“La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !”