//Awake is always called before any Start functions void Awake() { //Check if instance already exists if (instance == null) { //if not, set instance to this instance = this; } //If instance already exists and it's not this: else if (instance != this) { //Then destroy this. This enforces our singleton pattern, meaning there can only ever be one instance of a GameManager. Destroy(gameObject); } loadDatas(); if (b_DesktopInputs && SceneManager.GetActiveScene().buildIndex != 0) // Desktop case. Only if we are not in the main menu Scene { StartCoroutine(changeLockStateLock()); } _backInputs = gameObject.GetComponent <backInputs>(); }
//--> Show Diary public void showDiary(bool b_saveObjPuzzleNotAvailableState) { StartCoroutine(Init()); if (ingameGlobalManager.instance.canvasMobileInputs && ingameGlobalManager.instance.canvasMobileInputs.activeSelf) { ingameGlobalManager.instance.canvasMobileInputs.SetActive(false); } ingameGlobalManager gManager = ingameGlobalManager.instance; gManager.onlyPauseGame(); if (gManager.navigationList.Count > 0 && gManager.navigationList [gManager.navigationList.Count - 1] == "Inventory") { gManager.navigationList.RemoveAt(gManager.navigationList.Count - 1); } gManager.canvasMainMenu.GoToOtherPage(canvasDiary); gManager.navigationList.Add("Diary"); gManager.StartCoroutine(gManager.changeLockStateConfined(true)); gManager.b_AllowCharacterMovment = false; if (gManager.reticule && gManager.reticule.activeSelf && gManager.b_DesktopInputs) { gManager.reticule.SetActive(false); } ingameGlobalManager.instance._joystickReticule.newPosition(Screen.width / 2, Screen.height / 2); if (gManager.reticuleJoystickImage && gManager.b_Joystick) { gManager.reticuleJoystickImage.gameObject.SetActive(true); } if (b_saveObjPuzzleNotAvailableState) { ingameGlobalManager.instance.canvasPlayerInfos.deactivateObjTitle(); ingameGlobalManager.instance.canvasPlayerInfos.deactivateObjPuzzleNotAvailable(); ingameGlobalManager.instance.canvasPlayerInfos.deactivateObjResetPuzzle(); ingameGlobalManager.instance.voiceOverManager.deactivateObSubtitle(); } gManager.canvasPlayerInfos.deactivateIcons(false); //--> Display available actions on screen //ingameGlobalManager.instance.canvasPlayerInfos.displayAvailableActionOnScreen (false, false); ingameGlobalManager.instance.canvasMainMenu.GetComponent <iconsInfoInputs>().displayAvailableActionOnScreen(false, true); ingameGlobalManager.instance.audioMenuClips.playASound(4); // Play sound (Hierarchy : ingameGlobalManager -> audioMenu) if (ingameGlobalManager.instance.canvasPlayerInfos && !ingameGlobalManager.instance.b_Joystick) { ingameGlobalManager.instance.canvasPlayerInfos.gameObject.SetActive(false); } }
public void AP_HideClueUI() { //ingameGlobalManager.instance.canvasPlayerInfos.gameObject.SetActive(true); ingameGlobalManager.instance.canvasPlayerInfos.obj_Grp_InfoPuzzle.SetActive(true); ingameGlobalManager.instance.navigationList.RemoveAt(ingameGlobalManager.instance.navigationList.Count - 1); ingameGlobalManager gManager = ingameGlobalManager.instance; for (var i = 0; i < gManager.canvasMainMenu.List_GroupCanvas.Count; i++) { if (gManager.canvasMainMenu.List_GroupCanvas[i].name == "Game") { gManager.canvasMainMenu.GoToOtherPage(gManager.canvasMainMenu.List_GroupCanvas[i]); break; } } gManager.audioMenuClips.playASound(0); // Play sound (Hierarchy : ingameGlobalManager -> audioMenu) ingameGlobalManager.instance.onlyUnPauseGame(); }
//--> Add an object in the current player Diary private void addEntryToTheDiary() { ingameGlobalManager gManager = ingameGlobalManager.instance; //-> Add the entry in the diary if needed int managerID = index; if (gManager.currentDiary.diaryList [0]._languageSlot [index].showInInventory) { bool result = true; for (var i = 0; i < ingameGlobalManager.instance.currentPlayerDiaryList.Count; i++) { if (index == gManager.currentPlayerDiaryList [i]) { result = false; break; } } if (result) { //--> Display available UI actions on screen gManager.canvasPlayerInfos._infoUI.playAnimInfo(gManager.currentDiary.diaryList [gManager.currentLanguage]._languageSlot [index].diaryTitle[0], "Diary"); gManager.currentPlayerDiaryList.Add(managerID); } } }
public void MMS_GoToOptionsMenu() { ingameGlobalManager gManager = ingameGlobalManager.instance; gManager.audioMenuClips.playASound(0); GameObject tmp = GameObject.Find("Inputs"); if (tmp) { tmp.GetComponent <MM_MenuInputs>().saveInputs(); } // Game Scenes gManager.navigationList.RemoveAt(gManager.navigationList.Count - 1); if (gManager.canvasMainMenu == null) { GameObject canvasMainMenu = GameObject.Find("Canvas_MainMenu"); gManager.canvasMainMenu = canvasMainMenu.GetComponent <Menu_Manager> (); } for (var i = 0; i < gManager.canvasMainMenu.List_GroupCanvas.Count; i++) { if (gManager.canvasMainMenu.List_GroupCanvas [i].name == "OptionsMenu") { gManager.canvasMainMenu.GoToOtherPage(gManager.canvasMainMenu.List_GroupCanvas [i]); break; } } UI_NavigationUIButton(); }
public void ExitFocusMode() { ingameGlobalManager gManager = ingameGlobalManager.instance; if (gManager.currentPuzzle && gManager.currentPuzzle.GetComponent <AP_.DragAndDrop>()) // Deactivate Hand Icons for puzzles using drag and drop script { gManager.currentPuzzle.GetComponent <AP_.DragAndDrop>().initAllSpriteWhenPuzzleIsSolved(); } gManager.navigationList.RemoveAt(gManager.navigationList.Count - 1); if (gManager.currentobjTranslateRotate != null) // Actually focus in drawer or door is activated { gManager.currentobjTranslateRotate.MoveObject(); } else // Actually focus in puzzle is activated { gManager.gameObject.GetComponent <focusCamEffect>().MoveCameraToDefaultPosition(); if (gManager.currentPuzzle) { gManager.currentPuzzle.F_PuzzleInsideDoorOrDrawerExit(null); } } gManager.currentPuzzle = null; gManager.currentFocusedGameObject = null; gManager.b_dragAndDropActivated = false; //--> Display available actions on screen ingameGlobalManager.instance.canvasMainMenu.GetComponent <iconsInfoInputs>().displayAvailableActionOnScreen(false, false); }
private void GoBackFromInGameMultiPageToDiaryUI() { ingameGlobalManager gManager = ingameGlobalManager.instance; gManager.navigationList.RemoveAt(gManager.navigationList.Count - 1); for (var i = 0; i < gManager.canvasMainMenu.List_GroupCanvas.Count; i++) { if (gManager.canvasMainMenu.List_GroupCanvas [i].name == "Diary_All_Entry") { gManager.canvasMainMenu.GoToOtherPage(gManager.canvasMainMenu.List_GroupCanvas [i]); break; } } gManager.audioMenuClips.playASound(0); // Play sound (Hierarchy : ingameGlobalManager -> audioMenu) ingameGlobalManager.instance.canvasMainMenu.GetComponent <iconsInfoInputs>().displayAvailableActionOnScreen(false, true); diaryALLEntry diaryAllEntryManager = GameObject.Find("diaryAllEntryManager").GetComponent <diaryALLEntry> (); if (diaryAllEntryManager && diaryAllEntryManager.nextPageReader) { diaryAllEntryManager.nextPageReader.SetActive(false); } if (diaryAllEntryManager && diaryAllEntryManager.lastPageReader) { diaryAllEntryManager.lastPageReader.SetActive(false); } }
public void joystickCheckIfButtonSelected() { ingameGlobalManager gManager = ingameGlobalManager.instance; if (Mathf.Abs(Input.GetAxisRaw("Horizontal")) == 1 || Mathf.Abs(Input.GetAxisRaw("Vertical")) == 1) { if (gManager.navigationList.Count > 0 && gManager.navigationList[gManager.navigationList.Count - 1] != "Clue") // The player is not in the Clue menu { if (gManager.b_Ingame_Pause || SceneManager.GetActiveScene().buildIndex == 0) { // Game is paused or player are in scene 0 (Scene Main Menu) GameObject tmp = GameObject.Find("EventSystem"); if (tmp) { EventSystem eventSystem = tmp.GetComponent <EventSystem>(); if (eventSystem.currentSelectedGameObject == null && gManager.lastUIButtonSelected != null) { eventSystem.SetSelectedGameObject(gManager.lastUIButtonSelected); } else if (eventSystem.currentSelectedGameObject == null && gManager.canvasMainMenu.eventSysFirstSelectedGameObject) { eventSystem.SetSelectedGameObject(gManager.canvasMainMenu.eventSysFirstSelectedGameObject); } } } } } }
private void GoBackFromInGameMultiPageToGame() { ingameGlobalManager gManager = ingameGlobalManager.instance; gManager.navigationList.RemoveAt(gManager.navigationList.Count - 1); gManager.canvasPlayerInfos.hideMultiPage(); //--> Display available actions on screen if (!gManager.b_focusModeIsActivated) { ingameGlobalManager.instance.canvasMainMenu.GetComponent <iconsInfoInputs>().displayAvailableActionOnScreen(false, false); } else { ingameGlobalManager.instance.canvasMainMenu.GetComponent <iconsInfoInputs>().displayAvailableActionOnScreen(false, true); if (gManager.b_Joystick && gManager.reticuleJoystickImage && !gManager.reticuleJoystickImage.gameObject.activeSelf) { gManager._joystickReticule.newPosition(Screen.width / 2, Screen.height / 2); gManager.reticuleJoystickImage.gameObject.SetActive(true); } } ingameGlobalManager.instance.canvasPlayerInfos.activateObjTitle(); ingameGlobalManager.instance.canvasPlayerInfos.activateObjPuzzleNotAvailable(); ingameGlobalManager.instance.canvasPlayerInfos.activateObjResetPuzzle(); ingameGlobalManager.instance.voiceOverManager.activateObSubtitle(); //if (gManager.reticuleJoystickImage && gManager.b_Joystick) // gManager.reticuleJoystickImage.gameObject.SetActive(false); if (gManager.reticuleJoystickImage && ingameGlobalManager.instance.currentPuzzle && !ingameGlobalManager.instance.currentPuzzle.GetComponent <focusOnly>() && ingameGlobalManager.instance.b_Joystick) { if (!ingameGlobalManager.instance.canvasPlayerInfos.b_rememberLastState) { gManager.reticuleJoystickImage.gameObject.SetActive(true); } else { gManager.reticuleJoystickImage.gameObject.SetActive(false); } } //-> Focus in a wardrobe or drawer else if (ingameGlobalManager.instance.currentobjTranslateRotate != null && ingameGlobalManager.instance.b_DesktopInputs && ingameGlobalManager.instance.b_Joystick) { gManager.reticuleJoystickImage.gameObject.SetActive(true); } else { gManager.reticuleJoystickImage.gameObject.SetActive(false); } gManager.audioMenuClips.playASound(0); // Play sound (Hierarchy : ingameGlobalManager -> audioMenu) gManager.onlyUnPauseGame(); }
//--> Show selected Multi page public void showDiaryMultiPages() { ingameGlobalManager gManager = ingameGlobalManager.instance; gManager.navigationList.RemoveAt(gManager.navigationList.Count - 1); gManager.canvasMainMenu.GoToOtherPage(canvasDiary); //--> Display available actions on screen //ingameGlobalManager.instance.canvasPlayerInfos.displayAvailableActionOnScreen (false, true); ingameGlobalManager.instance.canvasMainMenu.GetComponent <iconsInfoInputs>().displayAvailableActionOnScreen(false, true); }
// Update is called once per frame void Update() { if (ingameGlobalManager.instance.eventSys == null) { GameObject tmpEventSys = GameObject.Find("EventSystem"); if (tmpEventSys) { ingameGlobalManager.instance.eventSys = tmpEventSys.GetComponent <EventSystem>(); } } ingameGlobalManager gManager = ingameGlobalManager.instance; if (gManager.b_InputIsActivated) { if (!gManager.b_DesktopInputs && fingerMovement) { b_doubleTap = fingerMovement.checkDoubleTap(); } //-> Back Inputs in scene name Main Menu if (SceneManager.GetActiveScene().buildIndex == 0) { SceneMainMenu(); } //-> Back Inputs in the other scenes (Game scenes) else { SceneExceptMainMenu(); } b_doubleTap = false; // Init double Tap joystickCheckIfButtonSelected(); // Reactivate mouse inside Menu if the gamepad is activated if (Input.GetAxis("Mouse X") > .5f || Input.GetAxis("Mouse Y") > .5f) // Mouse is moving { if (gManager.navigationList.Count > 0 && gManager.navigationList[0] == "MainMenuManager" && gManager.b_Joystick && gManager.b_DesktopInputs && Cursor.visible == false) { //Debug.Log("Mouse is Moving"); Cursor.visible = true; gManager.canvasMainMenu.GetComponent <GraphicRaycaster>().enabled = true; } } } }
//--> Manage Inputs public void manageDesktopInputs() { ingameGlobalManager gManager = ingameGlobalManager.instance; if (Input.GetKeyDown(ingameGlobalManager.instance.inputListOfStringKeyboardButton[inventoryButtonDesktop]) && !gManager.b_Joystick || // Keyboard Inventory Button : Default I Input.GetKeyDown(ingameGlobalManager.instance.inputListOfStringGamepadButton[inventoryButtonJoystick]) && gManager.b_Joystick) // Joystick Inventory Button //-> Main Menu is activated { if (gManager.navigationList.Count > 0 && gManager.navigationList [0] == "MainMenuManager") { // anything to do } //-> Hide 3D Viewer else if (gManager.navigationList.Count > 0 && gManager.navigationList [gManager.navigationList.Count - 1] == "InventoryViewer3D" && (!Input.GetKeyDown(ingameGlobalManager.instance.inputListOfStringGamepadButton[inventoryButtonJoystick]) && gManager.b_Joystick || !Input.GetKeyDown(ingameGlobalManager.instance.inputListOfStringKeyboardButton[inventoryButtonDesktop]) && !gManager.b_Joystick)) { Hide3DViewer(); } //-> Show Diary else if (gManager.navigationList.Count == 0 || gManager.navigationList [gManager.navigationList.Count - 1] != "Inventory" && gManager.navigationList [gManager.navigationList.Count - 1] != "Viewer3D" && gManager.navigationList [gManager.navigationList.Count - 1] != "MultiPages" && gManager.navigationList [gManager.navigationList.Count - 1] != "DiaryMultiPages" && gManager.navigationList[gManager.navigationList.Count - 1] != "InventoryViewer3D") { if (gManager.navigationList.Count > 0 && gManager.navigationList[gManager.navigationList.Count - 1] == "Diary" /*|| * gManager.navigationList.Count > 0 && gManager.navigationList[gManager.navigationList.Count - 1] == "InventoryViewer3D"*/) { showInventory(false); } else { showInventory(true); } } //-> Hide Diary (go back to game) else if (gManager.navigationList.Count > 0 && gManager.navigationList [gManager.navigationList.Count - 1] == "Inventory") { HideInventory(); } } }
public void displayUIInfo(string newText) { //-> Display feedback info ingameGlobalManager gManager = ingameGlobalManager.instance; if (b_feedbackActivated && gManager.canvasPlayerInfos._infoUI) { if (!gManager.canvasPlayerInfos.txt3DViewer.gameObject.activeSelf) { gManager.canvasPlayerInfos.txt3DViewer.gameObject.SetActive(true); } gManager.canvasPlayerInfos.txt3DViewer.text = newText; } }
//--> Detect if if a puzzle object is under the fake joystick reticule public bool F_detectPuzzleObject(LayerMask myLayer, ingameGlobalManager _ingameManager, int validationButtonJoystick) { //-> Joystick Case if (_ingameManager.canvasPlayerInfos && _ingameManager.canvasPlayerInfos.ReticuleJoystick && _ingameManager.b_Joystick && _ingameManager.b_DesktopInputs && _ingameManager.navigationList.Count > 0 && _ingameManager.navigationList[ingameGlobalManager.instance.navigationList.Count - 1] == "Focus") { return(joystickCheckPuzzleObject(myLayer, _ingameManager.canvasPlayerInfos.ReticuleJoystick, _ingameManager, validationButtonJoystick)); } return(false); }
IEnumerator UI_Nav() { ingameGlobalManager gManager = ingameGlobalManager.instance; yield return(new WaitForEndOfFrame()); GameObject tmp = GameObject.Find("EventSystem"); EventSystem eventSystem = tmp.GetComponent <EventSystem> (); if (eventSystem) { gManager.lastUIButtonSelected = gManager.navigationButtonList [gManager.navigationButtonList.Count - 1]; eventSystem.SetSelectedGameObject(gManager.lastUIButtonSelected); } gManager.navigationButtonList.RemoveAt(gManager.navigationButtonList.Count - 1); }
//--> Check SteamVR public Transform SteamVRCheckClick(ingameGlobalManager _ingameManager) { Hand[] hands = Player.instance.GetComponentsInChildren <Hand>(); foreach (Hand hand in hands) { if (hand.hoveringInteractable != null && hand.hoveringInteractable.gameObject.CompareTag("PuzzleObject")) { if (_ingameManager.GetSteamVRValidate()) { return(hand.hoveringInteractable.transform); } } } return(null); }
public void SceneMainMenu() { ingameGlobalManager gManager = ingameGlobalManager.instance; if (Input.GetKeyDown(ingameGlobalManager.instance.inputListOfStringKeyboardButton[backButtonDesktop]) || // Keyboard Back Button : Default Escape Input.GetKeyDown(gManager.inputListOfStringGamepadButton[backButtonJoystick]) || ingameGlobalManager.instance.GetSteamVRBackDown() || b_doubleTap) // Joystick back button { if (gManager.navigationList.Count > 0 && (gManager.navigationList [gManager.navigationList.Count - 1] == "Credit" || gManager.navigationList [gManager.navigationList.Count - 1] == "Options" || gManager.navigationList [gManager.navigationList.Count - 1] == "SaveOrLoad" || gManager.navigationList [gManager.navigationList.Count - 1] == "AreYouSure")) { //-> Go to Main Menu MMS_GoToMainMenu(); } if (gManager.navigationList.Count > 0 && (gManager.navigationList [gManager.navigationList.Count - 1] == "SlotAlreadyExist")) { //-> Go to Main Menu MMS_GoToNewGame(); } if (gManager.navigationList.Count > 0 && (gManager.navigationList [gManager.navigationList.Count - 1] == "Inputs" || gManager.navigationList [gManager.navigationList.Count - 1] == "Quality" || gManager.navigationList [gManager.navigationList.Count - 1] == "MenuAudio" || gManager.navigationList [gManager.navigationList.Count - 1] == "GameOptions")) { if (gManager.navigationList [gManager.navigationList.Count - 1] == "Inputs") { GameObject inputsManager = GameObject.Find("InputsManager"); if (inputsManager) { inputsManager.GetComponent <MM_MenuInputs>().saveInputs(); } } //-> Go to Main Menu MMS_GoToOptionsMenu(); } } }
/*public void AP_ButtonClue() * { * ingameGlobalManager.instance.ingameGlobalManager.instance.currentPuzzle.GetComponent<conditionsToAccessThePuzzle>().objClueBox.displayClue(); * }*/ public void AP_DisplayClueUI() { #region ingameGlobalManager gManager = ingameGlobalManager.instance; gManager.onlyPauseGame(); gManager.currentPuzzle.GetComponent <conditionsToAccessThePuzzle>().objClueBox.displayClueWithItsNumber(0); // Display the first clue; //gManager.lastUIButtonSelected = null; gManager.canvasMainMenu.GoToOtherPageWithHisNumber(12); // Clue Window gManager.navigationList.Add("Clue"); gManager.StartCoroutine(gManager.changeLockStateConfined(true)); gManager.b_AllowCharacterMovment = false; if (gManager.reticule && gManager.reticule.activeSelf && gManager.b_DesktopInputs) { gManager.reticule.SetActive(false); } ingameGlobalManager.instance._joystickReticule.newPosition(Screen.width / 2, Screen.height / 2); if (gManager.reticuleJoystickImage && gManager.b_Joystick) { gManager.reticuleJoystickImage.gameObject.SetActive(true); } //ingameGlobalManager.instance.canvasPlayerInfos.gameObject.SetActive(false); ingameGlobalManager.instance.canvasPlayerInfos.obj_Grp_InfoPuzzle.SetActive(false); gManager.canvasPlayerInfos.deactivateIcons(false); ingameGlobalManager.instance.canvasMainMenu.GetComponent <iconsInfoInputs>().displayAvailableActionOnScreen(false, false); gManager.audioMenuClips.playASound(5); // Play sound (Hierarchy : ingameGlobalManager -> audioMenu) ingameGlobalManager.instance.canvasMainMenu.GetComponent <iconsInfoInputs>().displayAvailableActionOnScreen(false, true); #endregion }
//--> Manage Inputs public void manageDesktopInputs() { ingameGlobalManager gManager = ingameGlobalManager.instance; if (Input.GetKeyDown(ingameGlobalManager.instance.inputListOfStringKeyboardButton[diaryButtonDesktop]) && !gManager.b_Joystick || // Keyboard Diary Button : Default J Input.GetKeyDown(ingameGlobalManager.instance.inputListOfStringGamepadButton[diaryButtonJoystick]) && gManager.b_Joystick) // Joystick Diary Button { if (gManager.navigationList.Count > 0 && gManager.navigationList [0] == "MainMenuManager") { // anything to do } else if (gManager.navigationList.Count > 0 && gManager.navigationList [gManager.navigationList.Count - 1] == "DiaryMultiPages") { showDiaryMultiPages(); } //-> Show Diary else if (gManager.navigationList.Count == 0 || gManager.navigationList [gManager.navigationList.Count - 1] != "Diary" && gManager.navigationList [gManager.navigationList.Count - 1] != "Viewer3D" && gManager.navigationList [gManager.navigationList.Count - 1] != "MultiPages" && gManager.navigationList [gManager.navigationList.Count - 1] != "InventoryViewer3D") { // gManager.canvasPlayerInfos.displayAvailableActionOnScreen(false, true); ingameGlobalManager.instance.canvasMainMenu.GetComponent <iconsInfoInputs>().displayAvailableActionOnScreen(false, true); if (gManager.navigationList.Count > 0 && gManager.navigationList[gManager.navigationList.Count - 1] == "Inventory") { showDiary(false); } else { showDiary(true); } } //-> Hide Diary (go back to game) else if (gManager.navigationList.Count > 0 && gManager.navigationList [gManager.navigationList.Count - 1] == "Diary") { HideDiary(); } } }
//--> Hide Viewer 3D public void Hide3DViewer() { ingameGlobalManager gManager = ingameGlobalManager.instance; gManager.navigationList.RemoveAt(gManager.navigationList.Count - 1); if (_investigationCam.gameObject) { _investigationCam.clearInvestigateView(); } if (blackScreen) { blackScreen.SetActive(false); } Cursor.visible = true; ingameGlobalManager.instance.b_currentCursorVisibility = Cursor.visible; gManager.audioMenuClips.playASound(0); // Play sound (Hierarchy : ingameGlobalManager -> audioMenu) ingameGlobalManager.instance.canvasMainMenu.GetComponent <iconsInfoInputs>().displayAvailableActionOnScreen(false, true); }
//--> WHen the puzzle start the first time, an UI Info is displayed on screen public void displayUIInfo() { //-> Display feedback info ingameGlobalManager gManager = ingameGlobalManager.instance; if (b_feedbackActivated && gManager.canvasPlayerInfos._infoUI) { bool b_Exist = false; for (var i = 0; i < gManager.canvasPlayerInfos._infoUI.listRefGameObject.Count; i++) { if (gameObject == gManager.canvasPlayerInfos._infoUI.listRefGameObject[i]) { b_Exist = true; } } if (!b_Exist) { gManager.canvasPlayerInfos._infoUI.playAnimInfo(gManager.currentFeedback.diaryList[gManager.currentLanguage]._languageSlot[feedbackIDList[0].ID].diaryTitle[0], "Feedback", gameObject); } } }
public Transform F_detectPuzzleClick(LayerMask myLayer, ingameGlobalManager _ingameManager, int validationButtonJoystick) { //-> Joystick Case if (_ingameManager.canvasPlayerInfos.ReticuleJoystick && _ingameManager.b_Joystick && _ingameManager.b_DesktopInputs) { return(joystickCheckClick(myLayer, _ingameManager.canvasPlayerInfos.ReticuleJoystick, _ingameManager, validationButtonJoystick)); } else if (_ingameManager.isSteamVR()) { return(SteamVRCheckClick(_ingameManager)); } //-> Keyboard Case else if (!_ingameManager.b_Joystick && _ingameManager.b_DesktopInputs) { return(keyboardCheckClick(myLayer)); } //-> Mobile case else { return(MobileCheckClick(myLayer)); } }
void F_AccessInputs() { ingameGlobalManager gManager = ingameGlobalManager.instance; // Access the 1st Gamepad Float float newF = gManager.inputListOfFloatGamepadButton[0]; // Access the 1st Keyboard Float newF = gManager.inputListOfFloatKeyboardButton[0]; // Access the 1st Gamepad boolean bool newB = gManager.inputListOfBoolGamepadButton[0]; // Access the 1st Keyboard boolean newB = gManager.inputListOfBoolKeyboardButton[0]; // Access the 1st Gamepad Axis if (Input.GetKeyDown(gManager.inputListOfStringGamepadAxis[0])) { } // Access the 1st Keyboard Axis if (Input.GetKeyDown(gManager.inputListOfStringKeyboardAxis[0])) { } // Access the 1st Gamepad Button if (Input.GetKeyDown(gManager.inputListOfStringGamepadButton[0])) { } // Access the 1st Keyboard Button if (Input.GetKeyDown(gManager.inputListOfStringKeyboardButton[0])) { } }
//-> Go back from 3D Viewer to game private void GoBackFrom3DViewerToGame() { ingameGlobalManager gManager = ingameGlobalManager.instance; gManager.navigationList.RemoveAt(gManager.navigationList.Count - 1); gManager.canvasPlayerInfos.hideViewer(); //--> Display available actions on screen if (!gManager.b_focusModeIsActivated) { //gManager.canvasPlayerInfos.displayAvailableActionOnScreen (false, false); ingameGlobalManager.instance.canvasMainMenu.GetComponent <iconsInfoInputs>().displayAvailableActionOnScreen(false, false); } else { //gManager.canvasPlayerInfos.displayAvailableActionOnScreen (false, true); ingameGlobalManager.instance.canvasMainMenu.GetComponent <iconsInfoInputs>().displayAvailableActionOnScreen(false, true); if (gManager.b_Joystick && gManager.reticuleJoystickImage && !gManager.reticuleJoystickImage.gameObject.activeSelf) { gManager._joystickReticule.newPosition(Screen.width / 2, Screen.height / 2); gManager.reticuleJoystickImage.gameObject.SetActive(true); } } gManager.audioMenuClips.playASound(0); // Play sound (Hierarchy : ingameGlobalManager -> audioMenu) if (gManager.canvasPlayerInfos.txt3DViewer) { gManager.canvasPlayerInfos.txt3DViewer.text = ""; } //ingameGlobalManager.instance.canvasPlayerInfos.activateObjTitle(); ingameGlobalManager.instance.canvasPlayerInfos.activateObjPuzzleNotAvailable(); ingameGlobalManager.instance.canvasPlayerInfos.activateObjResetPuzzle(); ingameGlobalManager.instance.voiceOverManager.activateObSubtitle(); gManager.onlyUnPauseGame(); }
//--> Check if the puzzle is locked or not public void checkIfPuzzleIsAvailable() { if (checkIfNeededObjectAreInTheInventory() && // Objects needed are available in the inventory callMethods.Call_A_Method_Only_Boolean(methodsList) && // all the custom method return true iconResetPuzzle && !_actionsWhenPuzzleIsSolved.returnactionsWhenPuzzleIsSolved() || ingameGlobalManager.instance._D) // Debug Mode Activated { if (!b_OnlyFocus && !b_Generic) // It is a puzzle { iconResetPuzzle.SetActive(true); if (iconPuzzleClue && objClueBox != null) { iconPuzzleClue.SetActive(true); } } DeactivateObjectInTheInvenetoryViewer(); b_PuzzleIsActivated = true; } else if ((!checkIfNeededObjectAreInTheInventory() || // Objects needed are not available in the inventory !callMethods.Call_A_Method_Only_Boolean(methodsList)) && // A custom method return false iconPuzzleNotAvailable && ingameGlobalManager.instance.b_focusModeIsActivated) { iconPuzzleNotAvailable.SetActive(true); // Activate an image to say that the puzzle is not available b_PuzzleIsActivated = false; //-> Display feedback info ingameGlobalManager gManager = ingameGlobalManager.instance; if (b_feedbackActivated && gManager.canvasPlayerInfos._infoUI) { bool b_Exist = false; for (var i = 0; i < gManager.canvasPlayerInfos._infoUI.listRefGameObject.Count; i++) { if (gameObject == gManager.canvasPlayerInfos._infoUI.listRefGameObject[i]) { b_Exist = true; } } if (!b_Exist) { gManager.canvasPlayerInfos._infoUI.playAnimInfo(gManager.currentFeedback.diaryList[gManager.currentLanguage]._languageSlot[feedbackIDList[0].ID].diaryTitle[0], "Feedback", gameObject); } } } if (!b_OnlyFocus && !b_Generic) { if (iconMobile_ExitPuzzle && !ingameGlobalManager.instance.b_DesktopInputs) { iconMobile_ExitPuzzle.SetActive(true); } } if (b_Generic) { //Debug.Log("Here"); GetComponent <AP_Generic>().AP_Actions(); } }
//--> Check Joystick Click public Transform joystickCheckClick(LayerMask myLayer, Transform ReticuleJoystick, ingameGlobalManager _ingameManager, int validationButtonJoystick) { Ray ray = Camera.main.ScreenPointToRay(new Vector3(ReticuleJoystick.position.x, ReticuleJoystick.position.y, 0)); RaycastHit hit; if (Physics.Raycast(ray, out hit, 100, myLayer)) { if (hit.transform.gameObject.CompareTag("PuzzleObject")) { if (Input.GetKeyDown(_ingameManager.inputListOfStringGamepadButton[validationButtonJoystick])) { return(hit.transform); } } } return(null); }
public bool joystickCheckPuzzleObject(LayerMask myLayer, Transform ReticuleJoystick, ingameGlobalManager _ingameManager, int validationButtonJoystick) { if (Camera.main && ReticuleJoystick) { Ray ray = Camera.main.ScreenPointToRay(new Vector3(ReticuleJoystick.position.x, ReticuleJoystick.position.y, 0)); RaycastHit hit; if (Physics.Raycast(ray, out hit, 100, myLayer)) { if (hit.transform.gameObject.CompareTag("PuzzleObject")) { return(true); } } } return(false); }
//--> Use for GamObjects with the tag Item : Display 3D viewer or the multi page viewer public void VisualizeGameobject() { ingameGlobalManager gManager = ingameGlobalManager.instance; //-> Check if a voice need to be played if (objRef.GetComponent <VoiceProperties> () && objRef.GetComponent <VoiceProperties> ().textList == gManager.currentDiary) { variousVoiceOverMethods = new variousVoiceOverMethods(); variousVoiceOverMethods.voiceOver(objRef); } gManager.GetComponent <mobileInputsFingerMovement> ().initDoubleTap(); //-> Display 3D Viewer if (gManager.cameraViewer3D) { //-> Type : Object 3D Viewer //Debug.Log(objRef.name); if (objRef.GetComponent <TextProperties>().textList == gManager.currentInventory) { if (gManager.currentInventory.diaryList [0]._languageSlot [index].itemType == 0) { //-> Add the object in the inventory if needed addEntryToTheInventory(); //-> Activated the 3D viewer Camera gManager.cameraViewer3D.gameObject.SetActive(true); //-> If a no prefab is saved for this object in w_Inventory, the gameObject selected in scene view is used. GameObject tmpObj = objRef; //-> If a prefab is saved for this object in w_Inventory, the prefab is displayed on screen. if (gManager.currentInventory.diaryList [0]._languageSlot [index].refGameObject != null) { objRef = gManager.currentInventory.diaryList [0]._languageSlot [index].refGameObject; } //-> Create the visualization in the 3D viewer gManager.cameraViewer3D.newObjectToInvestigate( objRef, gManager.currentInventory.diaryList [0]._languageSlot [index].prefabSizeInViewer, gManager.currentInventory.diaryList [0]._languageSlot [index].prefabRotationInViewer, true, false ); if (gManager.canvasPlayerInfos.txt3DViewer) { if (!gManager.canvasPlayerInfos.txt3DViewer.gameObject.activeSelf) { gManager.canvasPlayerInfos.txt3DViewer.gameObject.SetActive(true); } gManager.canvasPlayerInfos.txt3DViewer.text = gManager.currentInventory.diaryList [gManager.currentLanguage]._languageSlot [index].diaryTitle [0]; } //-> Deactivate the gameObject and his children selected in scene view. tmpObj.GetComponent <Renderer> ().enabled = false; Transform[] children = tmpObj.GetComponentsInChildren <Transform> (); foreach (Transform child in children) { if (child.gameObject.GetComponent <Renderer> ()) { child.gameObject.GetComponent <Renderer> ().enabled = false; } else { child.gameObject.SetActive(false); } } if (gManager.canvasPlayerInfos) { //-> Deactivate intractions icons on screen gManager.canvasPlayerInfos.deactivateIcons(false); //-> Deactivate Mobile Inputs if (gManager.canvasMobileInputs && gManager.canvasMobileInputs.activeSelf) { gManager.canvasMobileInputs.SetActive(false); } //-> Deactivate reticule if (gManager.reticule && gManager.reticule.activeSelf && gManager.b_DesktopInputs) { gManager.reticule.SetActive(false); } //-> Change Lock state to Confined gManager.StartCoroutine(gManager.changeLockStateConfined(false)); //-> Update the navigation List gManager.navigationList.Add("Viewer3D"); //--> Display available UI actions on screen //gManager.canvasPlayerInfos.displayAvailableActionOnScreen (true, true); gManager.canvasMainMenu.GetComponent <iconsInfoInputs>().displayAvailableActionOnScreen(true, true); gManager.audioMenuClips.playASound(2); // Play sound (Hierarchy : ingameGlobalManager -> audioMenu) } } } //-> Type Multi Page else { if (gManager.canvasMainMenu) { CanvasGroup Game_ObjectReader = null; //-> open the reader interface for (var i = 0; i < gManager.canvasMainMenu.List_GroupCanvas.Count; i++) { if (gManager.canvasMainMenu.List_GroupCanvas [i].name == "Game_ObjectReader") { Game_ObjectReader = gManager.canvasMainMenu.List_GroupCanvas [i]; break; } } if (Game_ObjectReader) { //-> Add the object in the diary if needed TextList currentTextList = gManager.currentInventory; if (objRef.GetComponent <TextProperties> ().textList == gManager.currentDiary) { addEntryToTheDiary(); currentTextList = gManager.currentDiary; } ingameGlobalManager.instance._joystickReticule.newPosition(Screen.width / 2, Screen.height / 2); if (gManager.reticuleJoystickImage && gManager.b_Joystick) { gManager.reticuleJoystickImage.gameObject.SetActive(true); } //-> Deactivate charcter movement gManager.b_AllowCharacterMovment = false; //-> Show diary entry in the scene view gManager.Game_ObjectReader.showDiaryEntry(index, currentTextList); gManager.canvasMainMenu.GoToOtherPage(Game_ObjectReader); //-> Enable to move the mouse on screen to select an item when focus is activated gManager.StartCoroutine(gManager.changeLockStateConfined(true)); } //-> Deactivate the gameObject and his children selected in scene view. objRef.GetComponent <Renderer>().enabled = false; Transform[] children = objRef.GetComponentsInChildren <Transform> (); foreach (Transform child in children) { if (child.gameObject.GetComponent <Renderer> ()) { child.gameObject.GetComponent <Renderer> ().enabled = false; } } if (gManager.canvasPlayerInfos) { //-> deactivate UI Icons gManager.canvasPlayerInfos.deactivateIcons(false); //-> Deactivate Mobile Inputs if (gManager.canvasMobileInputs && gManager.canvasMobileInputs.activeSelf) { gManager.canvasMobileInputs.SetActive(false); } //-> Deactivate the reticule if (gManager.reticule && gManager.reticule.activeSelf && gManager.b_DesktopInputs) { gManager.reticule.SetActive(false); } } //-> Update the navigation List gManager.navigationList.Add("MultiPages"); //--> Display available UI actions on screen //gManager.canvasPlayerInfos.displayAvailableActionOnScreen (false, true); gManager.canvasMainMenu.GetComponent <iconsInfoInputs>().displayAvailableActionOnScreen(false, true); gManager.audioMenuClips.playASound(3); // Play sound (Hierarchy : ingameGlobalManager -> audioMenu) } } } else { Debug.Log("Info : You need to connect cameraShowObject to the ingameGlobalManager"); } }
public void HideMainMenu() { if (ingameGlobalManager.instance.canvasMobileInputs && !ingameGlobalManager.instance.canvasMobileInputs.activeSelf && !ingameGlobalManager.instance.b_DesktopInputs) { ingameGlobalManager.instance.canvasMobileInputs.SetActive(true); } GameObject mainMenuManager = GameObject.Find("MainMenuManager"); if (mainMenuManager) { if (mainMenuManager.GetComponent <MainMenu> ().txtValidation) { mainMenuManager.GetComponent <MainMenu> ().txtValidation.text = ""; } } ingameGlobalManager.instance.canvasPlayerInfos.gameObject.SetActive(true); //--> Display available actions on screen ingameGlobalManager.instance.canvasPlayerInfos.displayAvailableActionOnScreen(false, "MainMenu"); ingameGlobalManager gManager = ingameGlobalManager.instance; gManager.StartCoroutine(gManager.changeLockStateLock()); gManager.b_AllowCharacterMovment = true; if (gManager.reticule && !gManager.reticule.activeSelf && gManager.b_DesktopInputs) { gManager.reticule.SetActive(true); } gManager.navigationList.RemoveAt(gManager.navigationList.Count - 1); // Deactivate mouse cursor if gamepad is selected if (gManager.b_Joystick && gManager.b_DesktopInputs && Cursor.visible) { Cursor.visible = false; gManager.canvasMainMenu.GetComponent <GraphicRaycaster>().enabled = false; } for (var i = 0; i < gManager.canvasMainMenu.List_GroupCanvas.Count; i++) { if (gManager.canvasMainMenu.List_GroupCanvas [i].name == "Game") { gManager.canvasMainMenu.GoToOtherPage(gManager.canvasMainMenu.List_GroupCanvas [i]); break; } } if (!gManager.canvasPlayerInfos.gameObject.activeSelf) { gManager.canvasPlayerInfos.gameObject.SetActive(true); } gManager.canvasPlayerInfos.activateIcons(); gManager.audioMenuClips.playASound(0); // Play sound (Hierarchy : ingameGlobalManager -> audioMenu) ingameGlobalManager.instance.eventSys.GetComponent <EventSystem> ().SetSelectedGameObject(null); ingameGlobalManager.instance.onlyUnPauseGame(); }
//--> Hide Diary (go back to game) public void HideDiary() { ingameGlobalManager gManager = ingameGlobalManager.instance; gManager.onlyUnPauseGame(); if (ingameGlobalManager.instance.canvasPlayerInfos) { ingameGlobalManager.instance.canvasPlayerInfos.gameObject.SetActive(true); } if (ingameGlobalManager.instance.canvasMobileInputs && !ingameGlobalManager.instance.canvasMobileInputs.activeSelf && !ingameGlobalManager.instance.b_DesktopInputs) { ingameGlobalManager.instance.canvasMobileInputs.SetActive(true); } gManager.canvasMainMenu.GoToOtherPage(canvasGame); gManager.navigationList.RemoveAt(gManager.navigationList.Count - 1); if (gManager.navigationList.Count > 0 && gManager.navigationList [gManager.navigationList.Count - 1] == "Focus") { //Debug.Log("Here"); //Cursor.visible = true; gManager.b_currentCursorVisibility = Cursor.visible; if (gManager.reticule && gManager.reticule.activeSelf && gManager.b_DesktopInputs) { gManager.StartCoroutine(gManager.changeLockStateConfined(true)); gManager.b_AllowCharacterMovment = false; gManager.reticule.SetActive(false); } if (gManager.reticule && gManager.reticule.activeSelf && gManager.b_DesktopInputs) { gManager.reticule.SetActive(false); } if (gManager.reticuleJoystickImage && ingameGlobalManager.instance.currentPuzzle && !ingameGlobalManager.instance.currentPuzzle.GetComponent <focusOnly>() && ingameGlobalManager.instance.b_Joystick) { if (!ingameGlobalManager.instance.canvasPlayerInfos.b_rememberLastState) { gManager.reticuleJoystickImage.gameObject.SetActive(true); } else { gManager.reticuleJoystickImage.gameObject.SetActive(false); } } //-> Focus in a wardrobe or drawer else if (ingameGlobalManager.instance.currentobjTranslateRotate != null && ingameGlobalManager.instance.b_DesktopInputs && ingameGlobalManager.instance.b_Joystick) { gManager._joystickReticule.newPosition(Screen.width / 2, Screen.height / 2); gManager.reticuleJoystickImage.gameObject.SetActive(true); } else { //Debug.Log("Here 2"); gManager.reticuleJoystickImage.gameObject.SetActive(false); } //--> Display available actions on screen //ingameGlobalManager.instance.canvasPlayerInfos.displayAvailableActionOnScreen (false, true); ingameGlobalManager.instance.canvasMainMenu.GetComponent <iconsInfoInputs>().displayAvailableActionOnScreen(false, true); } else { Cursor.visible = true; gManager.b_currentCursorVisibility = Cursor.visible; gManager.StartCoroutine(gManager.changeLockStateLock()); gManager.b_AllowCharacterMovment = true; if (gManager.reticule && !gManager.reticule.activeSelf && gManager.b_DesktopInputs) { gManager.reticule.SetActive(true); } if (gManager.reticuleJoystickImage && gManager.reticuleJoystickImage.gameObject.activeSelf) { gManager.reticuleJoystickImage.gameObject.SetActive(true); } //--> Display available actions on screen //ingameGlobalManager.instance.canvasPlayerInfos.displayAvailableActionOnScreen (false, false); ingameGlobalManager.instance.canvasMainMenu.GetComponent <iconsInfoInputs>().displayAvailableActionOnScreen(false, false); } if (!gManager.canvasPlayerInfos.gameObject.activeSelf) { gManager.canvasPlayerInfos.gameObject.SetActive(true); } gManager.canvasPlayerInfos.activateIcons(); gManager.audioMenuClips.playASound(0); // Play sound (Hierarchy : ingameGlobalManager -> audioMenu) //gManager.canvasPlayerInfos.displayAvailableActionOnScreen(false, false); ingameGlobalManager.instance.canvasMainMenu.GetComponent <iconsInfoInputs>().displayAvailableActionOnScreen(false, false); if (nextPageReader) { nextPageReader.SetActive(false); } if (lastPageReader) { lastPageReader.SetActive(false); } ingameGlobalManager.instance.canvasPlayerInfos.activateObjTitle(); ingameGlobalManager.instance.canvasPlayerInfos.activateObjPuzzleNotAvailable(); ingameGlobalManager.instance.canvasPlayerInfos.activateObjResetPuzzle(); ingameGlobalManager.instance.voiceOverManager.activateObSubtitle(); }