[RESOLU] Faire un demi tour

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Rhadamenthis
Messages : 52
Inscription : 17 Août 2014 01:46

[RESOLU] Faire un demi tour

Message par Rhadamenthis » 22 Août 2014 23:16

bonsoir à tous,

je suis sur que j'ai un probleme tout bete, mais vu l'heure et ma journée, je seche.

J'ai un objet qui va dans une direction :

Code : Tout sélectionner

void Update () 
  {
	transform.Translate (Vector3.forward / 10);	
  }
Jusque la tout va bien. Je voudrais qu'à la rencontre d'un objet vide nommé "mobile", il change de sens.

Code : Tout sélectionner

void OnTriggerEnter (Collider other)
  {
      if (other.gameObject.tag == "mobile")
	{
		transform.Translate (Vector3.right / 10);			
	}
  }
Biensur, ce n'est pas le cas, il n'y a pas de changement de sens il continu sur sa lancée. Je sais qu'il passe au travers de mon collider car quand je decoche "IsTrigger", l'objet est bloqué.
Je pense que le probleme vient de la fonction update mais je seche.
Merci pour vos propositions.
Dernière édition par Rhadamenthis le 25 Août 2014 12:37, édité 2 fois.

Avatar de l’utilisateur
Scorpionnocrag
Messages : 155
Inscription : 10 Juin 2014 13:27

Re: Faire un demi tour

Message par Scorpionnocrag » 23 Août 2014 00:54

est-tu sur qu'elle va bel et bien en ligne droite? si tu met "vector3.right * 50" elle devrais bouger ...

Après il faut comprendre ton code :geek:

içi ton code fais :

Update ce lance à chaque image => a chaque image de ton jeu, tu lui dit "bouge devant", qu'il rencontre un mur ou pas, quoi qu'il ce passe, il iras toujours tout droit car tu lui dit dans le update.

et a l'IMAGE et UNE SEUL image qui va provoquer l'évènement "tien, on entre dans le trigger" tu va la décaler sur la droite (et devant, car il passera aussi dans ton update)

pour l'instant ton code est à cette étape :).
Envie de vous mettre à la création de jeux vidéos avec Unity? -> https://www.youtube.com/channel/UCUgcAR ... tXjTqRsuUQ

Rhadamenthis
Messages : 52
Inscription : 17 Août 2014 01:46

Re: Faire un demi tour

Message par Rhadamenthis » 23 Août 2014 08:37

Merci de ta réponse.
En fait, j'ai bien compris que c'est le fait que je dis dans l'update qu'a chaque image, mon objet "avance" qui pose problème. Cependant, j'ai essaye de bouger la commande dans la fonction OnTriggerEnter mais ça n'a aucun sens car a ce moment la, mon objet ne se déplace plus. Il faudrait que j'arrive a dire à l'update que l'action d'avancer s’arrête et celle de faire demi tour (ou d'aller à gauche, enfin le sens exact pour le moment importe peu) commence.
Peut être un élément de réponse : dans l'update, mettre un : "tant qu'il n'y a pas de collision, tu avances, sinon tu change de sens" ?

Avatar de l’utilisateur
Scorpionnocrag
Messages : 155
Inscription : 10 Juin 2014 13:27

Re: Faire un demi tour

Message par Scorpionnocrag » 23 Août 2014 13:03

Et pourquoi tu ne change pas ça direction dans le triggerenter :P ?

Je sais, c'est ce que tu essaie de faire depuis le début :lol: alors un indice, vector forward c'est -> devant l'object, ce qu'il faut chercher à faire, c'est de changer l'orientation de ton personnage, pour que son l'endroit devant lui, ne soit plus le mur.

ps : c'est par la qu'il faut creuser : http://docs.unity3d.com/ScriptReference ... ation.html
Envie de vous mettre à la création de jeux vidéos avec Unity? -> https://www.youtube.com/channel/UCUgcAR ... tXjTqRsuUQ

Rhadamenthis
Messages : 52
Inscription : 17 Août 2014 01:46

Re: Faire un demi tour

Message par Rhadamenthis » 24 Août 2014 02:02

Petite précision sur ce que je souhaite réaliser.
En fait, c'est une plateforme qui doit aller de gauche à droite et vice versa en fonction du collider qu'elle rencontre.
Le joueur soit sauter dessus sans tomber.
Avec cette info, est ce que le "Transform.rotation" est toujours d’actualité ? Je l'utilise déjà avec un cube qui tourne sur lui même et il fonctionne parfaitement..

Avatar de l’utilisateur
Scorpionnocrag
Messages : 155
Inscription : 10 Juin 2014 13:27

Re: Faire un demi tour

Message par Scorpionnocrag » 24 Août 2014 02:03

La comme ça je vois pas trop ou ça bloque ...
Envie de vous mettre à la création de jeux vidéos avec Unity? -> https://www.youtube.com/channel/UCUgcAR ... tXjTqRsuUQ

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: Faire un demi tour

Message par giyomuSan » 24 Août 2014 03:51

Si c'est just un va et vient pas besoin d'orienter...tu change juste la direction du deplacement

Rhadamenthis
Messages : 52
Inscription : 17 Août 2014 01:46

Re: Faire un demi tour

Message par Rhadamenthis » 25 Août 2014 12:36

C'était tout bête en fin de compte :

Code : Tout sélectionner

void Update () 
                    {				
                                if (sens == "g")  // si la variable sens équivaut à "g" (gauche)
                                        {
						transform.Translate (gauche / 10); //déplace la plateforme vers la gauche
					} 				
				if (sens == "d")  // si la variable sens équivaut à "d" (droite)
					{
						transform.Translate (droite / 10); //déplace la plateforme vers la sroite
					} 					
			}
		void	OnTriggerEnter (Collider other)
			{
				if (other.gameObject.tag == "mobile") 
					{
						sens = "d";
					}
				if (other.gameObject.tag == "mobile2")
					{
						sens = "g";
					}
			}
Merci à tous pour votre aide.

Répondre

Revenir vers « Scripting »