968 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			968 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | /*********************************************** | ||
|  | 				EasyTouch Controls | ||
|  | 	Copyright © 2016 The Hedgehog Team | ||
|  |       http://www.thehedgehogteam.com/Forum/ | ||
|  | 		 | ||
|  | 	  The.Hedgehog.Team@gmail.com | ||
|  | 		 | ||
|  | **********************************************/ | ||
|  | using UnityEngine; | ||
|  | using UnityEngine.UI; | ||
|  | using System.Collections; | ||
|  | using System.Collections.Generic; | ||
|  | using UnityEngine.Events; | ||
|  | using UnityEngine.EventSystems; | ||
|  | 
 | ||
|  | //ETCSingleton<ETCInput> | ||
|  | public class ETCInput : MonoBehaviour{ | ||
|  | 
 | ||
|  | 	public static ETCInput _instance = null; | ||
|  | 	public static ETCInput instance{ | ||
|  | 		get{ | ||
|  | 			if( !_instance ){ | ||
|  | 				 | ||
|  | 				// check if an ObjectPoolManager is already available in the scene graph | ||
|  | 				_instance = FindObjectOfType( typeof( ETCInput ) ) as ETCInput; | ||
|  | 				 | ||
|  | 				// nope, create a new one | ||
|  | 				if( !_instance ){ | ||
|  | 					GameObject obj = new GameObject( "InputManager" ); | ||
|  | 					_instance = obj.AddComponent<ETCInput>(); | ||
|  | 				} | ||
|  | 			} | ||
|  | 			 | ||
|  | 			return _instance; | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	private  Dictionary<string,ETCAxis> axes = new Dictionary<string,ETCAxis>(); | ||
|  | 	private  Dictionary<string, ETCBase> controls = new Dictionary<string, ETCBase>(); | ||
|  | 	 | ||
|  | 	private static  ETCBase control; | ||
|  | 	private static ETCAxis axis; | ||
|  | 
 | ||
|  | 	#region Control | ||
|  | 	public void RegisterControl(ETCBase ctrl){ | ||
|  | 
 | ||
|  | 		if (controls.ContainsKey( ctrl.name)){ | ||
|  | 			Debug.LogWarning("ETCInput control : " + ctrl.name + " already exists"); | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			controls.Add( ctrl.name, ctrl); | ||
|  | 			 | ||
|  | 			if (ctrl.GetType() == typeof(ETCJoystick) ){ | ||
|  | 				RegisterAxis( (ctrl as ETCJoystick).axisX ); | ||
|  | 				RegisterAxis( (ctrl as ETCJoystick).axisY ); | ||
|  | 			} | ||
|  | 			else if (ctrl.GetType() == typeof(ETCTouchPad) ){ | ||
|  | 				RegisterAxis( (ctrl as ETCTouchPad).axisX ); | ||
|  | 				RegisterAxis( (ctrl as ETCTouchPad).axisY ); | ||
|  | 			} | ||
|  | 			else if (ctrl.GetType() == typeof(ETCDPad) ){ | ||
|  | 				RegisterAxis( (ctrl as ETCDPad).axisX ); | ||
|  | 				RegisterAxis( (ctrl as ETCDPad).axisY ); | ||
|  | 			} | ||
|  | 			else if (ctrl.GetType() == typeof(ETCButton)){ | ||
|  | 				RegisterAxis( (ctrl as ETCButton).axis ); | ||
|  | 			} | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	public void UnRegisterControl(ETCBase ctrl){ | ||
|  | 		if (controls.ContainsKey( ctrl.name) && ctrl.enabled ){ | ||
|  | 
 | ||
|  | 			controls.Remove( ctrl.name); | ||
|  | 			 | ||
|  | 			if (ctrl.GetType() == typeof(ETCJoystick) ){ | ||
|  | 				UnRegisterAxis( (ctrl as ETCJoystick).axisX ); | ||
|  | 				UnRegisterAxis( (ctrl as ETCJoystick).axisY ); | ||
|  | 			} | ||
|  | 			else if (ctrl.GetType() == typeof(ETCTouchPad) ){ | ||
|  | 				UnRegisterAxis( (ctrl as ETCTouchPad).axisX ); | ||
|  | 				UnRegisterAxis( (ctrl as ETCTouchPad).axisY ); | ||
|  | 			} | ||
|  | 			else if (ctrl.GetType() == typeof(ETCDPad) ){ | ||
|  | 				UnRegisterAxis( (ctrl as ETCDPad).axisX ); | ||
|  | 				UnRegisterAxis( (ctrl as ETCDPad).axisY ); | ||
|  | 			} | ||
|  | 			else if (ctrl.GetType() == typeof(ETCButton)){ | ||
|  | 				UnRegisterAxis( (ctrl as ETCButton).axis ); | ||
|  | 			} | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public  void Create(){ | ||
|  | 	 | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static void Register(ETCBase ctrl){ | ||
|  | 		ETCInput.instance.RegisterControl( ctrl); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static void UnRegister(ETCBase ctrl){ | ||
|  | 		ETCInput.instance.UnRegisterControl( ctrl); | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetControlVisible(string ctrlName,bool value){ | ||
|  | 		if (ETCInput.instance.controls.TryGetValue( ctrlName, out control)){ | ||
|  | 			control.visible = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + ctrlName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	public static bool GetControlVisible(string ctrlName){ | ||
|  | 		if (ETCInput.instance.controls.TryGetValue( ctrlName, out control)){ | ||
|  | 			return control.visible; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + ctrlName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	 | ||
|  | 	public static void SetControlActivated(string ctrlName,bool value){ | ||
|  | 		if (ETCInput.instance.controls.TryGetValue( ctrlName, out control)){ | ||
|  | 			control.activated = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + ctrlName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	public static bool GetControlActivated(string ctrlName){ | ||
|  | 		if (ETCInput.instance.controls.TryGetValue( ctrlName, out control)){ | ||
|  | 			return control.activated; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + ctrlName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetControlSwipeIn(string ctrlName,bool value){ | ||
|  | 
 | ||
|  | 		if (ETCInput.instance.controls.TryGetValue( ctrlName, out control)){ | ||
|  | 
 | ||
|  | 			control.isSwipeIn = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + ctrlName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static bool GetControlSwipeIn(string ctrlName){ | ||
|  | 		if (ETCInput.instance.controls.TryGetValue( ctrlName, out control)){ | ||
|  | 			return control.isSwipeIn; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + ctrlName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetControlSwipeOut(string ctrlName,bool value){ | ||
|  | 		if (ETCInput.instance.controls.TryGetValue( ctrlName, out control)){ | ||
|  | 			control.isSwipeOut = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + ctrlName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static bool GetControlSwipeOut(string ctrlName,bool value){ | ||
|  | 		if (ETCInput.instance.controls.TryGetValue( ctrlName, out control)){ | ||
|  | 			return control.isSwipeOut ; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + ctrlName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetDPadAxesCount(string ctrlName, ETCBase.DPadAxis value){ | ||
|  | 		if (ETCInput.instance.controls.TryGetValue( ctrlName, out control)){ | ||
|  | 			control.dPadAxisCount = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + ctrlName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static ETCBase.DPadAxis GetDPadAxesCount(string ctrlName){ | ||
|  | 		if (ETCInput.instance.controls.TryGetValue( ctrlName, out control)){ | ||
|  | 			return control.dPadAxisCount; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + ctrlName + " doesn't exist"); | ||
|  | 			return ETCBase.DPadAxis.Two_Axis; | ||
|  | 		} | ||
|  | 	} | ||
|  | 	#endregion | ||
|  | 
 | ||
|  | 	#region New 2.0 | ||
|  | 	// Control | ||
|  | 	public static ETCJoystick GetControlJoystick(string ctrlName){ | ||
|  | 		if (ETCInput.instance.controls.TryGetValue( ctrlName, out control)){ | ||
|  | 			if (control.GetType() == typeof(ETCJoystick)){ | ||
|  | 				ETCJoystick tmpJoy = (ETCJoystick)control; | ||
|  | 				return tmpJoy; | ||
|  | 			} | ||
|  | 		} | ||
|  | 		 | ||
|  | 		return null; | ||
|  | 	} | ||
|  | 	 | ||
|  | 	public static ETCDPad GetControlDPad(string ctrlName){ | ||
|  | 		if (ETCInput.instance.controls.TryGetValue( ctrlName, out control)){ | ||
|  | 			if (control.GetType() == typeof(ETCDPad)){ | ||
|  | 				ETCDPad tmpctrl = (ETCDPad)control; | ||
|  | 				return tmpctrl; | ||
|  | 			} | ||
|  | 		} | ||
|  | 
 | ||
|  | 		return null; | ||
|  | 	} | ||
|  | 	 | ||
|  | 	public static ETCTouchPad GetControlTouchPad(string ctrlName){ | ||
|  | 		if (ETCInput.instance.controls.TryGetValue( ctrlName, out control)){ | ||
|  | 			if (control.GetType() == typeof(ETCTouchPad)){ | ||
|  | 				ETCTouchPad tmpctrl = (ETCTouchPad)control; | ||
|  | 				return tmpctrl; | ||
|  | 			} | ||
|  | 		} | ||
|  | 		 | ||
|  | 		return null; | ||
|  | 	} | ||
|  | 	 | ||
|  | 	public static ETCButton GetControlButton(string ctrlName){ | ||
|  | 		if (ETCInput.instance.controls.TryGetValue( ctrlName, out control)){ | ||
|  | 			if (control.GetType() == typeof(ETCJoystick)){ | ||
|  | 				ETCButton tmpctrl = (ETCButton)control; | ||
|  | 				return tmpctrl; | ||
|  | 			} | ||
|  | 		} | ||
|  | 		 | ||
|  | 		return null; | ||
|  | 	} | ||
|  | 	 | ||
|  | 
 | ||
|  | 	//Image | ||
|  | 	public static void SetControlSprite(string ctrlName,Sprite spr,Color color = default(Color)){ | ||
|  | 		if (ETCInput.instance.controls.TryGetValue( ctrlName, out control)){ | ||
|  | 			Image img = control.GetComponent<Image>(); | ||
|  | 			 | ||
|  | 			if (img){ | ||
|  | 				img.sprite = spr; | ||
|  | 				img.color = color; | ||
|  | 			} | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	public static void SetJoystickThumbSprite(string ctrlName,Sprite spr,Color color = default(Color)){ | ||
|  | 		if (ETCInput.instance.controls.TryGetValue( ctrlName, out control)){ | ||
|  | 			 | ||
|  | 			if (control.GetType() == typeof(ETCJoystick)){ | ||
|  | 				ETCJoystick tmpJoy = (ETCJoystick)control; | ||
|  | 				if (tmpJoy){ | ||
|  | 					Image img = tmpJoy.thumb.GetComponent<Image>(); | ||
|  | 					 | ||
|  | 					if (img){ | ||
|  | 						img.sprite = spr; | ||
|  | 						img.color = color; | ||
|  | 					} | ||
|  | 				} | ||
|  | 			} | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	public static void SetButtonPressedSprite(string ctrlName, Sprite spr,Color color = default(Color)){ | ||
|  | 	} | ||
|  | 
 | ||
|  | 	// Axes | ||
|  | 	public static void SetAxisSpeed(string axisName, float speed){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.speed = speed; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static void SetAxisGravity(string axisName, float gravity){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.gravity = gravity; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static void SetTurnMoveSpeed(string ctrlName, float speed){ | ||
|  | 		ETCJoystick joy = GetControlJoystick( ctrlName); | ||
|  | 		if (joy){ | ||
|  | 			joy.tmSpeed = speed; | ||
|  | 		} | ||
|  | 	} | ||
|  | 	#endregion | ||
|  | 
 | ||
|  | 	#region Axes | ||
|  | 	public static void ResetAxis(string axisName ){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.axisValue = 0; | ||
|  | 			axis.axisSpeedValue =0; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static void SetAxisEnabled(string axisName,bool value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.enable = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	public static bool GetAxisEnabled(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.enable; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetAxisInverted(string axisName, bool value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.invertedAxis = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static bool GetAxisInverted(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.invertedAxis; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetAxisDeadValue(string axisName, float value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.deadValue = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static float GetAxisDeadValue(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.deadValue; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return -1; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetAxisSensitivity(string axisName, float value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.speed = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static float GetAxisSensitivity(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.speed; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return -1; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetAxisThreshold(string axisName, float value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.axisThreshold = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static float GetAxisThreshold(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.axisThreshold; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return -1; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetAxisInertia(string axisName, bool value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.isEnertia = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static bool GetAxisInertia(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.isEnertia; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetAxisInertiaSpeed(string axisName, float value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.inertia = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static float GetAxisInertiaSpeed(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.inertia; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return -1; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetAxisInertiaThreshold( string axisName, float value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.inertiaThreshold = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static float GetAxisInertiaThreshold( string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.inertiaThreshold; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return -1; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetAxisAutoStabilization( string axisName, bool value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.isAutoStab = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static bool GetAxisAutoStabilization(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.isAutoStab; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetAxisAutoStabilizationSpeed( string axisName, float value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.autoStabSpeed = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static float GetAxisAutoStabilizationSpeed(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.autoStabSpeed; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return -1; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetAxisAutoStabilizationThreshold( string axisName, float value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.autoStabThreshold = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	public static float GetAxisAutoStabilizationThreshold(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.autoStabThreshold; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return -1; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetAxisClampRotation(string axisName, bool value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.isClampRotation = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static bool GetAxisClampRotation(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.isClampRotation; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetAxisClampRotationValue(string axisName, float min, float max){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.minAngle = min; | ||
|  | 			axis.maxAngle = max; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static void SetAxisClampRotationMinValue(string axisName, float value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.minAngle = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static void SetAxisClampRotationMaxValue(string axisName, float value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.maxAngle = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static float GetAxisClampRotationMinValue(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.minAngle; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return -1; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static float GetAxisClampRotationMaxValue(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.maxAngle; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return -1; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetAxisDirecTransform(string axisName, Transform value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.directTransform = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static Transform GetAxisDirectTransform( string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.directTransform; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return null; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetAxisDirectAction(string axisName, ETCAxis.DirectAction value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.directAction = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static ETCAxis.DirectAction GetAxisDirectAction(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.directAction; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return ETCAxis.DirectAction.Rotate; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetAxisAffectedAxis(string axisName, ETCAxis.AxisInfluenced value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.axisInfluenced = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static ETCAxis.AxisInfluenced GetAxisAffectedAxis(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.axisInfluenced; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return ETCAxis.AxisInfluenced.X; | ||
|  | 		} | ||
|  | 	} | ||
|  | 		 | ||
|  | 
 | ||
|  | 	public static void SetAxisOverTime(string axisName, bool value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.isValueOverTime = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static bool GetAxisOverTime(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.isValueOverTime; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetAxisOverTimeStep(string axisName, float value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.overTimeStep = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static float GetAxisOverTimeStep(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.overTimeStep; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return -1; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static void SetAxisOverTimeMaxValue(string axisName, float value){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			axis.maxOverTimeValue = value; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static float GetAxisOverTimeMaxValue(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.maxOverTimeValue; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return -1; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static float GetAxis(string axisName){ | ||
|  | 		 | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.axisValue; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning("ETCInput : " + axisName + " doesn't exist"); | ||
|  | 			return 0; | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	public static float GetAxisSpeed(string axisName){ | ||
|  | 		 | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			return axis.axisSpeedValue; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning(axisName + " doesn't exist"); | ||
|  | 			return 0; | ||
|  | 		} | ||
|  | 		 | ||
|  | 	} | ||
|  | 	 | ||
|  | 	 | ||
|  | 	public static bool GetAxisDownUp(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			if (axis.axisState == ETCAxis.AxisState.DownUp){ | ||
|  | 				return true; | ||
|  | 			} | ||
|  | 			else{ | ||
|  | 				return false; | ||
|  | 			} | ||
|  | 			 | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning(axisName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	public static bool GetAxisDownDown(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			if (axis.axisState == ETCAxis.AxisState.DownDown){ | ||
|  | 				return true; | ||
|  | 			} | ||
|  | 			else{ | ||
|  | 				return false; | ||
|  | 			} | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning(axisName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	public static bool GetAxisDownRight(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			if (axis.axisState == ETCAxis.AxisState.DownRight){ | ||
|  | 				return true; | ||
|  | 			} | ||
|  | 			else{ | ||
|  | 				return false; | ||
|  | 			} | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning(axisName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	public static bool GetAxisDownLeft(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			if (axis.axisState == ETCAxis.AxisState.DownLeft){ | ||
|  | 				return true; | ||
|  | 			} | ||
|  | 			else{ | ||
|  | 				return false; | ||
|  | 			} | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning(axisName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	 | ||
|  | 	public static bool GetAxisPressedUp(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			if (axis.axisState == ETCAxis.AxisState.PressUp){ | ||
|  | 				return true; | ||
|  | 			} | ||
|  | 			else{ | ||
|  | 				return false; | ||
|  | 			} | ||
|  | 			 | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning(axisName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	public static bool GetAxisPressedDown(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			if (axis.axisState == ETCAxis.AxisState.PressDown){ | ||
|  | 				return true; | ||
|  | 			} | ||
|  | 			else{ | ||
|  | 				return false; | ||
|  | 			} | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning(axisName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	public static bool GetAxisPressedRight(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			if (axis.axisState == ETCAxis.AxisState.PressRight){ | ||
|  | 				return true; | ||
|  | 			} | ||
|  | 			else{ | ||
|  | 				return false; | ||
|  | 			} | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning(axisName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	public static bool GetAxisPressedLeft(string axisName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( axisName, out axis)){ | ||
|  | 			if (axis.axisState == ETCAxis.AxisState.PressLeft){ | ||
|  | 				return true; | ||
|  | 			} | ||
|  | 			else{ | ||
|  | 				return false; | ||
|  | 			} | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning(axisName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	 | ||
|  | 	public static bool GetButtonDown(string buttonName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( buttonName, out axis)){ | ||
|  | 			 | ||
|  | 			if (axis.axisState == ETCAxis.AxisState.Down ){ | ||
|  | 				return true; | ||
|  | 			} | ||
|  | 			else{ | ||
|  | 				return false; | ||
|  | 			} | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning(buttonName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	public static bool GetButton(string buttonName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( buttonName, out axis)){ | ||
|  | 			if (axis.axisState == ETCAxis.AxisState.Down || axis.axisState == ETCAxis.AxisState.Press){ | ||
|  | 				return true; | ||
|  | 			} | ||
|  | 			else{ | ||
|  | 				return false; | ||
|  | 			} | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning(buttonName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 	 | ||
|  | 	public static bool GetButtonUp(string buttonName){ | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( buttonName, out axis)){ | ||
|  | 			if (axis.axisState == ETCAxis.AxisState.Up ){ | ||
|  | 				return true; | ||
|  | 			} | ||
|  | 			else{ | ||
|  | 				return false; | ||
|  | 			} | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning(buttonName + " doesn't exist"); | ||
|  | 			return false; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static float GetButtonValue(string buttonName){ | ||
|  | 
 | ||
|  | 		if (ETCInput.instance.axes.TryGetValue( buttonName, out axis)){ | ||
|  | 			return axis.axisValue; | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			Debug.LogWarning(buttonName + " doesn't exist"); | ||
|  | 			return -1; | ||
|  | 		} | ||
|  | 	} | ||
|  | 	#endregion | ||
|  | 
 | ||
|  | 	#region private Method | ||
|  | 	private void RegisterAxis(ETCAxis axis){ | ||
|  | 		 | ||
|  | 		if (ETCInput.instance.axes.ContainsKey( axis.name)){ | ||
|  | 			Debug.LogWarning("ETCInput axis : " + axis.name + " already exists"); | ||
|  | 		} | ||
|  | 		else{ | ||
|  | 			axes.Add( axis.name,axis); | ||
|  | 		} | ||
|  | 		 | ||
|  | 	} | ||
|  | 
 | ||
|  | 	private void UnRegisterAxis(ETCAxis axis){ | ||
|  | 		 | ||
|  | 		if (ETCInput.instance.axes.ContainsKey( axis.name)){ | ||
|  | 			axes.Remove( axis.name); | ||
|  | 		} | ||
|  | 		 | ||
|  | 	} | ||
|  | 	#endregion | ||
|  | 
 | ||
|  | 
 | ||
|  | } |