Combinaison fonction Et / fonction OU

Pour les scripts écrits en Javascript (UnityScript). :!: Obsolète :!:
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
Avatar de l’utilisateur
freepl
Messages : 1034
Inscription : 20 Mai 2012 19:33
Localisation : salon de provence

Combinaison fonction Et / fonction OU

Message par freepl » 21 Fév 2015 12:18

Bonjour

Dans ma maquette, j'ai 4 variantes de trajet.
J'ai également 2 caméras trajet par variante.
Mais j'ai un bug. Si la variante affichée et les cameras ne sont pas coordonnées , par exemple variante V1 affichée et camera V2 , l'affichage est gelé.

J'ai fait un script qi en fonction de la variante active et de la caméra active, on affiche ( ou pas) une image

Donc je fais
if(
si variante V1 vraie et caméra avion V2b vraie
ou variante V1 vraie et caméra voiture V2b vraie
ou variante V1 vraie et caméra avion V4 vraie
ou variante V1 vraie et caméra voiture V4 vraie

ou variante V2b vraie et caméra avion V1 vraie
ou variante V2b vraie et caméra voiture V1 vraie
ou variante V2b vraie et caméra avion V4 vraie
ou variante V2b vraie et caméra voiture V4 vraie

ou variante V4 vraie et caméra avion V1 vraie
ou variante V4 vraie et caméra voiture V1 vraie
ou variante V4 vraie et caméra avion V2b vraie
ou variante V4 vraie et caméra voiture V2b vraie
)
alors j'affiche une image
{ image vraie ; }

sinon je masque l'image
else
{ image fausse; }

-----------------------------
J'ai ce msg d'erreur alors que je suis en codage js.
''(23,25): BCE0026: 'void' cannot be used in a boolean context.''
Il est répété à chaque fois entre tousles SetActive et les (true)

Code : Tout sélectionner

.SetActive(true)



J'ai 2 questions :
1 Je ne comprends pas l'erreur
2 comment simplifier mon code qui je pense peut-être bcp amélioré

Merci

voici mon code

Code : Tout sélectionner

#pragma strict

// affecter les différentes variantes
var varianteV0 : GameObject;
var varianteV1 : GameObject;
var varianteV2b : GameObject;
var varianteV4 : GameObject;

// affecter les différentes cameras
var camV0Avion : GameObject;
var camV1Avion : GameObject;
var camV1Voiture : GameObject;
var camV2bAvion : GameObject;
var camV2bVoiture : GameObject;
var camV4Avion : GameObject;
var camV4Voiture : GameObject;

// affecter l'image erreur compatibilité caméra et variante affichée
var ErreurAffichage : GameObject;

function UpDate () {

if (varianteV0.SetActive(true) && camV1Avion.SetActive(true) || varianteV0.SetActive(true) && camV1Voiture.SetActive(true) || varianteV0.SetActive(true) && camV2bAvion.SetActive(true) || varianteV0.SetActive(true) && camV2bVoiture.SetActive(true) || varianteV0.SetActive(true) && camV4Avion.SetActive(true) ||
varianteV0.SetActive(true) && camV4Voiture.SetActive(true) ||


varianteV1.SetActive(true) && camV0Avion.SetActive(true) ||  varianteV1.SetActive(true) && camV2bAvion.SetActive(true) || varianteV1.SetActive(true) && camV2bVoiture.SetActive(true) || varianteV1.SetActive(true) && camV4Avion.SetActive(true) ||
varianteV1.SetActive(true) && camV4Voiture.SetActive(true) ||


varianteV2b.SetActive(true) && camV0Avion.SetActive(true) || varianteV2b.SetActive(true) && camV1Avion.SetActive(true) ||varianteV2b.SetActive(true) && camV1Voiture.SetActive(true) ||  varianteV2b.SetActive(true) && camV4Avion.SetActive(true) ||
varianteV2b.SetActive(true) && camV4Voiture.SetActive(true) ||


varianteV4.SetActive(true) && camV0Avion.SetActive(true) || varianteV4.SetActive(true) && camV1Avion.SetActive(true) ||varianteV4.SetActive(true) && camV1Voiture.SetActive(true) ||  varianteV4.SetActive(true) && camV2bAvion.SetActive(true) ||
varianteV4.SetActive(true) && camV2bVoiture.SetActive(true)  )

{ ErreurAffichage.SetActive(true); } // j'affiche l'image d'erreur

else

{ ErreurAffichage.SetActive(false); } // sinon je n'affiche pas l'image d'erreur

}


Matt45400
Messages : 131
Inscription : 31 Oct 2013 12:58
Localisation : Orléans / Paris

