add ckg
plantilla base para movimiento básico
This commit is contained in:
201
Assets/Game Kit Controller/Scripts/Menu/openMenuSystem.cs
Normal file
201
Assets/Game Kit Controller/Scripts/Menu/openMenuSystem.cs
Normal file
@@ -0,0 +1,201 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class openMenuSystem : MonoBehaviour
|
||||
{
|
||||
[Header ("Main Settings")]
|
||||
[Space]
|
||||
|
||||
public bool openMenuEnabled;
|
||||
|
||||
public string menuToOpenName;
|
||||
|
||||
public bool openPauseMenu;
|
||||
|
||||
public float openMenuDelay;
|
||||
public float closeMenuDelay;
|
||||
|
||||
public bool pauseEscapeMenuKey = true;
|
||||
|
||||
[Space]
|
||||
[Header ("Other Settings")]
|
||||
[Space]
|
||||
|
||||
public bool useCustomActionOpenMenuSystem;
|
||||
public customActionOpenMenuSystem mainCustomActionOpenMenuSystem;
|
||||
|
||||
[Space]
|
||||
[Header ("Blur Settings")]
|
||||
[Space]
|
||||
|
||||
public bool ignoreBlurMenu;
|
||||
|
||||
[Space]
|
||||
[Header ("Debug")]
|
||||
[Space]
|
||||
|
||||
public bool menuOpened;
|
||||
|
||||
[Space]
|
||||
[Header ("Components")]
|
||||
[Space]
|
||||
|
||||
public menuPause mainMenuPause;
|
||||
|
||||
public GameObject currentPlayer;
|
||||
|
||||
Coroutine menuCoroutine;
|
||||
|
||||
|
||||
public void toggleOpenOrCloseMenu ()
|
||||
{
|
||||
openOrCloseMenu (!menuOpened);
|
||||
}
|
||||
|
||||
public void openMenu ()
|
||||
{
|
||||
openOrCloseMenu (true);
|
||||
}
|
||||
|
||||
public void closeMenu ()
|
||||
{
|
||||
openOrCloseMenu (false);
|
||||
}
|
||||
|
||||
public void closeMenuIfOpened ()
|
||||
{
|
||||
if (menuOpened) {
|
||||
closeMenu ();
|
||||
}
|
||||
}
|
||||
|
||||
public void openOrCloseMenu (bool state)
|
||||
{
|
||||
if (!openMenuEnabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mainMenuPause == null) {
|
||||
getPauseManager ();
|
||||
}
|
||||
|
||||
if (mainMenuPause == null) {
|
||||
print ("WARNING: no player assigned in open menu system, make sure to assign it or send it through events to the " +
|
||||
" function set current player");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
stopOpenOrCloseMenuCoroutine ();
|
||||
|
||||
menuCoroutine = StartCoroutine (openOrCloseMenuCoroutine (state));
|
||||
}
|
||||
|
||||
public void stopOpenOrCloseMenuCoroutine ()
|
||||
{
|
||||
if (menuCoroutine != null) {
|
||||
StopCoroutine (menuCoroutine);
|
||||
}
|
||||
}
|
||||
|
||||
IEnumerator openOrCloseMenuCoroutine (bool state)
|
||||
{
|
||||
menuOpened = state;
|
||||
|
||||
bool checkOpenOrCloseMenuResult = true;
|
||||
|
||||
if (useCustomActionOpenMenuSystem) {
|
||||
if (menuOpened) {
|
||||
WaitForSeconds delay = new WaitForSeconds (openMenuDelay);
|
||||
|
||||
yield return delay;
|
||||
} else {
|
||||
WaitForSeconds delay = new WaitForSeconds (closeMenuDelay);
|
||||
|
||||
yield return delay;
|
||||
}
|
||||
|
||||
mainCustomActionOpenMenuSystem.openOrCloseMenu (state, currentPlayer);
|
||||
|
||||
checkOpenOrCloseMenuResult = false;
|
||||
}
|
||||
|
||||
if (checkOpenOrCloseMenuResult) {
|
||||
|
||||
if (menuOpened) {
|
||||
if (pauseEscapeMenuKey) {
|
||||
mainMenuPause.setPauseGameInputPausedState (true);
|
||||
} else {
|
||||
mainMenuPause.setCurrentOpenMenuSystem (this);
|
||||
}
|
||||
|
||||
mainMenuPause.setChangeBetweenIngameMenuPausedState (true);
|
||||
|
||||
if (ignoreBlurMenu) {
|
||||
mainMenuPause.setIgnoreBlurPanelActiveState (true);
|
||||
}
|
||||
}
|
||||
|
||||
if (menuOpened) {
|
||||
WaitForSeconds delay = new WaitForSeconds (openMenuDelay);
|
||||
|
||||
yield return delay;
|
||||
} else {
|
||||
WaitForSeconds delay = new WaitForSeconds (closeMenuDelay);
|
||||
|
||||
yield return delay;
|
||||
}
|
||||
|
||||
if (!menuOpened) {
|
||||
mainMenuPause.setOpenOrClosePlayerOpenMenuByNamePausedState (false);
|
||||
}
|
||||
|
||||
if (openPauseMenu) {
|
||||
mainMenuPause.openOrClosePauseMenuByName (menuToOpenName, menuOpened);
|
||||
|
||||
mainMenuPause.setOpenOrClosePauseMenuExternallyPausedState (menuOpened);
|
||||
|
||||
mainMenuPause.setPauseScreenWithoutPausingGameState (menuOpened);
|
||||
} else {
|
||||
mainMenuPause.openPlayerOpenMenuByName (menuToOpenName);
|
||||
}
|
||||
|
||||
if (menuOpened) {
|
||||
mainMenuPause.setOpenOrClosePlayerOpenMenuByNamePausedState (true);
|
||||
} else {
|
||||
if (pauseEscapeMenuKey) {
|
||||
mainMenuPause.setPauseGameInputPausedState (false);
|
||||
} else {
|
||||
mainMenuPause.setCurrentOpenMenuSystem (null);
|
||||
}
|
||||
|
||||
mainMenuPause.setChangeBetweenIngameMenuPausedState (false);
|
||||
|
||||
if (ignoreBlurMenu) {
|
||||
mainMenuPause.setIgnoreBlurPanelActiveState (false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setCurrentPlayer (GameObject newPlayer)
|
||||
{
|
||||
if (currentPlayer != newPlayer) {
|
||||
currentPlayer = newPlayer;
|
||||
|
||||
getPauseManager ();
|
||||
}
|
||||
}
|
||||
|
||||
public void getPauseManager ()
|
||||
{
|
||||
if (currentPlayer != null) {
|
||||
playerComponentsManager currentPlayerComponentsManager = currentPlayer.GetComponent<playerComponentsManager> ();
|
||||
|
||||
if (currentPlayerComponentsManager != null) {
|
||||
mainMenuPause = currentPlayerComponentsManager.getPauseManager ();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user