[c#]Accès au script d'un objet parent

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
izidor
Messages : 37
Inscription : 01 Déc 2013 21:23

[c#]Accès au script d'un objet parent

Message par izidor » 22 Avr 2014 17:21

Bonjour,
Voila j'ai un pti souci pour accéder au script d'un objet parent, j'ai tenté :

Code : Tout sélectionner

ScriptCircle scriptCircle= transform.parent.GetComponent<ScriptCircle>();
mais ça me renvoie l'erreur : NullReferenceException: Object reference not set to an instance of an object

Une idée? merci pour votre aide.

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: [c#]Accès au script d'un objet parent

Message par cayou66 » 22 Avr 2014 17:30

Salut,
si l'erreur est sur cette ligne, c'est que ton objet n'a pas de parent (transform.parent est null).

izidor
Messages : 37
Inscription : 01 Déc 2013 21:23

Re: [c#]Accès au script d'un objet parent

Message par izidor » 22 Avr 2014 18:12

Merci pour ton aide,

Alors en gros j'ai des objets ennemis(Prefabs) qui ont chacun un script "scriptEnnemis", ce script active/désactive les différents composants(colliderBox, script de mouvement, tir de projectile, ect..) en fonction de la camera.

Sauf que j'ai un type d'ennemis qui tourne autour d'un objet empty(je m'en sers comme centre) et cet objet va de droite à gauche.
En gros:
-j'ai un objet ennemi avec un script qui active/désactive ses composants.
-j'ai un autre objet "Empty" qui à un script"scriptCicle" qui prends deux variable public, "Nombre_ennenis" de type int et "ship" de type Game objet, ce script créer des instances(= à Nombre_ennemis) de "ship"(mon prefab ennemis) puis les place par rapport à sa position.

je veux donc désactiver le "ScriptCircle" de l'objet empty pour :
1-qu'il ne bouge plus de droite à gauche tant que la camera n'a pas atteint sa zone d'affichage (de plus cette objet n'a pas de renderer, pas de sprite il me sers juste de centre)
2-qu'il ne creer pas d'instance de "ship" tant que la camera n'est pas dans sa zone d'affichage.

Aegis
Messages : 233
Inscription : 14 Juin 2010 20:29
Localisation : Wellington, Nouvelle-Zélande

Re: [c#]Accès au script d'un objet parent

Message par Aegis » 22 Avr 2014 23:01

Si tu script doit prendre en compte les deux type d'ennemis (celui avec un parent et celui sans parent), alors tu dois tester si tu as un parent en premier.

Code : Tout sélectionner

Transform parent = transform.parent;
if (parent != null) {
   ScriptCircle scriptCircle = parent.GetComponent<ScriptCircle>();
}

Répondre

Revenir vers « Scripting »