using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; public class playerInputPanelSystem : MonoBehaviour { public bool screenActionPanelsEnabled = true; public bool screenActionPanelsActive = true; public List screenActionInfoList = new List (); public List touchPanelsInfoList = new List (); public List touchPanelsSchemesInfoList = new List (); public GameObject screenActionParent; public playerInputManager playerInput; public GameObject inputPanelPrefab; public inputPanelUISystem mainInputPanelUISystem; public bool instantiateInputPanelUIIfNotFound = true; public menuPause pauseManager; touchPanelsSchemesInfo currentTouchPanelsSchemesInfo; touchPanelsSchemesInfo previousTouchPanelsSchemesInfo; screenActionInfo currentScreenActionInfo; screenActionInfo previousScreenActionInfo; bool mainInputPanelUISystemFound; bool panelParentActivePreviously; void getInputPanelUISystem () { if (mainInputPanelUISystem != null) { mainInputPanelUISystemFound = true; } else { if (mainInputPanelUISystem == null) { mainInputPanelUISystem = FindObjectOfType (); } if (mainInputPanelUISystem != null) { mainInputPanelUISystemFound = true; } } if (mainInputPanelUISystemFound) { screenActionInfoList = mainInputPanelUISystem.screenActionInfoList; } } void checkInputPanelUISystem () { if (!mainInputPanelUISystemFound) { bool tutorialFound = false; if (instantiateInputPanelUIIfNotFound) { instantiateInputPanelPrefab (); getInputPanelUISystem (); if (mainInputPanelUISystemFound) { tutorialFound = true; } } if (!tutorialFound) { print ("WARNING: No Input Panel UI system found, make sure to drop it on the scene"); return; } } } public void setInputPanelGameObjectActiveState (bool state) { if (mainInputPanelUISystemFound) { mainInputPanelUISystem.setInputPanelGameObjectActiveState (state); } } //Touch panels functions public List getTouchPanelsList () { return touchPanelsInfoList; } public void enableTouchPanelByName (string panelName) { enableOrDisableTouchPanelByName (panelName, true); } public void disableTouchPanelByName (string panelName) { enableOrDisableTouchPanelByName (panelName, false); } public void enableOrDisableTouchPanelByName (string panelName, bool state) { for (int i = 0; i < touchPanelsInfoList.Count; i++) { if (touchPanelsInfoList [i].Name.Equals (panelName) && touchPanelsInfoList [i].touchPanel.activeSelf != state) { touchPanelsInfoList [i].touchPanel.SetActive (state); } } playerInput.resetButtonStateOnTouchButtonList (); } public void enableTouchPanelSchemeByName (string panelName) { bool isMainGameTouchPanel = false; for (int i = 0; i < touchPanelsSchemesInfoList.Count; i++) { if (touchPanelsSchemesInfoList [i].Name.Equals (panelName)) { if (previousTouchPanelsSchemesInfo != currentTouchPanelsSchemesInfo) { previousTouchPanelsSchemesInfo = currentTouchPanelsSchemesInfo; } currentTouchPanelsSchemesInfo = touchPanelsSchemesInfoList [i]; currentTouchPanelsSchemesInfo.currentTouchPanelScheme = true; for (int j = 0; j < touchPanelsInfoList.Count; j++) { if (currentTouchPanelsSchemesInfo.enabledPanels.Contains (touchPanelsInfoList [j].touchPanel)) { if (!touchPanelsInfoList [j].touchPanel.activeSelf) { touchPanelsInfoList [j].touchPanel.SetActive (true); } } else { if (touchPanelsInfoList [j].touchPanel.activeSelf) { touchPanelsInfoList [j].touchPanel.SetActive (false); } } } if (currentTouchPanelsSchemesInfo.isMainGameTouchPanel) { currentTouchPanelsSchemesInfo.mainGameTouchPanelActive = true; isMainGameTouchPanel = true; } } else { touchPanelsSchemesInfoList [i].currentTouchPanelScheme = false; } } if (isMainGameTouchPanel) { for (int i = 0; i < touchPanelsSchemesInfoList.Count; i++) { if (touchPanelsSchemesInfoList [i].Name != panelName) { if (touchPanelsSchemesInfoList [i].isMainGameTouchPanel) { touchPanelsSchemesInfoList [i].mainGameTouchPanelActive = false; } } } } playerInput.resetButtonStateOnTouchButtonList (); } public void enableCurrentMainTouchPanelScheme () { for (int i = 0; i < touchPanelsSchemesInfoList.Count; i++) { if (touchPanelsSchemesInfoList [i].isMainGameTouchPanel && touchPanelsSchemesInfoList [i].mainGameTouchPanelActive) { enableTouchPanelSchemeByName (touchPanelsSchemesInfoList [i].Name); return; } } } public void enablePreviousTouchPanelScheme () { if (previousTouchPanelsSchemesInfo != null) { enableTouchPanelSchemeByName (previousTouchPanelsSchemesInfo.Name); } } //Action Screen Panels Functions public void enableOrDisableActionScreen (string actionScreenName) { if (canUseActionPanel ()) { checkInputPanelUISystem (); int screenActionInfoListCount = screenActionInfoList.Count; if (screenActionInfoListCount == 0) { return; } for (int i = 0; i < screenActionInfoListCount; i++) { if (screenActionInfoList [i].screenActionName.Equals (actionScreenName)) { if (previousScreenActionInfo != currentScreenActionInfo) { previousScreenActionInfo = currentScreenActionInfo; } currentScreenActionInfo = screenActionInfoList [i]; if (currentScreenActionInfo.screenActionsGameObject != null) { if (currentScreenActionInfo.screenActionsGameObject.activeSelf != (!currentScreenActionInfo.screenActionsGameObject.activeSelf)) { currentScreenActionInfo.screenActionsGameObject.SetActive (!currentScreenActionInfo.screenActionsGameObject.activeSelf); } } if (playerInput.isUsingGamepad ()) { if (currentScreenActionInfo.screenActionsGamepadGameObject != null) { if (currentScreenActionInfo.screenActionsGamepadGameObject.activeSelf != (!currentScreenActionInfo.screenActionsGamepadGameObject.activeSelf)) { currentScreenActionInfo.screenActionsGamepadGameObject.SetActive (!currentScreenActionInfo.screenActionsGamepadGameObject.activeSelf); } } if (currentScreenActionInfo.mainScreenActionGameObject != null && currentScreenActionInfo.mainScreenActionGameObject.activeSelf) { currentScreenActionInfo.mainScreenActionGameObject.SetActive (false); } } else { if (currentScreenActionInfo.mainScreenActionGameObject != null) { if (currentScreenActionInfo.mainScreenActionGameObject.activeSelf != (!currentScreenActionInfo.mainScreenActionGameObject.activeSelf)) { currentScreenActionInfo.mainScreenActionGameObject.SetActive (!currentScreenActionInfo.mainScreenActionGameObject.activeSelf); } } if (currentScreenActionInfo.screenActionsGamepadGameObject != null && currentScreenActionInfo.screenActionsGamepadGameObject.activeSelf) { currentScreenActionInfo.screenActionsGamepadGameObject.SetActive (false); } } return; } } } } public void enableOrDisableActionScreenTemporally (string actionScreenName) { if (canUseActionPanel ()) { checkInputPanelUISystem (); int screenActionInfoListCount = screenActionInfoList.Count; if (screenActionInfoListCount == 0) { return; } for (int i = 0; i < screenActionInfoListCount; i++) { if (screenActionInfoList [i].screenActionName.Equals (actionScreenName)) { if (screenActionInfoList [i].screenActionsGameObject != null) { if (screenActionInfoList [i].screenActionsGameObject.activeSelf != (!screenActionInfoList [i].screenActionsGameObject.activeSelf)) { screenActionInfoList [i].screenActionsGameObject.SetActive (!screenActionInfoList [i].screenActionsGameObject.activeSelf); } } if (playerInput.isUsingGamepad ()) { if (screenActionInfoList [i].screenActionsGamepadGameObject != null) { if (screenActionInfoList [i].screenActionsGamepadGameObject.activeSelf != (!screenActionInfoList [i].screenActionsGamepadGameObject.activeSelf)) { screenActionInfoList [i].screenActionsGamepadGameObject.SetActive (!screenActionInfoList [i].screenActionsGamepadGameObject.activeSelf); } } if (screenActionInfoList [i].mainScreenActionGameObject != null && screenActionInfoList [i].mainScreenActionGameObject.activeSelf) { screenActionInfoList [i].mainScreenActionGameObject.SetActive (false); } } else { if (screenActionInfoList [i].mainScreenActionGameObject != null) { if (screenActionInfoList [i].mainScreenActionGameObject.activeSelf != (!screenActionInfoList [i].mainScreenActionGameObject.activeSelf)) { screenActionInfoList [i].mainScreenActionGameObject.SetActive (!screenActionInfoList [i].mainScreenActionGameObject.activeSelf); } } if (screenActionInfoList [i].screenActionsGamepadGameObject != null && screenActionInfoList [i].screenActionsGamepadGameObject.activeSelf) { screenActionInfoList [i].screenActionsGamepadGameObject.SetActive (false); } } return; } } } } public void enableOrDisableActionScreen (string actionScreenName, bool state) { if (canUseActionPanel ()) { checkInputPanelUISystem (); int screenActionInfoListCount = screenActionInfoList.Count; if (screenActionInfoListCount == 0) { return; } for (int i = 0; i < screenActionInfoListCount; i++) { if (screenActionInfoList [i].screenActionName.Equals (actionScreenName)) { if (previousScreenActionInfo != currentScreenActionInfo) { previousScreenActionInfo = currentScreenActionInfo; } currentScreenActionInfo = screenActionInfoList [i]; if (currentScreenActionInfo.screenActionsGameObject != null && currentScreenActionInfo.screenActionsGameObject.activeSelf != state) { currentScreenActionInfo.screenActionsGameObject.SetActive (state); } if (playerInput.isUsingGamepad ()) { if (currentScreenActionInfo.screenActionsGamepadGameObject != null && currentScreenActionInfo.screenActionsGamepadGameObject != state) { currentScreenActionInfo.screenActionsGamepadGameObject.SetActive (state); } if (currentScreenActionInfo.mainScreenActionGameObject != null && currentScreenActionInfo.mainScreenActionGameObject.activeSelf) { currentScreenActionInfo.mainScreenActionGameObject.SetActive (false); } } else { if (currentScreenActionInfo.mainScreenActionGameObject != null && currentScreenActionInfo.mainScreenActionGameObject.activeSelf != state) { currentScreenActionInfo.mainScreenActionGameObject.SetActive (state); } if (currentScreenActionInfo.screenActionsGamepadGameObject != null && currentScreenActionInfo.screenActionsGamepadGameObject.activeSelf) { currentScreenActionInfo.screenActionsGamepadGameObject.SetActive (false); } } if (state) { if (!screenActionParent.activeSelf) { if (screenActionPanelsActive) { screenActionParent.SetActive (true); } } } if (state) { checkDisableMainGameScreenActionPanel (); } else { checkEnableMainGameScreenActionPanel (); } return; } } } } public void enableActionScreen (string actionScreenName) { if (canUseActionPanel ()) { checkInputPanelUISystem (); int screenActionInfoListCount = screenActionInfoList.Count; if (screenActionInfoListCount == 0) { return; } for (int i = 0; i < screenActionInfoListCount; i++) { if (screenActionInfoList [i].screenActionName.Equals (actionScreenName)) { if (previousScreenActionInfo != currentScreenActionInfo) { previousScreenActionInfo = currentScreenActionInfo; } currentScreenActionInfo = screenActionInfoList [i]; if (currentScreenActionInfo.screenActionsGameObject != null && !currentScreenActionInfo.screenActionsGameObject.activeSelf) { currentScreenActionInfo.screenActionsGameObject.SetActive (true); } if (playerInput.isUsingGamepad ()) { if (currentScreenActionInfo.screenActionsGamepadGameObject != null && !currentScreenActionInfo.screenActionsGamepadGameObject.activeSelf) { currentScreenActionInfo.screenActionsGamepadGameObject.SetActive (true); } if (currentScreenActionInfo.mainScreenActionGameObject != null && currentScreenActionInfo.mainScreenActionGameObject.activeSelf) { currentScreenActionInfo.mainScreenActionGameObject.SetActive (false); } } else { if (currentScreenActionInfo.mainScreenActionGameObject != null && !currentScreenActionInfo.mainScreenActionGameObject.activeSelf) { currentScreenActionInfo.mainScreenActionGameObject.SetActive (true); } if (currentScreenActionInfo.screenActionsGamepadGameObject != null && currentScreenActionInfo.screenActionsGamepadGameObject.activeSelf) { currentScreenActionInfo.screenActionsGamepadGameObject.SetActive (false); } } return; } } } } public void disableActionScreen (string actionScreenName) { if (canUseActionPanel ()) { checkInputPanelUISystem (); int screenActionInfoListCount = screenActionInfoList.Count; if (screenActionInfoListCount == 0) { return; } for (int i = 0; i < screenActionInfoListCount; i++) { if (screenActionInfoList [i].screenActionName.Equals (actionScreenName)) { if (previousScreenActionInfo != currentScreenActionInfo) { previousScreenActionInfo = currentScreenActionInfo; } currentScreenActionInfo = screenActionInfoList [i]; if (currentScreenActionInfo.screenActionsGameObject != null && currentScreenActionInfo.screenActionsGameObject.activeSelf) { currentScreenActionInfo.screenActionsGameObject.SetActive (false); } if (currentScreenActionInfo.mainScreenActionGameObject != null && currentScreenActionInfo.mainScreenActionGameObject.activeSelf) { currentScreenActionInfo.mainScreenActionGameObject.SetActive (false); } if (currentScreenActionInfo.screenActionsGamepadGameObject != null && currentScreenActionInfo.screenActionsGamepadGameObject.activeSelf) { currentScreenActionInfo.screenActionsGamepadGameObject.SetActive (false); } if (currentScreenActionInfo.isMainGameScreenActionPanel) { currentScreenActionInfo.mainGameScreenActionPanelActive = false; } return; } } } } public void enablePreviousActionScreen () { if (canUseActionPanel ()) { if (previousScreenActionInfo != null && currentScreenActionInfo != null) { if (currentScreenActionInfo != previousScreenActionInfo) { enableSingleActionScreen (previousScreenActionInfo.screenActionName); } } else { if (currentScreenActionInfo != null) { disableActionScreen (currentScreenActionInfo.screenActionName); } currentScreenActionInfo = null; previousScreenActionInfo = null; } } } public void enableSingleActionScreen (string actionScreenName) { if (canUseActionPanel ()) { checkInputPanelUISystem (); int screenActionInfoListCount = screenActionInfoList.Count; if (screenActionInfoListCount == 0) { return; } for (int i = 0; i < screenActionInfoListCount; i++) { if (screenActionInfoList [i].screenActionName.Equals (actionScreenName)) { if (previousScreenActionInfo != currentScreenActionInfo) { previousScreenActionInfo = currentScreenActionInfo; } currentScreenActionInfo = screenActionInfoList [i]; if (currentScreenActionInfo.screenActionsGameObject != null && !currentScreenActionInfo.screenActionsGameObject.activeSelf) { currentScreenActionInfo.screenActionsGameObject.SetActive (true); } if (playerInput.isUsingGamepad ()) { if (currentScreenActionInfo.screenActionsGamepadGameObject != null && !currentScreenActionInfo.screenActionsGamepadGameObject.activeSelf) { currentScreenActionInfo.screenActionsGamepadGameObject.SetActive (true); } if (currentScreenActionInfo.mainScreenActionGameObject != null && currentScreenActionInfo.mainScreenActionGameObject.activeSelf) { currentScreenActionInfo.mainScreenActionGameObject.SetActive (false); } } else { if (currentScreenActionInfo.mainScreenActionGameObject != null && !currentScreenActionInfo.mainScreenActionGameObject.activeSelf) { currentScreenActionInfo.mainScreenActionGameObject.SetActive (true); } if (currentScreenActionInfo.screenActionsGamepadGameObject != null && currentScreenActionInfo.screenActionsGamepadGameObject.activeSelf) { currentScreenActionInfo.screenActionsGamepadGameObject.SetActive (false); } } if (currentScreenActionInfo.isMainGameScreenActionPanel) { currentScreenActionInfo.mainGameScreenActionPanelActive = true; } } else { if (screenActionInfoList [i].screenActionsGameObject != null && screenActionInfoList [i].screenActionsGameObject.activeSelf) { screenActionInfoList [i].screenActionsGameObject.SetActive (false); } if (screenActionInfoList [i].mainScreenActionGameObject != null && screenActionInfoList [i].mainScreenActionGameObject.activeSelf) { screenActionInfoList [i].mainScreenActionGameObject.SetActive (false); } if (screenActionInfoList [i].screenActionsGamepadGameObject != null && screenActionInfoList [i].screenActionsGamepadGameObject.activeSelf) { screenActionInfoList [i].screenActionsGamepadGameObject.SetActive (false); } } } } } public void checkEnableMainGameScreenActionPanel () { if (!screenActionPanelsEnabled) { return; } checkInputPanelUISystem (); int screenActionInfoListCount = screenActionInfoList.Count; if (screenActionInfoListCount == 0) { return; } for (int i = 0; i < screenActionInfoListCount; i++) { if (screenActionInfoList [i].isMainGameScreenActionPanel && screenActionInfoList [i].mainGameScreenActionPanelActive) { enableSingleActionScreen (screenActionInfoList [i].screenActionName); return; } } } public void enableSecondaryActionPanel (string actionScreenName) { enableOrDisableSecondaryActionPanel (actionScreenName, true); } public void disableSecondaryActionPanel (string actionScreenName) { enableOrDisableSecondaryActionPanel (actionScreenName, false); } public void enableOrDisableSecondaryActionPanel (string actionScreenName, bool state) { checkInputPanelUISystem (); int screenActionInfoListCount = screenActionInfoList.Count; if (screenActionInfoListCount == 0) { return; } for (int i = 0; i < screenActionInfoListCount; i++) { if (screenActionInfoList [i].screenActionName.Equals (actionScreenName)) { if (playerInput.isUsingGamepad ()) { if (screenActionInfoList [i].secondaryActionPanelGamepadGameObject != null && screenActionInfoList [i].secondaryActionPanelGamepadGameObject.activeSelf != state) { screenActionInfoList [i].secondaryActionPanelGamepadGameObject.SetActive (state); } if (screenActionInfoList [i].secondaryActionPanelGameObject != null && screenActionInfoList [i].secondaryActionPanelGameObject.activeSelf) { screenActionInfoList [i].secondaryActionPanelGameObject.SetActive (false); } } else { if (screenActionInfoList [i].secondaryActionPanelGameObject != null && screenActionInfoList [i].secondaryActionPanelGameObject.activeSelf != state) { screenActionInfoList [i].secondaryActionPanelGameObject.SetActive (state); } if (screenActionInfoList [i].secondaryActionPanelGamepadGameObject != null && screenActionInfoList [i].secondaryActionPanelGamepadGameObject.activeSelf) { screenActionInfoList [i].secondaryActionPanelGamepadGameObject.SetActive (false); } } return; } } } public void checkDisableMainGameScreenActionPanel () { if (!screenActionPanelsEnabled) { return; } checkInputPanelUISystem (); int screenActionInfoListCount = screenActionInfoList.Count; if (screenActionInfoListCount == 0) { return; } for (int i = 0; i < screenActionInfoListCount; i++) { if (screenActionInfoList [i].isMainGameScreenActionPanel && screenActionInfoList [i].mainGameScreenActionPanelActive) { if (screenActionInfoList [i].screenActionsGameObject != null && screenActionInfoList [i].screenActionsGameObject.activeSelf) { screenActionInfoList [i].screenActionsGameObject.SetActive (false); } if (screenActionInfoList [i].mainScreenActionGameObject != null && screenActionInfoList [i].mainScreenActionGameObject.activeSelf) { screenActionInfoList [i].mainScreenActionGameObject.SetActive (false); } if (screenActionInfoList [i].screenActionsGamepadGameObject != null && screenActionInfoList [i].screenActionsGamepadGameObject.activeSelf) { screenActionInfoList [i].screenActionsGamepadGameObject.SetActive (false); } return; } } } public void checkPanelsActiveOnGamepadOrKeyboard (bool checkKeyboard) { if (!screenActionPanelsEnabled) { return; } checkInputPanelUISystem (); int screenActionInfoListCount = screenActionInfoList.Count; if (screenActionInfoListCount == 0) { return; } for (int i = 0; i < screenActionInfoListCount; i++) { if (checkKeyboard) { if (screenActionInfoList [i].screenActionsGameObject != null) { if (screenActionInfoList [i].screenActionsGameObject.activeSelf) { if (screenActionInfoList [i].mainScreenActionGameObject != null && !screenActionInfoList [i].mainScreenActionGameObject.activeSelf) { screenActionInfoList [i].mainScreenActionGameObject.SetActive (true); } if (screenActionInfoList [i].hasSecondaryActionPanel && screenActionInfoList [i].secondaryActionPanelGameObject != null && !screenActionInfoList [i].secondaryActionPanelGameObject.activeSelf) { screenActionInfoList [i].secondaryActionPanelGameObject.SetActive (true); } if (screenActionInfoList [i].screenActionsGamepadGameObject != null && screenActionInfoList [i].screenActionsGamepadGameObject.activeSelf) { screenActionInfoList [i].screenActionsGamepadGameObject.SetActive (false); } if (screenActionInfoList [i].secondaryActionPanelGamepadGameObject != null && screenActionInfoList [i].secondaryActionPanelGamepadGameObject.activeSelf) { screenActionInfoList [i].secondaryActionPanelGamepadGameObject.SetActive (false); } } } } else { if (screenActionInfoList [i].screenActionsGameObject != null) { if (screenActionInfoList [i].screenActionsGameObject.activeSelf) { if (screenActionInfoList [i].secondaryActionPanelGameObject != null && screenActionInfoList [i].secondaryActionPanelGameObject.activeSelf) { screenActionInfoList [i].secondaryActionPanelGameObject.SetActive (false); } if (screenActionInfoList [i].mainScreenActionGameObject != null && screenActionInfoList [i].mainScreenActionGameObject.activeSelf) { screenActionInfoList [i].mainScreenActionGameObject.SetActive (false); } if (screenActionInfoList [i].screenActionsGamepadGameObject != null && !screenActionInfoList [i].screenActionsGamepadGameObject.activeSelf) { screenActionInfoList [i].screenActionsGamepadGameObject.SetActive (true); } if (screenActionInfoList [i].hasSecondaryActionPanel && screenActionInfoList [i].secondaryActionPanelGamepadGameObject != null && !screenActionInfoList [i].secondaryActionPanelGamepadGameObject.activeSelf) { screenActionInfoList [i].secondaryActionPanelGamepadGameObject.SetActive (true); } } } } } } public void enableOrDisableScreenActionParent (bool state) { if (!screenActionPanelsActive) { return; } if (state && playerInput.isUsingTouchControlsOnGameManager ()) { return; } if (screenActionParent != null && screenActionParent.activeSelf != state) { screenActionParent.SetActive (state); } } public bool canUseActionPanel () { if (!screenActionPanelsEnabled) { return false; } if (!screenActionPanelsActive) { return false; } if (playerInput.isUsingTouchControls ()) { return false; } return true; } public void setScreenActionPanelsActiveState (bool state) { if (screenActionParent == null) { return; } if (screenActionPanelsActive) { panelParentActivePreviously = screenActionParent.activeSelf; } screenActionPanelsActive = state; if (screenActionPanelsActive) { if (panelParentActivePreviously) { if (playerInput.isUsingTouchControlsOnGameManager ()) { return; } if (!screenActionParent.activeSelf) { screenActionParent.SetActive (true); } } } else { if (screenActionParent.activeSelf) { screenActionParent.SetActive (false); } } } public void setScreenActionPanelsActiveStateFromEditor (bool state) { setScreenActionPanelsActiveState (state); updateComponent (); } public void setScreenActionPanelsEnabledState (bool state) { screenActionPanelsEnabled = state; updateComponent (); } public void instantiateInputPanelPrefab () { if (mainInputPanelUISystem == null && inputPanelPrefab != null) { GameObject newInputPanel = (GameObject)Instantiate (inputPanelPrefab, Vector3.zero, Quaternion.identity); newInputPanel.name = inputPanelPrefab.name; inputPanelUISystem currentInputPanelUISystem = newInputPanel.GetComponentInChildren (); if (currentInputPanelUISystem != null) { currentInputPanelUISystem.searchPlayerInputPanelSystem (this); // pauseManager.addNewCanvasToList (newInputPanel.GetComponent ()); GKC_Utils.updateCanvasValuesByPlayer (null, pauseManager.gameObject, newInputPanel); } } else { print ("Player Input Panel is already on the scene"); } } public void setInputPanelUISystem (inputPanelUISystem newInputPanelUISystem) { mainInputPanelUISystem = newInputPanelUISystem; screenActionParent = mainInputPanelUISystem.screenActionParent; updateComponent (); } void updateComponent () { GKC_Utils.updateComponent (this); GKC_Utils.updateDirtyScene ("Update Player Input Panel System", gameObject); } }