У меня проблема с моим кодом. Я пытаюсь включить и выключить одно из моих меню с помощью метода setActive и установить для GameObject значение Object PauseMenu. Я использую enum для настройки различных состояний меню, но оно все еще не распознает PauseMenu. Я проверил, что имя правильное и все, но я все еще не могу понять это, поэтому я надеюсь, что один из вас может помочь.
public class OptionsConfig : MonoBehaviour {
public enum MenuPhase
{
CLOSED,
MENU,
INVENTORY
}
public MenuPhase currentPhase;
int CursorPosition;
private static GameObject OptionsPanelCursor;
public static GameObject PauseMenu;
public static GameObject InventoryMenu;
public static bool PauseMenuOpen;
void Start()
{
OptionsPanelCursor = GameObject.Find("OptionsPanelCursor");
InventoryMenu = GameObject.Find("InventoryMenu");
PauseMenu = GameObject.Find("PausePanel");
PauseMenuOpen = false;
//InventoryMenu.SetActive(false);
currentPhase = MenuPhase.CLOSED;
Debug.Log(PauseMenuOpen);
}
// Update is called once per frame
void Update()
{
switch (currentPhase)
{
case (MenuPhase.CLOSED):
if (Input.GetKeyDown(KeyCode.Escape))
{
{
Debug.Log("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
GameObject Character = GameObject.Find("CharacterOverworld");
Character.GetComponent<CharacterController>().enabled = false;
PauseMenu.SetActive(true);
PauseMenuOpen = true;
currentPhase = MenuPhase.MENU;
}
if (PauseMenuOpen == true)
{
GameObject Character = GameObject.Find("CharacterOverworld");
Character.GetComponent<CharacterController>().enabled = true;
PauseMenu.SetActive(false);
PauseMenuOpen = false;
}
}
break;
case (MenuPhase.MENU):
if (Input.GetKeyDown(KeyCode.S))
{
CursorPosition = CursorPosition + 1;
OptionsPanelCursor.transform.Translate(-31.75f, 0.0f, 0.0f);
if (CursorPosition > 6)
{
OptionsPanelCursor.transform.Translate(31.75f, 0.0f, 0.0f);
CursorPosition = 6;
}
}
if (Input.GetKeyDown(KeyCode.W))
{
CursorPosition = CursorPosition - 1;
OptionsPanelCursor.transform.Translate(31.75f, 0.0f, 0.0f);
if (CursorPosition < 0)
{
OptionsPanelCursor.transform.Translate(-31.75f, 0.0f, 0.0f);
CursorPosition = 0;
}
}
if (Input.GetKeyDown(KeyCode.Return))
{
if (CursorPosition == 0 || CursorPosition == -1)
{
InventoryManage();
}
if (CursorPosition == 1)
{
}
if (CursorPosition == 2)
{
}
if (CursorPosition == 3)
{
}
if (CursorPosition == 4)
{
}
if (CursorPosition == 5)
{
}
if (CursorPosition == 6 || CursorPosition == 7)
{
}
}
break;
}
}