Bug d'un script simple lors d'un changement de scène

Pour les scripts écrits en Javascript (UnityScript). :!: Obsolète :!:
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
UnLutinMagiqueYoupi
Messages : 51
Inscription : 25 Jan 2016 20:19

Bug d'un script simple lors d'un changement de scène

Message par UnLutinMagiqueYoupi » 25 Jan 2016 20:43

Bonjour a tous,
alors je vais faire ça rapidement je vous expose mon problème ^^ :

Je suis entrain de créer un petit jeu (vraiment très basic), ou j'ai créé trois scènes :
-Un menu principal avec les boutons Jouer, Option (encore inutilisé) et Quitter.
-Mon niveau (l'unique pour l'instant, il y a un début à tout ^^)
-Un menu de mort, se lance lorsque la vie du personnage atteint 0, et possède les boutons Menu et Recommencer.

Le problème ? et bien simplement lorsque je lance mon jeu (pas encore mis en .exe, juste dans la visualisation, est-ce que ça fais une différence ?) mon menu s'affiche donc, mais lorsque je clic sur le bouton commencer :

Code : Tout sélectionner

function OnGUI (){

if(GUI.Button(Rect(Screen.width / 2 - 100, Screen.height / 2 - 150, 200, 50), "Jouer")){ Application.LoadLevel("Jeu"); }
et que donc je suis amené dans la scène "Jeu" (mon level), pour commencer la lumière est toute bizzare (j'ai vu des gens ayant ce même problème sur gogole ^^), mais surtout, le script contrôlant la vie de mes ennemis ne fonctionne plus :

Code : Tout sélectionner

var ZombieHealth : int = 100;

function OnCollisionEnter (col : Collision) {
if(col.gameObject.tag == "BalleM4"){
ZombieHealth -= 25;
}
}

function Update () {
if(ZombieHealth <= 0){
GetComponent.<Animator>() .Play("Mourir");
gameObject.GetComponent(ZombieAI).enabled = false;
gameObject.GetComponent(CharacterController).enabled = false;
}
}

function Dead(){
yield WaitForSeconds(10);
Destroy (gameObject);
}
Pourtant normalement, mes balles (avec le tag BalleM4 ) partent bien et rentre en collision avec l'ennemi mais retombent sans le tuer :pleur4: :snif:
Je pense que le script est désactivé, mais je ne sais pas vraiment en fait '-' si vous voulez plus de précision, dites moi.
Aussi, Unity m'indique que "Application.LoadLevel" est obsolète, et me dit de remplacer par SceneManager.LoadScene, mais ça ne fais rien 8/

Si vous avez lu mon pavé merci ! :merci:

Avatar de l’utilisateur
Skelnox
Messages : 92
Inscription : 23 Déc 2015 10:03
Localisation : Avec la grande Faucheuse
Contact :

Re: Bug d'un script simple lors d'un changement de scène

Message par Skelnox » 25 Jan 2016 21:30

Bon un peu à part et chacun ses choix mais, pourquoi ne pas utiliser le dernier système GUI ? Canvas et compagnie plutôt que tout par code ? (http://unity3d.com/learn/tutorials/topi ... terface-ui)
la lumière est toute bizzare
Là il va falloir en dire plus. "Bizarre" d'accord mais comment en rapport à l'état normal de la lumière ?
le script contrôlant la vie de mes ennemis ne fonctionne plus :
Pour ce point, il serait fort agréable que tu indente tes codes car, personnellement, c'est vraiment désagréable à lire. Et tu n'as pas un erreur ou plusieurs dans ta console à tout hasard ?

Code : Tout sélectionner

GetComponent.<Animator>() .Play("Mourir");
Je ne sais pas si UnityScript autorise cette forme, ne travaillant qu'en C#, mais pourquoi un "." (point) entre GetComponent et <Animator> ?
Aussi, Unity m'indique que "Application.LoadLevel" est obsolète, et me dit de remplacer par SceneManager.LoadScene, mais ça ne fais rien 8/

http://docs.unity3d.com/ScriptReference ... Scene.html

SceneManager.LoadScene(0) (Le int à renseigner fait référence à la Position de la scène dans build Settings)
SceneManager.LoadScene("SceneName"). (String : Nom De la scène à charger)
Lorsque ta vue veut pénétrer trop loin dans les ténèbres, il advient qu'en imaginant tu t'égares

UnLutinMagiqueYoupi
Messages : 51
Inscription : 25 Jan 2016 20:19

Re: Bug d'un script simple lors d'un changement de scène

Message par UnLutinMagiqueYoupi » 25 Jan 2016 22:06

Skelnox a écrit :Là il va falloir en dire plus. "Bizarre" d'accord mais comment en rapport à l'état normal de la lumière ?
Très basse, avec des tons d'orangé/marron, un peu sepia (comme quand je lance unity et que les lumières chargent durant environ 10 secondes avant que tout devienne fonctionnel)
Skelnox a écrit :Pour ce point, il serait fort agréable que tu indente tes codes car, personnellement, c'est vraiment désagréable à lire. Et tu n'as pas un erreur ou plusieurs dans ta console à tout hasard ?
Heuuu... Désolé ^^' Et pour les erreurs, il n'y a rien 8/ je viens apparemment de faire en sorte que les ennemis meurent après l'apparition de la scène (pour tout avouer, je ne sais pas comment en fait.... je me sens bête.....), mais le problème de la lumière persiste et visuellement c'est peu agréable, j'ai en fait l'impression que la scène n'est pas complétement "chargée" :?:
Skelnox a écrit :Je ne sais pas si UnityScript autorise cette forme, ne travaillant qu'en C#, mais pourquoi un "." (point) entre GetComponent et <Animator> ?
Au niveau de l'animation aucun bug :merci:
Skelnox a écrit :SceneManager.LoadScene(0) (Le int à renseigner fait référence à la Position de la scène dans build Settings)
SceneManager.LoadScene("SceneName"). (String : Nom De la scène à charger)
Unity ne reconnais pas SceneManager :triste1: mais merci tout de même ! ;)



Apparemment le bug pour les ennemis est réglé (comment ? Bonne question :taré1: ) reste juste a voir pourquoi la lumière prend cette couleure, comme si l'intensité était très réduite et en sepia ? :/

Merci.

Avatar de l’utilisateur
Skelnox
Messages : 92
Inscription : 23 Déc 2015 10:03
Localisation : Avec la grande Faucheuse
Contact :

Re: Bug d'un script simple lors d'un changement de scène

Message par Skelnox » 25 Jan 2016 22:48

Pour ta lumière, tu la contrôle par script quelque part ?

Sinon essaye de recréer une lumière (du même type) et remet les réglages comme celle qui déconne. Désactive l'ancienne. Juste pour voir si le résultat est le même. Un peu du mal à voir la source du problème là.

S'il ne reconnait pas SceneManager c'est simplement qu'il lui faut une référence.

Code : Tout sélectionner

using UnityEngine.SceneManagement;
C# au dessus mais je suppose que UnityScript à un semblable de "using" à mettre en début de script. Sans cela c'est sûr que ton script risque de ne pas comprendre ce qu'il doit chercher.
Lorsque ta vue veut pénétrer trop loin dans les ténèbres, il advient qu'en imaginant tu t'égares

Avatar de l’utilisateur
MasterNovice
Messages : 610
Inscription : 23 Juil 2011 16:03

Re: Bug d'un script simple lors d'un changement de scène

Message par MasterNovice » 25 Jan 2016 23:15

Salut,

juste pour dire que sur un ancien projet j'ai eu le même soucis avec l'éclairage. Je n'avais pas de temps à perdre dessus du coups je n'ai pas creusé mais si tu es dans le même cas que moi, la version compilée fonctionnera parfaitement. J'ai noté ce soucis seulement dans l'éditeur, le jeu marchait parfaitement bien sans aucun problème d'éclairage. Si quelqu'un sait d'où ça peut venir, ça m’intéresse aussi. Ça se produisait pour un changement de scène dans l'éditeur via un menu.

UnLutinMagiqueYoupi
Messages : 51
Inscription : 25 Jan 2016 20:19

Re: Bug d'un script simple lors d'un changement de scène

Message par UnLutinMagiqueYoupi » 26 Jan 2016 00:59

Skelnox => non pas de script pour ça, la lumiere n est pas celle de base (il me semble), mais je teste des que possible ;)

MasterNovice => Si ca marche dans la version compilée ça va, mais en effet c'est étrange, si je lance directement la scene la lumiere est normale, mais si je change de scene a un moment (me fais tuer et respawn, etc) ça devient "bizzare" ::d

Avatar de l’utilisateur
Skelnox
Messages : 92
Inscription : 23 Déc 2015 10:03
Localisation : Avec la grande Faucheuse
Contact :

Re: Bug d'un script simple lors d'un changement de scène

Message par Skelnox » 26 Jan 2016 01:15

Je n'ai jamais vraiment mis le nez dans ces options car nul besoin pour le moment donc, à vérifier :

Source : http://answers.unity3d.com/questions/91 ... e-rea.html

Je cite en mode flemmard désolé.
In both of your scenes go to Window --> Lighting --> Lightmaps and disable auto and manually click Bake. Leave the auto checkbox off. Do this for both of your scenes, the start menu scene and your game scene. In both scenes the auto checkbox must be off and have a lightmap snapshot up above in the lightmap snapshot field.
Je ne sais pourquoi cela corrige le problème de certains (pas si vieux que cela en plus le sujet) mais bon, vérifier si l'autobake n'est pas activé (par défaut désactivé il me semble pourtant).

Edit : Une autre source (http://forum.unity3d.com/threads/applic ... st-2006396)
Lorsque ta vue veut pénétrer trop loin dans les ténèbres, il advient qu'en imaginant tu t'égares

Avatar de l’utilisateur
MasterNovice
Messages : 610
Inscription : 23 Juil 2011 16:03

Re: Bug d'un script simple lors d'un changement de scène

Message par MasterNovice » 26 Jan 2016 01:31

Merci Skelnox,

Je viens de regarder et tester, effectivement le soucis vient bien de là et il est connu d'Unity : https://issuetracker.unity3d.com/issues ... de-is-used

Il n'est pas vraiment gênant puisque c'est seulement dans l'éditeur. Mystère résolu en tout cas :)

UnLutinMagiqueYoupi
Messages : 51
Inscription : 25 Jan 2016 20:19

Re: Bug d'un script simple lors d'un changement de scène

Message par UnLutinMagiqueYoupi » 26 Jan 2016 01:38

Probleme résolu, merci ! :merci:

Verrouillé

Revenir vers « (Js) Javascript »