tutoriel 16 Krys gestion de camera

Toutes les questions relatives aux tutoriels du site sont à poser à cet endroit.
Avatar de l’utilisateur
jeinsei
Messages : 88
Inscription : 13 Avr 2012 17:24
Localisation : France

tutoriel 16 Krys gestion de camera

Message par jeinsei » 21 Juin 2012 19:21

Bonjour,

Bon je me décide a poster ce message un peu dépiter car je voudrais ajouter d'autre camera au très bon tuto de krys sur le déplacement de celles-ci, mais je n'y arrive pas ( mode gros noob ON).

Code : Tout sélectionner

var cam1:GameObject;
var cam2:GameObject;
var cam3:GameObject;
 
function switchCam(){
cam2.active=false;
cam3.active=false;
 
yield WaitForSeconds(1);
 
aniCam(cam1,cam2,10);
yield WaitForSeconds(10);
 
aniCam(cam1,cam3,8);
 
}
 
function aniCam(arg1:GameObject,arg2:GameObject,arg3:Number){
Ani.Mate.To(arg1.transform,arg3,{"position": new Vector3(arg2.transform.position.x,arg2.transform.position.y,arg2.transform.position.z)});
 
Ani.Mate.To(arg1.transform,arg3,{"rotation":Quaternion.Euler(arg2.transform.eulerAngles.x,arg2.transform.eulerAngles.y,arg2.transform.eulerAngles.z),"drive":Ani.Drive.Slerp});
}
 
switchCam();

Je comprend le code dans son idée, je suppose qu'il faut que je rajoute mes autres camera (4,5,6,) en variable au début, puis que je fasse de nouvelles couroutines via "yeld" pour définir les nouvelles animations. Mais arrivé dans la fonction suivante je vois pas comment indiquer les nouveaux mouvements de la camera 3 vers la 4, 5 et 6. même si je suppose qu'il faut utiliser le même script pour continuer à déplacer la camera, je n'y arrive pas... :oops:
Le Low poly c'est la vie http://www.juliennoe.fr/

Avatar de l’utilisateur
freepl
Messages : 1034
Inscription : 20 Mai 2012 19:33
Localisation : salon de provence

Re: tutoriel 16 Krys gestion de camera

Message par freepl » 13 Juil 2012 15:42

Salut

Pour une fois c'est moi qui aide :)

Je te passe un script pour 30 caméras , j'ai fait tourner la caméra pour qu'elle regarde en bas.
si tu ne veux pas en lève les " + 90" dans les dernières lignes

Code : Tout sélectionner

#pragma strict
// declaration des variables
var cam1:GameObject;
var cam2:GameObject;
var cam3:GameObject;
var cam4:GameObject;
var cam5:GameObject;
var cam6:GameObject;
var cam7:GameObject;
var cam8:GameObject;
var cam9:GameObject;
var cam10:GameObject;
var cam11:GameObject;
var cam12:GameObject;
var cam13:GameObject;
var cam14:GameObject;
var cam15:GameObject;
var cam16:GameObject;
var cam17:GameObject;
var cam18:GameObject;
var cam19:GameObject;
var cam20:GameObject;
var cam21:GameObject;
var cam22:GameObject;
var cam23:GameObject;
var cam24:GameObject;
var cam25:GameObject;
var cam26:GameObject;
var cam27:GameObject;
var cam28:GameObject;
var cam29:GameObject;
var cam30:GameObject;


  
// Fonction qui désactive les caméras 2 à 30 donc seul la 1° , la MAINCAMERA, est visible
function switchCam(){
cam2.active=false;
cam3.active=false;
cam4.active=false;
cam5.active=false;
cam6.active=false;
cam7.active=false;
cam8.active=false;
cam9.active=false;
cam10.active=false;
cam11.active=false;
cam12.active=false;
cam13.active=false;
cam14.active=false;
cam15.active=false;
cam16.active=false;
cam17.active=false;
cam18.active=false;
cam19.active=false;
cam20.active=false;
cam21.active=false;
cam22.active=false;
cam23.active=false;
cam24.active=false;
cam25.active=false;
cam26.active=false;
cam27.active=false;
cam28.active=false;
cam29.active=false;
cam30.active=false;
// Le script est en pause 1 seconde. On lance la fonction créée dessous. On remplace les arg1, arg2 et arg3
// par leur valeur : objet, objet et chiffre)
// fonction aniCam : la cam1 va vers cam2 en 0.1 secondes
yield WaitForSeconds(1);
aniCam(cam1,cam2,0.1);
// fonction aniCam : On géle le script 1 seconde cam1 qui va vers position de la cam3 en 2 secondes, etc ..
yield WaitForSeconds(1);
aniCam(cam1,cam3,2);
yield WaitForSeconds(1);
aniCam(cam1,cam4,2);
yield WaitForSeconds(1);
aniCam(cam1,cam5,2);
yield WaitForSeconds(1);
aniCam(cam1,cam6,2);
yield WaitForSeconds(1);
aniCam(cam1,cam7,2);
yield WaitForSeconds(1);
aniCam(cam1,cam8,2);
yield WaitForSeconds(1);
aniCam(cam1,cam9,2);
yield WaitForSeconds(1);
aniCam(cam1,cam10,2);
yield WaitForSeconds(1);
aniCam(cam1,cam11,2);
yield WaitForSeconds(1);
aniCam(cam1,cam12,2);
yield WaitForSeconds(1);
aniCam(cam1,cam13,2);
yield WaitForSeconds(1);
aniCam(cam1,cam14,2);
yield WaitForSeconds(1);
aniCam(cam1,cam15,2);
yield WaitForSeconds(1);
aniCam(cam1,cam16,2);
yield WaitForSeconds(1);
aniCam(cam1,cam17,2);
yield WaitForSeconds(1);
aniCam(cam1,cam18,2);
yield WaitForSeconds(1);
aniCam(cam1,cam19,2);
yield WaitForSeconds(1);
aniCam(cam1,cam20,2);
yield WaitForSeconds(1);
aniCam(cam1,cam21,2);
yield WaitForSeconds(1);
aniCam(cam1,cam22,2);
yield WaitForSeconds(1);
aniCam(cam1,cam23,2);
yield WaitForSeconds(1);
aniCam(cam1,cam24,2);
yield WaitForSeconds(1);
aniCam(cam1,cam25,2);
yield WaitForSeconds(1);
aniCam(cam1,cam26,2);
yield WaitForSeconds(1);
aniCam(cam1,cam27,2);
yield WaitForSeconds(1);
aniCam(cam1,cam28,2);
yield WaitForSeconds(1);
aniCam(cam1,cam29,2);
yield WaitForSeconds(1);
aniCam(cam1,cam30,2);
}

