2017-08-15 99 views
1

我目前工作的一個應用程序內購買商店我的遊戲,這是在不同的場景中發現之間傳輸數據。我遇到的問題是,當我點擊一個按鈕,例如像白色的皮膚一個新的皮膚,那一幕會保存數據的「didwhiteskin」的布爾爲真雖然當我加載gamescene它不會保存這些數據,因此不能運行什麼裏面,如果statement.Thank你亞勒幫助,如果需要,我會回答任何問題。統一C#傳遞場景

附加信息:當按鈕上點擊StoreView函數ChoseWhiteSkin()被調用。

繼承人我的代碼:

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

谷歌的前問的問題。這不是一件難事。這個問題最糟糕的部分是它與重複問題具有相同的標題。 – Programmer

回答

2

你可以定義一個全局變量,像這樣所有場景:

public static int didwhiteskin = 0; 

所以,你可以聲明,並在遊戲中你的第一個場景初始化這個變量,然後在您可能創建的任何其他場景中引用它。

+0

我怎麼會讓與if語句變量的工作? – Brownz

+0

想通了謝謝! – Brownz