2017-08-15 10 views
1

Je travaille actuellement sur un magasin d'achat intégré pour mon jeu qui se trouve sur une scène différente. Le problème que j'ai est quand je clique sur un bouton par exemple pour une nouvelle peau comme la peau blanche, dans cette scène il sauvera les données que le bool de "didwhiteskin" devient vrai bien que quand je charge la gamescene il ne sauvera pas ces données pas exécuter quoi dans la déclaration if. merci pour votre aide et je répondrai à toutes les questions si nécessaire.Unity C# Passer des données entre les scènes

Informations supplémentaires: La fonction ChoseWhiteSkin() est appelée lorsqu'un bouton a cliqué sur StoreView.

Heres mon code:

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 
using UnityEngine.SceneManagement; 

public class StoreScript : MonoBehaviour { 

    bool didwhiteskin = false; 

    public static StoreScript Instance { 
     get; 
     set; 
    } 

    void Awake() { 
     DontDestroyOnLoad (transform.gameObject); 
     Instance = this; 
    } 

    // Use this for initialization 
    void Start() { 
     Scene currentScene = SceneManager.GetActiveScene(); 
     string sceneName = currentScene.name; 

     if (sceneName == "GameScene") { 
      if (didwhiteskin) { 
       Debug.Log ("this ran"); 
       //This where I will put function to change skin but the issue is the if statement never being ran 
      } 
     } 
     else if (sceneName == "StoreView") { 

     } 
    } 

    // Update is called once per frame 
    void Update() { 

    } 

    public void ChoseWhiteSkin() { 
     PlayerPrefs.Save(); 
     didwhiteskin = true; 
    } 
} 
+0

Posez votre question avant de poser votre question. Ce n'est pas une chose difficile à faire. La pire partie de cette question est qu'elle a le même titre avec la question en double. – Programmer

Répondre

2

Vous pouvez définir une variable globale pour toutes les scènes comme celle-ci:

public static int didwhiteskin = 0; 

vous pouvez donc déclarer et initialiser cette variable dans votre première scène dans le jeu, puis renvoyez-le dans n'importe quelle autre scène que vous créez.

+0

Comment est-ce que je ferais fonctionner cette variable avec l'instruction if? – Brownz

+0

Je l'ai trouvé Merci! – Brownz