[RÉSOLU]Prefab -> Objet : problème d'attribution d'un script

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Répondre
Bilu
Messages : 91
Inscription : 20 Nov 2019 09:24

[RÉSOLU]Prefab -> Objet : problème d'attribution d'un script

Message par Bilu » 24 Mars 2020 18:22

Bonjour,

Mon problème est assez simple à comprendre mais j'ai du mal à le solutionner :
Quand le personnage (shipPlayer_1) de mon jeu est un prefab, je ne peux pas lui attribuer un script dans la case entourée en rouge :

Image

Lorsque je run, un script fait spawn mon personnage qui est alors maintenant un objet (si j'ai bien compris) et je peux lui attribuer le script que je désir
Image

Mais du coup, je clique sur pause et je lui attribue en cliquant sur le petit rond et je sélectionne le script en question.
Qu'est ce que je dois faire pour que cela se fasse tout seul ? c'est-à-dire que le script lui soit attribué dès que mon personnage spawn ?
Est-il possible de recréer la hiérarchie que j'ai fait avec
EnergyBar
->BackGround ( qui représente le cadre de ma barre d’énergie)
->Bar(qui représente la barre d’énergie même)
->->BarSprite
en tant que prefab ? De cettte façon je pourrai attribuer le script "EnergyBar" à mon shipPlayer_1 (prefab) et en spawnant le personnage aura le script attribué ?


Voici une image de "Project" et" hierarchy" avant et après le lancement du jeu

Image
Image

Bien à vous,

Bilu
Dernière édition par Bilu le 27 Mars 2020 22:29, édité 1 fois.

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: Prefab -> Objet : problème d'attribution d'un script

Message par djulio74 » 24 Mars 2020 18:28

Je pense que tu ne peux pas parce que c'est un préfab justement, et non un objet.
En mode édit, tu devrai glisser ton préfab dans la scène, qui sera du coup un objet, lui assigner le script et ensuite en refaire un préfab.

Si ça ne fonctionne pas, tu devrais renseigner un variable script dans ton script qui instantie ton préfab, et modifier ce script pour qu'une foi instantié, il ajoute au player le script dans la variable souhaité.

Je suis peut être pas très clair, la journée à été longue déjà, lol

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Bilu
Messages : 91
Inscription : 20 Nov 2019 09:24

Re: Prefab -> Objet : problème d'attribution d'un script

Message par Bilu » 24 Mars 2020 19:54

Bonjour djulio74,
Si ça ne fonctionne pas, tu devrais renseigner un variable script dans ton script qui instantie ton préfab, et modifier ce script pour qu'une foi instantié, il ajoute au player le script dans la variable souhaité.
C'est justerment cela que j'aimerai faire mais je ne vois pas comment. Pourrais tu m'aider ?

Bien à toi,

Bilu

Avatar de l’utilisateur
jmhoubre
Messages : 851
Inscription : 05 Oct 2019 22:05

Re: Prefab -> Objet : problème d'attribution d'un script

Message par jmhoubre » 24 Mars 2020 23:47

Bonsoir,
si tu met ton joueur (le prefab donc) sur la scène, tu peux (clic droit) choisir de "casser" ton prefab (Unpack). Tu devrais alors pourvoir affecter le script au joueur (un simple objet désormais), et une fois l'opération réalisée, en refaire un prefab.

Bilu
Messages : 91
Inscription : 20 Nov 2019 09:24

Re: Prefab -> Objet : problème d'attribution d'un script

Message par Bilu » 25 Mars 2020 17:23

Bonjour,

@jmhoubre, manqué ! Cela n'a pas fonctionné. Une fois redevenu un prefab le script se dissocie.
J'y croyais un peu quand même :P

Quelqu'un a une autre solution ?

Bilu

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

Re: Prefab -> Objet : problème d'attribution d'un script

Message par boubouk50 » 25 Mars 2020 17:33

Les prefabs sont hors-scène, donc ne peuvent interagir avec quoi que ce soit de la scène. Une fois Instancié dans la scène alors il a accès à la scène, ce n'est pas plus un asset mais un gameObject.
Tu as plusieurs solutions: (je considère EnergyBar dans la scène)
- Lors de l'Instanciation, les scripts monobehaviour de l'instance vont se lancer (si actifs), c’est à dire Awake, Start, Update, etc. Dans l'Awake par exemple, tu peux récupérer ton EnergyBar de la scène. A toi de voir comment tu procèdes (tag, lien, scriptableObjetc, Component, etc)
- Utiliser les scriptableObjects. Un SO peut être référencé par plusieurs objets, ce qui permet un partage de données entre objets sans qu'ils se connaissent.
"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

Bilu
Messages : 91
Inscription : 20 Nov 2019 09:24

Re: Prefab -> Objet : problème d'attribution d'un script

Message par Bilu » 27 Mars 2020 12:16

boubouk50 a écrit :
25 Mars 2020 17:33
Les prefabs sont hors-scène, donc ne peuvent interagir avec quoi que ce soit de la scène. Une fois Instancié dans la scène alors il a accès à la scène, ce n'est pas plus un asset mais un gameObject.
Tu as plusieurs solutions: (je considère EnergyBar dans la scène)
- Lors de l'Instanciation, les scripts monobehaviour de l'instance vont se lancer (si actifs), c’est à dire Awake, Start, Update, etc. Dans l'Awake par exemple, tu peux récupérer ton EnergyBar de la scène. A toi de voir comment tu procèdes (tag, lien, scriptableObjetc, Component, etc)
- Utiliser les scriptableObjects. Un SO peut être référencé par plusieurs objets, ce qui permet un partage de données entre objets sans qu'ils se connaissent.
Très bien Merci.
Vous auriez des bon tuto sur le sujet ?

Je reviendrai pour mettre la solution dès que je l'aurai

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

Re: Prefab -> Objet : problème d'attribution d'un script

Message par boubouk50 » 27 Mars 2020 12:52

Je n'ai rien à te proposer, ces infos sont surtout issues de la compréhension du fonctionnement d'Unity.
Mis à part la documentation ou les learns Unity, il te faudra chercher ton bonheur sans mon aide.
"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

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

Re: Prefab -> Objet : problème d'attribution d'un script

Message par boubouk50 » 27 Mars 2020 12:53

Je n'ai rien à te proposer, ces infos sont surtout issues de la compréhension du fonctionnement d'Unity.
Mis à part la documentation ou les learns Unity, il te faudra chercher ton bonheur sans mon aide.

Tu peux consulter ce post pour avoir quelques liens utiles également.
"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

Bilu
Messages : 91
Inscription : 20 Nov 2019 09:24

Re: Prefab -> Objet : problème d'attribution d'un script

Message par Bilu » 27 Mars 2020 13:30

Merci boubouk50 :super:

Répondre

Revenir vers « Unity le logiciel »