IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Unity Discussion :

Script ne fonctionnant pas sur deux objets


Sujet :

Unity

  1. #1
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2013
    Messages : 8
    Par défaut Script ne fonctionnant pas sur deux objets
    Salut tous le mondes !!

    je me présente fufu7334 et je suis venu sur ce fofo pour demander de l'aide je vous explique!

    je veux crée une porte qui s'ouvre quand l'ont appuit sur "E" rien de compliquer vous allez me dire je vous le confirme j'ai le script ici>

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    var IsOpen : boolean = false;
     
    var CanOpen : boolean = false;
     
    var Volume : float = 0.5;
     
    function Start () {
    audio.volume = Volume;
    }
     
    function Update () {
     
    if(Input.GetKeyUp(KeyCode.E) && !IsOpen && CanOpen)
     
    {
            Opening();
            IsOpen = true;
            audio.Play();
    }
     
    else if(Input.GetKeyUp(KeyCode.E) && IsOpen && CanOpen)
     
    {
            Closing();
            IsOpen = false;
    }
     
     
    }
     
    function Opening()
    {
    for (var i = 0; i < 100; i++)
    {
        transform.Rotate(0,-0.9,0);
     
        yield WaitForSeconds(0.01);
            }
    }
     
    function Closing()
    {
    for (var i = 0; i < 100; i++)
    {
        transform.Rotate(0,0.9,0);
     
        yield WaitForSeconds(0.01);
        audio.Play();
            }
    }
     
    function OnTriggerEnter (other : Collider)
    {
            if(other.gameObject.tag == "Player")
            {
                    CanOpen = true;
            }
    }
     
    function OnTriggerExit (other : Collider)
    {
            if(other.gameObject.tag == "Player")
            {
                    CanOpen = false;
            }
    }
     
     
    @script RequireComponent(AudioSource)

    Je test le script il fonctionne rien a dire mais quand je rajoute une 2éme porte la vien le premier soucis; bein les 2 porte souvre j'aimerais corriger sa mais debutant sur unity je ne c'est comment le corriger.
    2nd bug j'ai remarquer que quand je suis loin de la porte et que j'appuit sur E elle s'ouvre quand méme sans étre sur le trigger!

    j'aimerais bien finir ce script car il m'enerve depuit un certain moment ^^
    voilla je vous et exposer mon probléme en gros pour résumer en partant de ce script j'aimerais que chaque porte souvre correctement et non tous les porte avec le méme scrpit et que je soit dans le trigger pour l'ouvrire;

    Merci!

  2. #2
    Membre expérimenté Avatar de _MAID
    Homme Profil pro
    Game developer
    Inscrit en
    Novembre 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Game developer

    Informations forums :
    Inscription : Novembre 2010
    Messages : 216
    Par défaut
    As-tu bien un trigger et un script sur chaque porte ? à priori en lisant ton code (pas facile d’ailleurs, utilises les balises prévu pour ça) je ne vois pas pourquoi cela ne fonctionnerait pas sinon.

  3. #3
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2013
    Messages : 8
    Par défaut
    re :
    oui j'ai bien un trigger sur mes portes et , le méme script et sur les 2 porte enfin l'empty des 2porte que j'ai nommée object
    et rajouter un box collider sur les 2porte peut étre changer de script pour que les porte ne souvre pas tous les 2 a l'opposer de la map ^^ ou peut étre sa vien d'ici du script

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function OnTriggerEnter (other : Collider)
    {
            if(other.gameObject.tag == "Player")
            {
                    CanOpen = true;
            }
    }
     
    function OnTriggerExit (other : Collider)
    {
            if(other.gameObject.tag == "Player")
            {
                    CanOpen = false;
            }
    }

    le changer je rajouter un cube ou un truck pour que le script reconnait les porte du genre porte 1 ou porte 2

  4. #4
    Membre expérimenté Avatar de _MAID
    Homme Profil pro
    Game developer
    Inscrit en
    Novembre 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Game developer

    Informations forums :
    Inscription : Novembre 2010
    Messages : 216
    Par défaut
    je comprend pas trop ce que tu veux dire. Avec le script que tu donne au début, dans cette configuration, cela fonctionne très bien:



    Citation Envoyé par fufu7334 Voir le message
    ... enfin l'empty des 2porte que j'ai nommée object
    et rajouter un box collider sur les 2porte peut étre changer de script pour que les porte ne souvre pas tous les 2 a l'opposer de la map ^^ ou peut étre sa vien d'ici du script ....
    faut être plus précis sur ta hierarchy, quelle est le rôle de ton 'empty', c'est pour excentrer le centre de rotation ? Et j'ai pas trop compris non plus ton histoire de collider

  5. #5
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2013
    Messages : 8
    Par défaut
    Je vais mieux m'expliquer car j'etais vague je l'admet bref,

    L'empty permet de définire le centre de rotation de la porte, quand la porte s'ouvre et ce referme,
    Le collider permet a ce que quand le player passe dedans la porte elle s'ouvre que quand l'ont appuie sur "E" et que l'orsque l'ont n'est plus dans le collider la touche "E" ne devrait pas ouvrir la porte,


    Le script fonctionne bien avec une porte elle tourne bien grace a l'empty mais le soucis dans ce script c'est que j'ai un petit soucis avec la touche "E" et quand je rajoute une porte,

    1er soucis;
    car je m'explique quand je ne suis pas dans le collider et que j'appuit sur "E" la porte s'ouvre je ne c'est pas pourquoi !,

    2éme soucis:
    c'est que mes 2portes ne sont pas cote à cote il sont éloigner et pas de la même piece, et quand j'appuie sur "E" elle s'ouvre toutes les 2 mais je voudrait que 1 seul porte s'ouvre quand je suis dans son box collider à la porte que je veux ouvrire,


    désolé si l'image et un peux sombre

    voilla j'espère avoir étais un peux plus claire dans mes propos .
    Images attachées Images attachées  

  6. #6
    Membre expérimenté Avatar de _MAID
    Homme Profil pro
    Game developer
    Inscrit en
    Novembre 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Game developer

    Informations forums :
    Inscription : Novembre 2010
    Messages : 216
    Par défaut
    Citation Envoyé par fufu7334 Voir le message
    1er soucis;
    car je m'explique quand je ne suis pas dans le collider et que j'appuit sur "E" la porte s'ouvre je ne c'est pas pourquoi !,
    d'après ton code, l'ouverture de la porte est conditionné par l'appuis de E et de la présence du player dans le trigger, donc je vois pas pourquoi si tu n'est pas à proximité de la porte, une pression sur E fait qu'elle s'ouvre. Ou alors tu as changé de base la valeur de CanOpen dans l'inspector, la donnée étant public.

    Citation Envoyé par fufu7334 Voir le message
    2éme soucis:
    c'est que mes 2portes ne sont pas cote à cote il sont éloigner et pas de la même piece, et quand j'appuie sur "E" elle s'ouvre toutes les 2 mais je voudrait que 1 seul porte s'ouvre quand je suis dans son box collider à la porte que je veux ouvrire,
    quand tu auras trouvé ce qui cloche sur le point 1), alors je pense que cela solutionnera ce point aussi.

  7. #7
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2013
    Messages : 8
    Par défaut
    Oué j'avais cocher les 2 case mais si je les decoche bien les porte ne s'ouvre plus sa peut venir de ou ?

  8. #8
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Janvier 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2014
    Messages : 3
    Par défaut
    Dans l'inspector tu vois les variables de ton script ainsi que leur valeurs. La valeur de ces variables dans l'inspector est prioritaire sur celle de ton script.

    Par exemple: Dans ton script tu passes IsOpen et CanOpen en false à la création mais si dans l'inspector ces variables sont coché, elles auront la valeur true au lancement de ton script, même si elle sont en false à la création, et ce jusqu'à la modification de leur valeur.

    Ça peut être utile pour voir leur valeur lors de test, mais il est préférable de ne pas les modifier.

    Pour tes portes, il faut que chacune d'elles aient son propre Empty pour l'axe de rotation. Une méthode simple pour créer plusieurs portes est de les ajouter à partir d'un modèle existant autrement appelé Prefab.

    Pour ce faire, quand tu as fait une porte qui fonctionne correctement avec son script, tu fais un glisser-déposer à partir de la Hierarchy de l'objet entier qui contient la porte (dans ce cas précis l'Empty que tu as nommé object qui contient ta porte avec son script) vers ta fenetre Project dans ton dossier Assets:



    Tu as donc maintenant ton prefab qui est enregistré dans ton projet et si tu veux ajouter une porte dans ton niveau, il te suffit de glisser ton prefab vers ta scène sans devoir tout refaire.

  9. #9
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2013
    Messages : 8
    Par défaut
    C'est bon aprée plusieur heures de recherche j'ai trouver mon bug XD il est tous con
    enfaite mon first person players était en untagged j'ai mis en player et miracle sa marche XD quel ... ! MDR

  10. #10
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Janvier 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2014
    Messages : 3
    Par défaut
    Alors là c'est étrange, c'est possible d'avoir une capture d'écran de ton onglet Hierarchy et de l'inspector en ayant l'objet Player sélectionné?

  11. #11
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2013
    Messages : 8
    Par défaut
    MerciRomeoX pour ta réponse c'etais effectivement sa il n'etais pas tagger en player XD !...

Discussions similaires

  1. survol de lien par un script ne fonctionne pas sur IE
    Par ConceptInterWEB dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 09/08/2013, 14h06
  2. Script ne fonctionnant pas sur ie
    Par Royade dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/01/2013, 23h22
  3. [Google Maps] script ne fonctionnant pas sur le serveur
    Par alex61 dans le forum APIs Google
    Réponses: 2
    Dernier message: 22/11/2011, 17h38
  4. mon script ne fonctionne pas sur internet explorer
    Par Lulu_n10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/09/2008, 10h41
  5. [AJAX] Script ajax ne fonctionne pas sur IE :( !
    Par Funattitude dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 10/08/2006, 19h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo