在Unity中创建设置屏幕



如果这是一个简单的问题,我很抱歉,但我正在制作一个在设置屏幕和主UI屏幕之间切换的按钮。我在这里遵循了教程:https://www.youtube.com/watch?v=23p1vFsNvKo&t=500秒非常接近,但当我点击设置按钮时,结果是屏幕之间快速闪烁。我在正确的地方添加了游戏对象,onclick事件显示了正确的功能。我被难住了。非常感谢您的帮助。这是代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ShowSettings : MonoBehaviour
{
//Menu States
public enum MenuStates {Reg, Settings};
public MenuStates currentState;
public GameObject regScreen;
public GameObject settingsScreen;
//When script first starts
void Awake()
{
currentState = MenuStates.Reg;
}
void Update()
{
//Checks Current State
switch(currentState)
{
case MenuStates.Reg:
//Set Active Game Objects for regular Screen
regScreen.SetActive(true);
settingsScreen.SetActive(false);
break;
case MenuStates.Settings:
//Set Active game objects for Settings Screen
regScreen.SetActive(false);
settingsScreen.SetActive(true);
break;
}
}
public void OnSettings()
{
currentState = MenuStates.Settings;
}
public void OnReg()
{
currentState = MenuStates.Reg;
}
}

我的问题已经回答了。对于任何好奇的人来说,这里是更新的代码。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ShowSettings : MonoBehaviour
{
public GameObject regScreen;
public GameObject settingsScreen;
//When script first starts
void Start()
{
OnReg();
}
public void OnSettings()
{
settingsScreen.SetActive(true);
regScreen.SetActive(false);
}
public void OnReg()
{
regScreen.SetActive(true);
settingsScreen.SetActive(false);
}
}

最新更新