Bonjour à tous.
J'explique mon souci ...
J'ai une scène, avec un script qui me donne des valeurs jour ou nuit.
Dans cette scene, je fais apparaitre de façon aléatoire des véhicules. Ces derniers sont des prefab.
Mon problème, est que je ne sais pas comment donner l'info au préfab de la valeur lié à ma scène.
Pour être plus précis, dans mon prefab, j'ai créé un script, qui suivant la valeur jour ou nuit de la scène, allume les phares.
Quand je suis sur le prefab, je n'ai pas le moyen d'attribuer le script "jour / nuit" présent dans la scène.
J'espère avoir expliqué correctement le souci.
Merci de vos retours
[RESOLU] [MY - AL] Problème de récupération de valeurs dans un Prefab
[RESOLU] [MY - AL] Problème de récupération de valeurs dans un Prefab
Dernière édition par ludo2vie le 05 Sep 2021 12:43, édité 2 fois.
Re: [MY - AL] Problème de récupération de valeurs dans un Prefab
Hello,
Pour info, j'ai réussi par le biais du Tag.
J'ai attribué un Tag "TimeDayNight" au gameobject de ma scène, et j'ai pu attribué la valeur "hour" (celle qui m'intéresse pour passer de jour à nuit) dans mon Prefab.
Je mets le script humblement, il peut servir à un débutant comme moi
Pour info, j'ai réussi par le biais du Tag.
J'ai attribué un Tag "TimeDayNight" au gameobject de ma scène, et j'ai pu attribué la valeur "hour" (celle qui m'intéresse pour passer de jour à nuit) dans mon Prefab.
Je mets le script humblement, il peut servir à un débutant comme moi
Code : Tout sélectionner
public class PhareRecupTime : MonoBehaviour
{
public GameObject phare;
GameObject daynightcycl;
public int fixhour;
void Start()
{
daynightcycl = GameObject.FindWithTag("TimeDayNight");
fixhour = daynightcycl.GetComponent<DayNightCycle>().hour;
}
// Update is called once per frame
void Update()
{
fixhour = daynightcycl.GetComponent<DayNightCycle>().hour;
//
if (fixhour < 7)
{
phare.SetActive(true);
}
if (fixhour > 17)
{
phare.SetActive(true);
}
if (fixhour >= 7 && fixhour <= 17)
{
phare.SetActive(false);
}
//
}
}
Re: [MY - AL] Problème de récupération de valeurs dans un Prefab
Bonjour,
merci pur cette auto-réponse
par contre, par rapport à ton script, évite les GetComponent() dans l'Update, c'est assez lourd comme fonction, et même si sur une application simple tu ne t'en rends pas compte, cela pompe des ressources qui ne se justifie pas.
Placer le component DayNightCycle en cache est une solution plus appropriée. Par exemple, tu peux écrire quelque chose comme:
merci pur cette auto-réponse
par contre, par rapport à ton script, évite les GetComponent() dans l'Update, c'est assez lourd comme fonction, et même si sur une application simple tu ne t'en rends pas compte, cela pompe des ressources qui ne se justifie pas.
Placer le component DayNightCycle en cache est une solution plus appropriée. Par exemple, tu peux écrire quelque chose comme:
Code : Tout sélectionner
public class PhareRecupTime : MonoBehaviour
{
...
private DayNightCycle cycle;
...
void Start()
{
...
cycle = daynightcycl.GetComponent<DayNightCycle>();
...
}
// Update is called once per frame
void Update()
{
fixhour = cycle.hour;
...
}
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