Re: Combinaison fonction Et / fonction OU

Message par Matt45400 » 21 Fév 2015 13:09


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

Re: Combinaison fonction Et / fonction OU

Message par freepl » 21 Fév 2015 14:05

salut

j'ajoute donc

Code : Tout sélectionner

public var ActiveSelf : bool; 
et je remplace tous les

Code : Tout sélectionner

varianteV0.SetActive(true) && camV1Avion.SetActive(true) ||......
par

Code : Tout sélectionner

varianteV0.activeSelf && camV1Avion.activeSelf || .....

Matt45400
Messages : 131
Inscription : 31 Oct 2013 12:58
Localisation : Orléans / Paris

Re: Combinaison fonction Et / fonction OU

Message par Matt45400 » 21 Fév 2015 14:30

C'est ça sauf que tu n'as pas besoin de rajouter cette ligne

Code : Tout sélectionner

public var ActiveSelf : bool;

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

Re: Combinaison fonction Et / fonction OU

Message par freepl » 21 Fév 2015 16:44

Merci

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

Re: Combinaison fonction Et / fonction OU

Message par freepl » 21 Fév 2015 18:43

J'ai modifié le script pour le simplifier.

Si la variante affichée et ses caméras sont actives alors je n'affiche pas l'image, sinon je l'affiche.

Le script fonctionne mais l'image (var ErreurAffichage : GameObject; // guitexture ) s'affiche en permanence
quel est le pb ?
J'ai mis SetActive aux résultats du if car ce n'est plus une variable booleénne, ce n'estqu'un objet


Merci

Code : Tout sélectionner

#pragma strict

// affecter les différentes variantes
var varianteV0 : GameObject;
var varianteV1 : GameObject;
var varianteV2b : GameObject;
var varianteV4 : GameObject;

// affecter les différentes cameras
var camV0Avion : GameObject;
var camV1Avion : GameObject;
var camV1Voiture : GameObject;
var camV2bAvion : GameObject;
var camV2bVoiture : GameObject;
var camV4Avion : GameObject;
var camV4Voiture : GameObject;

// Camera  qui voit tout et le msg d'erreur, à la meme place que la cam principale sans script de mvt
var camErreur : GameObject;


// affecter l'image erreur compatibilité caméra et variante affichée
var ErreurAffichage : GameObject; // guitexture 

/*
Si les caméras sont en concordance avec les versions
on n'affiche pas la camera (camErreur) qui voit l'image d'erreur (ErreurAffichage)
sinon, on l'affiche
*/


function UpDate () {

if (varianteV0.activeSelf && camV0Avion.activeSelf ||

varianteV1.activeSelf && camV1Avion.activeSelf ||  varianteV1.activeSelf && camV1Voiture.activeSelf ||

varianteV2b.activeSelf && camV2bAvion.activeSelf || varianteV2b.activeSelf && camV2bVoiture.activeSelf ||

varianteV4.activeSelf && camV4Avion.activeSelf ||varianteV4.activeSelf && camV4Voiture.activeSelf  )

{ camErreur.SetActive(false) ;
ErreurAffichage.SetActive(true) ; } // je ne vois pas la caméra qui voit l'image ni l'image

else

{ camErreur.SetActive(true) ;       // sinon je vois  la caméra qui voit l'image  et je vois  l'image
ErreurAffichage.SetActive(true) ;} 
}


Matt45400
Messages : 131
Inscription : 31 Oct 2013 12:58
Localisation : Orléans / Paris

Re: Combinaison fonction Et / fonction OU

Message par Matt45400 » 21 Fév 2015 18:53

Mettre false dans le else ?

Code : Tout sélectionner

ErreurAffichage.SetActive(false);

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

Re: Combinaison fonction Et / fonction OU

Message par freepl » 21 Fév 2015 19:17

j'ai testé aussi en inversant le résultat.

Code : Tout sélectionner

{ camErreur.SetActive(true) ;
ErreurAffichage.SetActive(true) ; } // je ne vois pas la caméra qui voit l'image ni l'image

else

{ camErreur.SetActive(false) ;       // sinon je vois  la caméra qui voit l'image l'image
ErreurAffichage.SetActive(false) ;} 
En clair, je voudrais que :
si la variante V1 est affichée avec la caméraV1 avion ou si la variante V1 est affichée avec la caméraV1 camion
alors
on masque la var camErreur (caméra) et la var ErreurAffichage (guitexture)

Sinon
on affiche la var camErreur (caméra) et la var ErreurAffichage (guitexture)

Il est vrai que je ne suis pas bon en script mais là je pense que mon raisonnement et mon script sont bon :?

Verrouillé

Revenir vers « (Js) Javascript »