[DB-AL] NullRef lors d'un instantiate

Pour les scripts écrits en C#
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
Badfly
Messages : 62
Inscription : 19 Mai 2017 14:46

Re: [DB-AL] NullRef lors d'un instantiate

Message par Badfly » 22 Mai 2017 11:44

SimonJ, oui l'objet est bien assigné. Même si l'erreur est ligne 12, il m'affiche le nom de l'objet, donc il est assigné. Quand je regarde l'inspector, dans "Projectile" j'ai bien mon objet :(

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6186
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [DB-AL] NullRef lors d'un instantiate

Message par boubouk50 » 22 Mai 2017 12:04

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class shootCube : MonoBehaviour {

    public Transform projectile;
    public Transform origine;

   // Use this for initialization
   void Start () {
        Transform l_instance;
        Rigidbody r_instance;

        l_instance = Instantiate (projectile, origine.position, origine.rotation); //Instanciation du prefab
        r_instance = l_instance.GetComponentInChildren <Rigidbody> (); //Si tu as besoin de récupérer le Rigidbody
        //ou r_instance = l_instance.GetComponent <Rigidbody> (); si le rigidbody est sur le parent.
    }
}
Et ce code ne fonctionne pas?
On peut avoir la composition de ton prefab? Qu'est ce qu'il y a dedans?
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Nazarick
Messages : 60
Inscription : 03 Avr 2017 21:44

Re: [DB-AL] NullRef lors d'un instantiate

Message par Nazarick » 22 Mai 2017 12:14

Par pur hasard, ton script "shootCube", vérifie qu'il ne traîne pas sur un autre GameObject dans ta scène. Cela "pourrait" expliquer la possible origine de l'erreur.

(Vérifie aussi sur le prefab que tu cherches à instancier, un script drag & drop au mauvais endroit, cela peut arriver très vite sans faire attention)

Badfly
Messages : 62
Inscription : 19 Mai 2017 14:46

Re: [DB-AL] NullRef lors d'un instantiate

Message par Badfly » 22 Mai 2017 12:23

Alors déjà, merci à tous de prendre du temps pour vous arracher les cheveux avec moi :D

@boubouk50 : Mon préfab est un simple cube avec un shader, un rigidbody, box collider et mesh renderer.

@Nazarick : Je confirme le script n'est nul par ailleurs. Et pas de scripts mit par erreur :(

Avatar de l’utilisateur
simonj
Messages : 293
Inscription : 29 Nov 2015 20:47
Localisation : Lyon

Re: [DB-AL] NullRef lors d'un instantiate

Message par simonj » 22 Mai 2017 13:05

Je viens de recréer ta scène chez moi. Avec tous les paramètres que tu nous a expliqué et je n'ai aucune erreur de mon coté. Donc ça ne viens pas du script mais forcément de ta configuration.

C'est assez simple comme configuration. Peut être que ça serait intéressant que tu nous donne une image de ton inspecteur avec ton script et une image de ton inspecteur sur ton prefab. Histoire que l'on voit ce qu'il se passe réellement.

Badfly
Messages : 62
Inscription : 19 Mai 2017 14:46

Re: [DB-AL] NullRef lors d'un instantiate

Message par Badfly » 22 Mai 2017 13:21

Bien sur voilà en premier l'inspector du Gameobject avec le script. En second, l'inspector pour le prefab.

Image

Image

(Petite info en passant : Les trucs mystiques en programmation n'arrive qu'à moi ;) )

Avatar de l’utilisateur
simonj
Messages : 293
Inscription : 29 Nov 2015 20:47
Localisation : Lyon

Re: [DB-AL] NullRef lors d'un instantiate

Message par simonj » 22 Mai 2017 14:00

Okay, et tu as bien ce script là ?

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class shootCube : MonoBehaviour {

    public Transform projectile;
    public Transform origine;

   // Use this for initialization
   void Start () {
        Transform l_instance;
        Rigidbody r_instance;

        l_instance = Instantiate (projectile, origine.position, origine.rotation); //Instanciation du prefab
        r_instance = l_instance.GetComponentInChildren <Rigidbody> (); //Si tu as besoin de récupérer le Rigidbody
        //ou r_instance = l_instance.GetComponent <Rigidbody> (); si le rigidbody est sur le parent.
    }
}
PS : Ca n'existe pas les "trucs mystiques" en programmation ;) On finis toujours pas trouver si on cherche bien (Pas toujours à corriger, mais toujours à trouver).

Badfly
Messages : 62
Inscription : 19 Mai 2017 14:46

Re: [DB-AL] NullRef lors d'un instantiate

Message par Badfly » 22 Mai 2017 14:16

Oui simonj, juste le projectile je l'aurais mis en RigidBody

Badfly
Messages : 62
Inscription : 19 Mai 2017 14:46

Re: [DB-AL] NullRef lors d'un instantiate

Message par Badfly » 23 Mai 2017 04:09

Pas d'autres idées ? :(

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6186
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [DB-AL] NullRef lors d'un instantiate

Message par boubouk50 » 23 Mai 2017 09:13

Ben, vu que ça marche pour nous, le problème est dans ta scène pas sur le fond. Essaie avec une scène vide pour voir. Refait ton prefab. Teste avec un Transform dans la scène et pas un prefab. Bref, là, c'est un peu à toi de trouver la mauvaise manip qui a été faite.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Répondre

Revenir vers « (C#) CSharp »