[RESOLU][DB-AL]Rotation de Caméra

Pour les scripts écrits en C#
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
Ynua
Messages : 13
Inscription : 07 Nov 2018 15:21

[RESOLU][DB-AL]Rotation de Caméra

Message par Ynua » 14 Nov 2018 14:34

Bonjour,

Dans le cadre de mon projet de jeu 3D, j'aimerais faire tourner ma caméra autour de mon personnage à la mort de celui-ci.
Je m'explique: Mon personnage rentre dans un objet susceptible de le tuer, là ma caméra tourne autour de lui avec un écran noir progressif et lance la scène du menu de game over.

J'arrive à faire mon fade in et changer de scène, mais impossible de tourner ma caméra.

Code : Tout sélectionner

void OnTriggerEnter(Collider other) {
	
		if(other.gameObject.tag == "Car") {
					StartCoroutine(FadeCanvasGroup(uiElement, uiElement.alpha, 1));
					StartCoroutine("GameOver");
					StopCoroutine("Avancer");
					Cam1.transform.parent = null;
					Cam1.transform.Rotate(0, 90 * Time.deltaTime, 0);
				}	
	}
Mon personnage avance seul avec la coroutine "avancer" donc je l'arrête au moment de la mort, je lance la coroutine du fade et celle du gameover. Je pensais que si ma caméra ne tournait pas cela venait du fait qu'elle était enfant de mon personnage, je l'ai donc déshérité avec " Cam1.transform.parent = null; ", mais la dernière ligne de ce code (celle pour la faire tourner), ne fonctionne pas. Je précise que si j'enlève le " *Time.deltaTime " elle tourne d'un coup à 90°.

Comment faire ? Où est-ce que j'ai foiré ?
J'attend vos conseils avec impatiente et vous remercie d'avance de votre aide.
Dernière édition par Ynua le 14 Nov 2018 19:06, édité 1 fois.

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [DB-AL]Rotation de Caméra

Message par djulio74 » 14 Nov 2018 14:59

Salut.
Je pense que ton soucis viens du OnTriggerEnter qui ne s’exécute qu'à la frame ou ton perso entre dans le collider correspondant. Donc ton transform.rotate n'effectue qu'une fois une rotation de 90*deltaTime degrés.

Il faut soit
- que tu passe par une autre coroutine,
-que tu passe dans la void update avec une condition sur un bool. :
onTriggerEnter => bool mort = true;
Update => si mort == true : transform.rotate.
- dans un onTriggerStay pour la rotation.

Pas oublié de passer mort = false aux bon endroit : debut de partie, recommencer niveau etc..

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Ynua
Messages : 13
Inscription : 07 Nov 2018 15:21

Re: [DB-AL]Rotation de Caméra

Message par Ynua » 14 Nov 2018 17:16

Salut !

Merci infiniment, ça fonctionne ! J'ai essayé la coroutine mais ça ne fonctionnait pas, alors je suis passer par la void Update avec une condition. Maintenant j'ai un soucis auquel je n'avais pas pensé... Ma caméra se trouve derrière le joueur et donc quand elle tourne on ne voit pas le joueur, il faudrait la reculer d'un certain nombre sur l'axe Z. J'ai essayé des trucs mais je comprend pas quel commande utiliser X|

Est-ce que tu saurais m'aiguiller une fois de plus ?
Merci à toi !

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6222
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [DB-AL]Rotation de Caméra

Message par boubouk50 » 14 Nov 2018 17:21

Salut,

Tu devrais configurer une caméra orbitale autour de ton joueur.
Pour se faire, il te faut créer un gameObject vide à la position de ton joueur, ensuite lier la caméra à ton Empty en tant qu'enfant, faire pointer la caméra sur son parent (ou le joueur), mettre la caméra à une distance raisonnable de cet Empty pour avoir suffisamment de profondeur, selon l'axe forward local de ta caméra (cet axe permet de faire avancer et reculer ta caméra). Enfin, la rotation s'opérera sur l'Empty et non pas la caméra, ainsi la caméra tournera autour du joueur.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Ynua
Messages : 13
Inscription : 07 Nov 2018 15:21

Re: [DB-AL]Rotation de Caméra

Message par Ynua » 14 Nov 2018 19:06

Génial !

Merci beaucoup, ça fait le job c'est parfait. Je ne sais pas comment vous me remercier !
Encore merci, je passe le sujet en résolu, en espérant que ça puisse aider d'autres personnes. :merci:

Répondre

Revenir vers « (C#) CSharp »