Bonjour,
Je ne sais pas si cela sert à quelque chose... mais bon :
J'ai mis t en static par sécurité d'une part pour être sûre qu' il soit gardé en mémoire
Faux.. ça ne sert pas à ça!.. En public, en private ou protected il serait tout autant gradé en mémoire!
pour être sûre que sa porté soit dans tout ce programme.
Faux... sa porté est celle du script/fonction qui l'instancie... En public, la variable aurait la même portée.
Pourquoi penses -tu qu'il est problématique de mettre t en static ?
Parce que ça ne sert pas à ça la notion de static.
Pour ton exemple de Toggle, voici deux raisons qui me font dire que tu fais n'importe quoi.
1/ Ton Toggle est unique dans tout ton programme (programme = jeu en entier, non pas fichier script). Sa valeur booléenne est donc unique dans tout ton programme. => La notion de valeur static n'a pas lieu d'être pour un objet qui est de toutes manières unique.
2/ Mettre sa valeur dans t ne sert à rien si ce n'est dupliquer une information. => Autant aller chercher directement la valeur du Toggle. Ou alors dupliquer l'information (donc mettre t) dans un fichier dédié à la gestion de l'interface/jeu. C'est un fichier généralement appelé "gameManager". "gameManager"est unique, donc jamais "dupliqué" et avec un "DontDestroyOnLoad" il persiste entre chaque scènes.
"DontDestroyOnLoad" est très facile à utilisé, il est là pour ça, il faut l'utiliser.
Ce sera ma dernière intervention sur ce sujet. Bon codage