【发布时间】:2018-12-17 14:58:48
【问题描述】:
我为我的应用创建了一个设置页面,您可以在其中打开或关闭滑块。 如果打开第一个,则布尔 isMale 设置为 true。如果将其关闭,则布尔 isMale 将设置为 false。 我在另一个页面上使用这个布尔值,我从这个页面得到布尔值。如果 isMale 为真,我将展示一个男模特,而 isMale 的反面是假的。 那部分正在工作。问题是当我回到场景时,所有布尔值都被重置。有什么想法吗?
代码:
using UnityEngine;
using UnityEngine.UI;
public class SettingsScript : MonoBehaviour {
// Mikael Paaske
public static bool isMale;
public static bool showTutorial;
public static bool openInApp;
public GameObject canvas;
public GameObject showSexText;
public GameObject ønskeskyenText;
public GameObject tutorialText;
public Slider changeSexSlider;
public Image backgroundchangeSexSlider;
public Slider changeWebSiteSlider;
public Image backggroundchangeWebSiteSlider;
public Slider changeTutorial;
public Image backgroundchangeTutorial;
public void Start()
{
// Finder alle de nødvendige gameobjekter i scenen
canvas = GameObject.Find("SettingsCanvas");
showSexText = canvas.transform.Find("ShowSexText").gameObject;
ønskeskyenText = canvas.transform.Find("ShowØnskeskyenText").gameObject;
tutorialText = canvas.transform.Find("ShowToturialText").gameObject;
changeSexSlider = GameObject.Find("ChangeSexSlider").GetComponent<Slider>();
backgroundchangeSexSlider = GameObject.FindGameObjectWithTag("background").GetComponent<Image>();
changeWebSiteSlider = GameObject.Find("ØnskeskyenSlider").GetComponent<Slider>();
backggroundchangeWebSiteSlider = GameObject.FindGameObjectWithTag("backgground2").GetComponent<Image>();
changeTutorial = GameObject.Find("TutorialSlider").GetComponent<Slider>();
backgroundchangeTutorial = GameObject.FindGameObjectWithTag("backgground3").GetComponent<Image>();
}
public void Update()
{
// Ændrer farve på gameobjektet alt efter hvilken tekst der står ovenover
if (showSexText.GetComponent<Text>().text == "Kvinde")
{
backgroundchangeSexSlider.color = Color.red;
}
if (tutorialText.GetComponent<Text>().text == "Vis ikke")
{
backgroundchangeTutorial.color = Color.red;
}
if (ønskeskyenText.GetComponent<Text>().text == "Hjemmeside")
{
backggroundchangeWebSiteSlider.color = Color.red;
}
}
public void ChangeSex()
{
// Hvis slider bliver rykket til den ene ende, bliver boolen sat til det modsatte af før
isMale = !isMale;
Debug.Log(isMale);
// Ændrer gameobjektets tekst til det modsatte efter slideren er rykket
if (isMale == true)
{
showSexText.GetComponent<Text>().text = "Mand";
}
else if (isMale == false)
{
showSexText.GetComponent<Text>().text = "Kvinde";
}
}
public void ShowToturial()
{
// Hvis slider bliver rykket til den ene ende, bliver boolen sat til det modsatte af før
showTutorial = !showTutorial;
// Ændrer gameobjektets tekst ud fra boolen er sand eller falsk
if (showTutorial == true)
{
tutorialText.GetComponent<Text>().text = "Vis";
}
else if (showTutorial == false)
{
tutorialText.GetComponent<Text>().text = "Vis ikke";
}
}
public void WishList()
{
// Hvis slider bliver rykket til den ene ende, bliver boolen sat til det modsatte af før
openInApp = !openInApp;
// Ændrer gameobjektets tekst ud fra boolen er sand eller falsk
if (openInApp == true)
{
ønskeskyenText.GetComponent<Text>().text = "App";
}
else if (openInApp == false)
{
ønskeskyenText.GetComponent<Text>().text = "Hjemmeside";
}
}
}
【问题讨论】:
-
数据不会在场景之间持续存在,除非您将其存储在场景之间持续存在的位置:静态类或标有
DontDestroyOnLoad的对象
标签: c# user-interface unity3d