// La camera regarde en bas car on a ajoute une  rotation sur Ox et Oz "rotation":Quaternion...eulerAngles.x + 90,..ulerAngles.x + 90,
function aniCam(arg1:GameObject,arg2:GameObject,arg3:Number){
Ani.Mate.To(arg1.transform,arg3,{"position": new Vector3(arg2.transform.position.x,arg2.transform.position.y,arg2.transform.position.z)});
Ani.Mate.To(arg1.transform,arg3,{"rotation":Quaternion.Euler(arg2.transform.eulerAngles.x+90,arg2.transform.eulerAngles.y,arg2.transform.eulerAngles.z+90),"drive":Ani.Drive.Slerp});
}
switchCam();




Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: tutoriel 16 Krys gestion de camera

Message par cayou66 » 13 Juil 2012 16:14

Encore ce code ?! Il me semblait qu'on avait vu ensemble comment faire pour un nombre quelconque de caméras....
Quelle idée de faire 30 variables...

Avatar de l’utilisateur
freepl
Messages : 1034
Inscription : 20 Mai 2012 19:33
Localisation : salon de provence

Re: tutoriel 16 Krys gestion de camera

Message par freepl » 13 Juil 2012 16:28

c'était juste pour aider..... et cela repond à sa question de modification, sans plus

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: tutoriel 16 Krys gestion de camera

Message par cayou66 » 13 Juil 2012 16:31

freepl a écrit :c'était juste pour aider..... et cela repond à sa question de modification, sans plus
J'ai pas dis le contraire, je dis juste que c'est une méthode très sale, qu'il faut éviter...
Y'a deux règles de bases pour un programmeur:
- Lorsqu'on écrit deux fois le même code, on fait une fonction pour ça, ou on fait du code unique (via loop, tableaux, etc...), ce qui est le cas de ce script.
- Lorsqu'on répète une tâche plusieurs fois, on fait un outil pour rendre cette tâche automatisée.

C'est vraiment la base de la programmation...

Si je fais ce genre code dans un milieu pro. je me fais virer cash ;)

Avatar de l’utilisateur
Loulou
Messages : 239
Inscription : 23 Nov 2011 01:04
Localisation : Paris
Contact :

Re: tutoriel 16 Krys gestion de camera

Message par Loulou » 13 Juil 2012 16:38

XD
En faite un dev ne ferait jamais ce genre de code.
Il aurait trop la flemme de taper toutes ces lignes identique (meme avec le copier/coller) :p

Ma mere me disait "quand on a pas de tète, on a des jambes"
Je trouve que ca pourrait s'appliquer a ce cas de figure aussi :)

Avatar de l’utilisateur
Max
Messages : 8764
Inscription : 30 Juil 2011 13:57
Contact :

Re: tutoriel 16 Krys gestion de camera

Message par Max » 13 Juil 2012 16:47

Loulou a écrit :Il aurait trop la flemme de taper toutes ces lignes identique (meme avec le copier/coller) :p
Image
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: tutoriel 16 Krys gestion de camera

Message par cayou66 » 13 Juil 2012 16:58

Loulou a écrit :XD
En faite un dev ne ferait jamais ce genre de code.
Il aurait trop la flemme de taper toutes ces lignes identique (meme avec le copier/coller) :p

Ma mere me disait "quand on a pas de tète, on a des jambes"
Je trouve que ca pourrait s'appliquer a ce cas de figure aussi :)
Et si son boss vient le voir pour lui dire, finalement j'en veux 300 de caméras :roll:

COPY/PASTE !

Avatar de l’utilisateur
freepl
Messages : 1034
Inscription : 20 Mai 2012 19:33
Localisation : salon de provence

Re: tutoriel 16 Krys gestion de camera

Message par freepl » 13 Juil 2012 19:21

Pourquoi s'acharner sur les débutants ?
Vous n'avez pas d'amis pour discuter ? :D

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: tutoriel 16 Krys gestion de camera

Message par cayou66 » 13 Juil 2012 19:34

freepl a écrit :Pourquoi s'acharner sur les débutants ?
Vous n'avez pas d'amis pour discuter ? :D
...,
On s'acharne pas, on veut juste éviter que quelqu'un pense que cette solution est une bonne solution, que le code est un bon code, et que c'est bien de faire pareil.
Je ne reposterais pas ma solution, car je l'ai déjà posté, il suffit de chercher un peu sur le forum avec les bons mots clés.

Verrouillé

Revenir vers « Tutoriels du site Unity3D-france »