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 :

Erreur Unity avec instance d'un objet


Sujet :

Unity

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Erreur Unity avec instance d'un objet
    Bonsoir,
    j'ai eu un peu de mal à me frayer un chemin dans toute ces discussions donc j'espère être dans la bonne catégorie

    Je développe un jeu 3D sur Unity en JavaScript.
    Néanmoins j'ai une erreur qui tourner en boucle pendant que je joue... le script en question marche correctement, mais toute les secondes j'ai une erreur qui s'affiche dans ma console :

    IndexOutOfRangeException : Array index is out of range.

    Il indique ce message sur une ligne de code qui me dis d'instancier un ennemi à un spawner (sur 4 au total) que mon script va choisir aléatoirement. Voilà un morceau de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public var spawner : int; //Le spawn 1, 2 ou 3 de mon tableau spawnValue
    var spawnValue : GameObject[];
     
    spawner = Random.Range(0, 3);
    Instantiate(ennemy, spawnValue[spawner].transform.position, transform.rotation);  //La ligne en question d'où viendrai l'erreur
    Le problème étant, dés que mon premier ennemi est spawn, j'ai le message d'erreur, que je vous ai précisé, qui s'affiche dans ma console encore et encore, à l'infinie j'ai envie de dire jusqu'au point de faire souffler mon ordinateur. Et de même pour mon random, à partir de mon premier random, sur ma console je vois des milliers de nombres random entre 0 et 3 qui vont s'afficher...

    (pour info l'ennemi est spawn toute les 5 sec) J'ai essayé de mettre un boolean, disant que boolean = false, si boolean = true, alors le random se lance puis boolean = false aussitôt. Mais il persiste et me random mes chiffres à l'infinie.

    Merci d'avance pour vos réponses !

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2007
    Messages
    677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 677
    Points : 2 137
    Points
    2 137
    Par défaut
    En commentaire je vois que tu as écrit "Le spawn 1, 2 ou 3 de mon tableau spawnValue". J'en déduis que dans ton tableau tu n'as que trois spawn, ce qui veut dire que l'accès à ces derniers se feront via l'index 0, 1 et 2 de ton tableau. Or Random.Range(0, 3) peut potentiellement renvoyer 3...

    A partir de là je te laisse chercher ton erreur.
    Le WIP de The last bastion, mon projet de jeu-vidéo (un TD en 3D)

    Mon portfolio / Ma page fb

  3. #3
    Membre expérimenté
    Avatar de Greg Latiner
    Homme Profil pro
    Développeur JV
    Inscrit en
    Février 2014
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Développeur JV

    Informations forums :
    Inscription : Février 2014
    Messages : 341
    Points : 1 313
    Points
    1 313
    Par défaut
    Citation Envoyé par Bigum Voir le message
    j'ai eu un peu de mal à me frayer un chemin dans toute ces discussions donc j'espère être dans la bonne catégorie
    la section Unity3D aurait été plus approprié


    Citation Envoyé par Bigum Voir le message
    le script en question marche correctement, mais toute les secondes j'ai une erreur qui s'affiche dans ma console :

    IndexOutOfRangeException : Array index is out of range.
    Le message est explicite: tes index sont hors tableau. Est-ce que ton tableau de gameobjects spawnValue est initialisé ? en particulier par le biais de l'inspector si ton script est ataché à un gameobject ?

    EDIT: arf, double post...

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Je viens de comprendre mon erreur

    Pour vous répondre :
    J'ai bien essayé avec un Random.Range(0, 2) donc valeur 0, 1 et 2, mais l'erreur persiste.
    Et ce n'est pas une erreur par seconde mais des centaines, je me suis un peu mal expliqué.

    Et oui les gameObject sont initialisés dans mon inspector.


    En fait, les spawner étaient tous dans un objet empty contenant le script, sauf que j'ai mis le script à chacun de mes spawner plutôt que d'avoir le script uniquement sur l'objet vide. Bref je pense que vous avez compris ^^
    Merci pour votre aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 31/12/2009, 09h10
  2. Réponses: 4
    Dernier message: 24/08/2008, 01h40
  3. Lien 1-1 avec instance d'objets
    Par slim31770 dans le forum Hibernate
    Réponses: 4
    Dernier message: 22/10/2007, 11h05
  4. Réponses: 8
    Dernier message: 04/06/2007, 16h20
  5. un problème avec un tableau d'objet, erreur bete ?
    Par Heero_2040 dans le forum C++
    Réponses: 12
    Dernier message: 13/07/2006, 13h20

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