我目前正在为我的游戏开发一个应用内购买商店,该商店位于不同的场景中。我遇到的麻烦就是当我点击一个按钮例如白皮肤这样的新皮肤时,在那个场景中它将保存“didwhiteskin”的bool变为真的数据,尽管当我加载gamescene时它不会保存这些数据因此不要在if语句中运行什么。谢谢你的帮助,如果需要,我会回答任何问题。
附加信息:在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 :(得分:2)
您可以为所有场景定义全局变量,如下所示:
public static int didwhiteskin = 0;
因此,您可以在游戏的第一个场景中声明并初始化此变量,然后在您可能创建的任何其他场景中引用它。