Probleme de GUITexture

Questions à propos du GUI, y compris la partie script.
robo_info
Messages : 40
Inscription : 19 Juil 2011 11:50

Probleme de GUITexture

Message par robo_info » 24 Août 2011 17:56

Bonjour,
but: quand je clique sur mon perso3d il y a une GUITexture qui disparaît et une autre qui va être afficher après quelque secondes elle va disparaître
j'ai déclaré 2 GUITexture et je veux jouer sur leur visibilité, au début je les ai déclarés comme ceci:

var Lacasse : GUITexture = FindObjectOfType(GUITexture);
var ApreCasse : GUITexture = FindObjectOfType(GUITexture);

mais à l’exécution une seul qui est affichée.

après des recherches ,j'ai trouvé qu'il faut les déclarer en tant que GameObject comme suivant:

Lacasse = gameObject.Find("textu");
Lacasse .active=false;

ApreCasse = gameObject.Find("casse2");
ApreCasse.active = false;

et au niveau de la fonction:

Function OnMouseDown(){

vitre = gameObject.Find("textu");
ApreCasse = gameObject.Find("casse2");

Debug.Log("clique me");

//traitement
Lacasse.active=true;
//traitement


yield WaitForSeconds(0.9);

Lacasse.active=false;
ApreCasse.active=true;
yield WaitForSeconds(5);
ApreCasse.active=false;


}

Le problème quand je clique rien n'est affiché et au niveau du console une erreur qui s"est déclenché:
NulReferenceException

j'ai même essayé avec les tableau la même erreur:
NullReferenceException
(wrapper dynamic-method) UnityEngine.GameObject.GameObject$set_active$System.Boolean (object,object[]) <IL 0x00019, 0x00064>

S'il vous plaît Est ce que quelqu'un a une aidé peut m'aider vraiment j'ai essayé tout mais je me suis bloqué.

Merci d'avance.

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

Re: Probleme de GUITexture

Message par cayou66 » 24 Août 2011 18:31

Pour être sûr de ton code:
Attention à la casse (si c'est vraiment le code que tu as)

Code : Tout sélectionner

GameObject.Find("toto");
Et non

Code : Tout sélectionner

gameObject.Find("toto");
Ensuite, ça renvoie une null exception si les objet n'existent pas dans la scène et/ou son inactif (active = false, ou décochés, ou encore grisés).
Si ils sont inactifs, il vaut mieux que tu créé deux variables publiques en haut de ton code et via Unity de mettre à jour les champs avec les objets de ta scène.

Heu, alors, en JS...si mes souvenirs sont bons...

Code : Tout sélectionner

public var Lacasse : GUITexture;
Et là va apparaitre à côté de ton script attaché à l'objet (dans les propriétés) le champs Lacasse, vide.
Hop, un glissé déposé de ton objet de ta scène dedans, et tu aura accès :)


Et les balises codes s'il te plaîs :)

robo_info
Messages : 40
Inscription : 19 Juil 2011 11:50

Re: Probleme de GUITexture

Message par robo_info » 24 Août 2011 19:41

Merci pour votre aide j'ai corrigé gameObject comme vous m'avez dit et j'ai ressayé mais encore la même erreur:


NullReferenceException
animtete+$OnMouseDown$7+$.MoveNext () (at Assets/script/animtete.js:34)
UnityEngine.SendMouseEvents:DoSendMouseEvents()

et j'ai essayé avec

public var Lacasse : GUITexture;

mais quand je veux assigner la texture (image PNG) à la variable cette dernère est inaccecible.

est ce qu'il y a une autre solution je pense que le problème dans OnMouseDown()

(je suis désolée pour le côtes du code car je suis nouvelle sur ce site et je ne sais pas comment les faire :oops: )

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

Re: Probleme de GUITexture

Message par cayou66 » 24 Août 2011 19:51

J'ai pas dû m'expliquer correctement :)

Déjà les balises codes tu as un bouton au dessus du champ où tu écris ton message "Code".
Et ça créé des balises, tu places ton code entre les deux [ c o d e ] .... [ / c o d e ] (sans les espaces).

Pour le reste, une texture n'est pas un GUITexture.
Lorsque tu créé ta variable publique, elle apparaît vide dans les propriétés, il faut que la remplisse avec un GUITexture...Tu dois avoir dans ta scène un objet GUITexture non, auquel tu veux accéder?

J'te montre avec un screenshot réalisé par mes soins :)
Image

Image

En espérant être un peu plus explicite :)

robo_info
Messages : 40
Inscription : 19 Juil 2011 11:50

Re: Probleme de GUITexture

Message par robo_info » 24 Août 2011 22:21

wéééééé ;) ça marche
grannnnd merci c'est trés gentil c'est bien expliqué.

j'ai une autre question à propos le son, est ce que je peux poser la question ici ?

Merci

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

Re: Probleme de GUITexture

Message par cayou66 » 24 Août 2011 23:14

Bha dis toujours :)

robo_info
Messages : 40
Inscription : 19 Juil 2011 11:50

Re: Probleme de GUITexture

Message par robo_info » 25 Août 2011 13:44

Merci beaucoup

Mon perso3D possède des différentes animations (rassemble à celui Tom le chat de iPhone)
quand on touche le coeur il va crier puis il tombe quand il marche il chante etc...
le problème de son est le suivant:

quand je touche le coeur puis les jambes l'animation change bien sûr mais le sons de crier termine son exécution on dirait rien n'est pas changé de tel sorte le son de crier et celui de chanter se jouent au même temps alors que je veux quand l'animation change un seul sons qui s’exécute.

Code : Tout sélectionner

var chanter : AudioClip;
function OnMouseDown(){
homme.animation.Play("venir");
AudioSource.PlayClipAtPoint(chanter, Vector3 (9, 9, -19));
}
j’espère que j 'ai bien expliqué.Merci pour votre aide
ça marche avec les balises de code ;)

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

Re: Probleme de GUITexture

Message par cayou66 » 25 Août 2011 14:16

As-tu essayé de faire PlayOneShot?
Il te faut un AudioClip en paramètre (même principe que le GUITexture) que tu passes à la fonction.
Elle sera jouée une seule fois.
Attention du coup à la position de ton AudioSource par rapport à l'audioListener :)

robo_info
Messages : 40
Inscription : 19 Juil 2011 11:50

Re: Probleme de GUITexture

Message par robo_info » 25 Août 2011 14:54

oui j'ai essayé avec Oneplayshot mais rien n'est changé

je suis désolée mais j'ai pas bien compris :

"Il te faut un AudioClip en paramètre (même principe que le GUITexture) que tu passes à la fonction.
Elle sera jouée une seule fois.
Attention du coup à la position de ton AudioSource par rapport à l'audioListener"

Pouvez vous m'expliquer?Merci

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

Re: Probleme de GUITexture

Message par cayou66 » 25 Août 2011 15:33

Heu, si t'as déjà essayé et que ça marche pas...

Je disais ça par rapport à la fonction:
http://unity3d.com/support/documentatio ... eShot.html
function PlayOneShot (clip : AudioClip, volumeScale : float = 1.0F) : void
La fonction prend un audioClip en paramètre, elle ne joue pas celui renseigné dans l'interface d'unity.
Il te fallais donc comme pour le GUITexture une variable publique que tu renseigne dans l'éditeur, de la même manière (glissé déposé).

Mais si ça marche pas, je vois pas trop :?

Répondre

Revenir vers « L'interface GUI »