[Résolu] Application.LoadLevel

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Avatar de l’utilisateur
Freelax
Messages : 1595
Inscription : 30 Déc 2009 23:02
Localisation : Niort
Contact :

[Résolu] Application.LoadLevel

Message par Freelax » 22 Mai 2010 16:08

Salut!

J'ai crée une scène 'login' pour charger deux scène différentes. Au moment de test de connection, j'envoi une variable pseudo au fichier php et j'utilise Application.LoadLevel pour charger les différentes scène selon la valeur de la variable renvoyée par ce même fichier. cela fonctionne parfaitement. ;)

Mais j'aimerai que dans le level charger je puisse afficher le pseudo entrée dans le login par l'utilisateur mais je ne trouve rien concernant cette méthode.. :(

Y a t'il un moyen de faire suivre des variables d'une scène a l'autre :?: ou existe t'il une autre méthode pour creer un accès par login :?:

Merci d'avance de votre aide...
Dernière édition par Freelax le 22 Jan 2011 04:47, édité 1 fois.
Image

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: Application.LoadLevel

Message par giyomuSan » 22 Mai 2010 23:52

tu peux utiliser une variable de type "static" elle sera unique et en memoire quelque soit la scene que tu load.

ou sinon tu as la commande "DontDestroyOnLoad()" qui te permet d avoir des script / object persistent entre les scenes ;)

Avatar de l’utilisateur
Freelax
Messages : 1595
Inscription : 30 Déc 2009 23:02
Localisation : Niort
Contact :

Re: Application.LoadLevel

Message par Freelax » 23 Mai 2010 00:51

Je vais essayer en static!

Merci

Ps: décidément ta toujours une réponse à mes questions :D Merci beaucoup, vraiment ;)
Image

Avatar de l’utilisateur
Freelax
Messages : 1595
Inscription : 30 Déc 2009 23:02
Localisation : Niort
Contact :

Re: Application.LoadLevel

Message par Freelax » 23 Mai 2010 12:42

J'ai bien essayer les deux méthodes mais je n'y arrive pas. Je ne doit pas m'y prendre comme il faut. :(

Quand je met, dans mon script login, ma variable pseudo en static, est ce que je doit du coup supprimer l'autre variable pseudo dans mon script de scène? doit elle être unique ou fait on référence à cette variable pseudo du login dans le script de scène?

Je joins un fichier d'exemple que j'ai fait pour essayer de comprendre ;)
Pièces jointes
Load.rar
Load
(4.88 Kio) Téléchargé 164 fois
Image

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: Application.LoadLevel

Message par giyomuSan » 23 Mai 2010 13:16

ta var static doit etre unique et de tte facon elle pourra pas s instancier en static,

ce que tu peu faire c la remplir avec un autre variable qui recup ton pseudo , cette variable elle sera detruite qd tu load mais la static aura toujours la valeur que tu lui a passer ds l'autre scene.

Avatar de l’utilisateur
Freelax
Messages : 1595
Inscription : 30 Déc 2009 23:02
Localisation : Niort
Contact :

Re: Application.LoadLevel

Message par Freelax » 23 Mai 2010 13:35

Ok je comprend ce que tu m'explique mais j'arrive pas à le mettre en place : :(

dans l'ordre je fait comme ca :

-> dans login.cs je crée un variable 'PseudoSTATIC' (public static string PseudoSTATIC;)
-> dans scene.cs je crée une variable 'pseudo' (public string pseudo = PseudoSTATIC;)
-> j'affiche dans scene.cs ma variable 'pseudo' dans un textField.

mais j'obtiens ca : The name `PseudoSTATIC' does not exist in the current context :oops:
Image

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: Application.LoadLevel

Message par giyomuSan » 24 Mai 2010 00:37

ds unity tu va acceder a ta pseudoStatic comme ca >> Login.pseudoStatic

la ton message d erreur me fait penser que tu essaye d y acceder simplemnet en ecrivant pseudoStatic

regarde c un example con >>

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class sta1 : MonoBehaviour {

	public static int testStatic = 10;

	// Use this for initialization
	void Start () 
	{
		print(testStatic);
	}
	
	// Update is called once per frame
	void Update () {
		
		if(Input.GetKeyDown(KeyCode.A))
			Application.LoadLevel("static2");
	
	}
}

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class sta2 : MonoBehaviour {

	// Use this for initialization
	void Start () {
		
		print(sta1.testStatic += 5);
	
	}
	
	// Update is called once per frame
	void Update () {
		
		if(Input.GetKeyDown(KeyCode.A))
			Application.LoadLevel("static1");
	
	}
}
ici c juste 2 scene et j incremente ma static lorsque je passe ds la scene static2, et ainsi de suite.

je pense que ca devrais fonctionner pareil pour toi ...avec login

Avatar de l’utilisateur
Freelax
Messages : 1595
Inscription : 30 Déc 2009 23:02
Localisation : Niort
Contact :

Re: Application.LoadLevel

Message par Freelax » 24 Mai 2010 13:20

Merci beaucoup de ton aide! ca fonctionne nikel. :D

J'avais jamais utilisé les static, merci pour l'expliquation ;)
Image

Répondre

Revenir vers « Scripting »