using UnityEngine; namespace CarbonInput { /// /// Attach this to the canvas all touch controls are in. /// On startup this script will check if there are any real gamepads and if so, it will disable the touch controls. /// public class DisableTouchInput : MonoBehaviour { [Tooltip("If true, touch controls will be disabled on Console Platforms, even if there are no gamepads connected.")] public bool HideOnConsole = true; [Tooltip("If true, touch controls will be disabled in Web Player, even if there are no gamepads connected.")] public bool HideOnWeb = true; [Tooltip("If true, touch controls will be disabled in the Editor, even if there are no gamepads connected.")] public bool HideOnEditMode = false; [Tooltip("If true, touch controls will be disabled on Windows, Linux and Mac, even if there are no gamepads connected.")] public bool HideOnPC = true; void Start() { #if UNITY_EDITOR if(HideOnEditMode) { Hide(); return; } #endif #if UNITY_WEB if(HideOnWeb) { Hide(); return; } #endif #if UNITY_STANDALONE if(HideOnPC) { Hide(); return; } #endif if(HideOnConsole && Application.isConsolePlatform || GamePad.GamePadCount > 0) { // There are gamepads so we don't need touchcontrols Hide(); } } /// /// Deactivates all children with a component. /// private void Hide() { // Iterate over all children foreach(RectTransform rect in GetComponentsInChildren()) { if(rect.GetComponent() != null) // Deactivate all TouchControls rect.gameObject.SetActive(false); } } } }