Problêmes avec mon script pour ouvrir et fermer les portes.

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
Zaralina
Messages : 2
Inscription : 21 Mai 2015 16:01

Problêmes avec mon script pour ouvrir et fermer les portes.

Message par Zaralina » 28 Mai 2015 20:25

Bonjour tout l'monde!

Bon, voila mon problèmes: Ça fait seulement quelque semaines que j'utilise Unity3d...Ou plutôt que je me familiarise avec, car pour l'instant la seul chose que j'ai été capable de faire est modifier un prefab de FPSController
afin de lui permettre de regarder ses pied (sauf qu'il n'en possède pas encore, la grosse feignasse que je suis étant incapable d'en modéliser :mrgreen: )

Je débute en Javascript, et je vient tout juste d'écrire mon tout premier script fait maison permettant d'ouvrir et de fermer des porte. Le script me semble bon, mais ne marche pas pour autant...

Voici le script:

Code : Tout sélectionner

#pragma strict

var doorIsOpen:boolean=false;
var doorOpenSound:AudioClip;
var doorCloseSound:AudioClip;
var doorOpenAnimation:Animation;
var doorCloseAnimation:Animation;

if (hit.gameObject.tag=="player" && doorIsOpen == false && KeyCode ("fire1")){
       GetComponent(AudioClip)PlayerOneShot("ouvrir");
       GetComponent(Animation)PlayerOneShot("ouvrir");
       doorIsOpen=true;
       };

else if (hit.gameObject.tag=="player" && doorIsOpen == true && KeyCode ("fire1")){
       GetComponent(AudioClip)PlayOneShot("fermer");
       GetComponent(Animation)PlayerOneShot("fermer");
       doorIsOpen=false;
       };
Unity ma déjà afficher beaucoup de message d'erreur sur ce script...A chaque je me débrouiller pour trouver l'erreur et la régler!
Et Unity m'affiche toujours un autre message d'erreur.Et cette voici je n'arrive pas à trouver l'erreur.

J'en déduis qu'il y a une grosse erreur de syntaxe dans mon script.

J'aurait donc besoins de votre aide pour faire fonctionner ce script (et par la même occasion m’améliorer un peu en Javascript).

Avatar de l’utilisateur
Arigasoft
Messages : 27
Inscription : 07 Mai 2015 14:53
Localisation : Toulouse - France
Contact :

Re: Problêmes avec mon script pour ouvrir et fermer les port

Message par Arigasoft » 28 Mai 2015 21:17

Je m'y connais pas des tonnes en script sur Unity, mais la à vue d’œil je vois déjà quelques erreurs.

Déja, est-ce que tu associe bien des fichiers audio et des animations de la bibliothèque à tes variables ? Sinon tu essaye d'appeler du vide là :)
Tu peux passer tes variables en public pour pouvoir faire glisser un audio ou une animation directement sur la variables dans le panneau Inspector.

GetComponent(AudioClip)PlayerOneShot("ouvrir");
Me semble que la fonction c'est PlayOneShot() et pas PlayerOneShot et doit y avoir un point entre Getcomponent et PlayOneShot (GetComponent(AudioClip).PlayOneShot("ouvrir");)

GetComponent(Animation)PlayerOneShot("ouvrir");
Me semble que la fonction PlayOneShot justement ne sert que pour l'audio, pas pour les animations. Si quelqu'un peut confirmer.

KeyCode ("fire1")
La fonction ne doit pas être bonne, tu peux récupérer une touche appuyée par l'utilisateur avec un Input.GetKey("fire1").


Ensuite tu ne peux pas détecter une collision avec un simple if, surtout si ce if n'est pas dans une itération. Me semble que tu as des fonctions spécifiques pour les collisions (voir OnCollisionEnter par exemple)


Par contre ça t'avancera pas beaucoup si je te donne toutes les réponses et que je te corrige tout ton code et tu progressera mieux en fouillant un peu sur le net ou sur le site de Unity (api, doc vidéos).

Ensemble de vidéos sur les bases du scripting Unity
Tutoriels sur les colliders

Bonne chance pour la suite !

Zaralina
Messages : 2
Inscription : 21 Mai 2015 16:01

Re: Problêmes avec mon script pour ouvrir et fermer les port

Message par Zaralina » 29 Mai 2015 08:19

Merci beaucoup pour ton aide, je vais essayer de ce pas!

Et je vais aussi jeter un œil aux liens.

Encore merci pour ton aide!

EDIT:

J'ai suivit tes indication et me suis documenter sur les collider...

N'ayant encore fait aucun bruitages et aucune animation "ouvrir" et "fermer"(pourtant j’étais sur de les avoir faits, les animations!), j'ai contourner le problèmes en fessant pivoter la porte en mettant ceci à la place des "GetComponent()PlayOneShot();" :

transform.Rotate(0, -50, 0); pour l'ouverture,

transform.Rotate(0, 0, 0); pour la fermeture.

Pas de message d'erreur, mais la porte ne s'ouvre pas lorsque je clique dessus...

Verrouillé

Revenir vers « (Js) Javascript »