void Start() { #if (UNITY_ANDROID || UNITY_IPHONE) && !UNITY_EDITOR this.inputHandler = TouchHandler; #else this.inputHandler = MouseHandler; #endif paddleMinXPos = -53 + transform.localScale.x/2; paddleMaxXPos = 53 - transform.localScale.x/2; }
void Awake() { if(camera != null) _mainCamera = camera; else _mainCamera = Camera.mainCamera; #if (UNITY_IPHONE || UNITY_ANDROID) && !UNITY_EDITOR InputHandler += TouchInputHandler; #else InputHandler += MouseInputHandler; #endif }
/// <summary> /// Constructor /// </summary> /// <param name="id">(Not unique) id of the input being handled</param> /// <param name="onStart">(Optional) handler for start event</param> /// <param name="onChange">(Optional) handler for change/move event</param> /// <param name="onEnd">(Optional) handler for end event</param> public InputHandler(int id, InputHandlerDelegate onStart, InputHandlerDelegate onChange, InputHandlerDelegate onEnd) { this.id = id; this.status = EventStatus.None; if (onStart != null) { this.onStart += onStart; } if (onChange != null) { this.onChange += onChange; } if (onEnd != null) { this.onEnd += onEnd; } }
/// <summary> /// Listen for touch events (finger down -> move -> release) /// </summary> /// <param name="fingerId">Zero based index for which finger id to bind to</param> /// <param name="onTouchStart">(Optional) handler function for touch begin event</param> /// <param name="onTouchMove">(Optional) handler function for touch move event</param> /// <param name="onTouchEnd">(Optional) handler function for touch end event</param> /// <param name="pointHistoryLength">The number of seconds history that should be kept</param> /// <returns>The InputHandler object. Pass it to RemoveListener to remove the listener.</returns> public static InputHandler AddListenerTouch(int fingerId, InputHandlerDelegate onTouchStart, InputHandlerDelegate onTouchMove, InputHandlerDelegate onTouchEnd, float pointHistoryLength = 5.0f) { InputHandlerTouch ih = new InputHandlerTouch(fingerId, onTouchStart, onTouchMove, onTouchEnd, pointHistoryLength); instance.inputHandler.Add(ih); return(ih); }
/// <summary> /// Listen for touch or mouse events (down -> move -> release) /// </summary> /// <param name="onStart">(Optional) handler function for * down event</param> /// <param name="onChange">(Optional) handler function for * move event</param> /// <param name="onEnd">(Optional) handler function for * up event</param> /// <param name="pointHistoryLength">The number of seconds history that should be kept</param> /// <returns>The InputHandler object. Pass it to RemoveListener to remove the listener.</returns> public static InputHandler AddListenerTouchOrMouse(InputHandlerDelegate onStart, InputHandlerDelegate onChange, InputHandlerDelegate onEnd, float pointHistoryLength = 5.0f) { InputHandlerTouchOrMouse ih = new InputHandlerTouchOrMouse(onStart, onChange, onEnd, pointHistoryLength); instance.inputHandler.Add(ih); return(ih); }
/// <summary> /// Listen for mouse drag events (mouse down -> move -> release) /// </summary> /// <param name="mouseButton">Which mouse button are we binding to</param> /// <param name="onMouseDown">(Optional) handler for mouse down event</param> /// <param name="onMouseMove">(Optional) handler for mouse move event</param> /// <param name="onMouseUp">(Optional) handler for mouse up event</param> /// <param name="pointHistoryLength">The number of seconds history that should be kept</param> /// <returns>The InputHandler object. Pass it to RemoveListener to remove the listener.</returns> public static InputHandler AddListenerMouseDrag(int mouseButton, InputHandlerDelegate onMouseDown, InputHandlerDelegate onMouseMove, InputHandlerDelegate onMouseUp, float pointHistoryLength = 5.0f) { InputHandlerMouseDrag ih = new InputHandlerMouseDrag(mouseButton, onMouseDown, onMouseMove, onMouseUp, pointHistoryLength); instance.inputHandler.Add(ih); return(ih); }
/// <summary> /// Constructor /// </summary> /// <param name="onStart">(Optional) handler for start event</param> /// <param name="onChange">(Optional) handler for change/move event</param> /// <param name="onEnd">(Optional) handler for end event</param> public InputHandlerTouchOrMouse(InputHandlerDelegate OnStart, InputHandlerDelegate OnChange, InputHandlerDelegate OnEnd, float pointHistoryLength = 5.0f) : base(-1, null, null, null) { this.OnStart = OnStart; this.OnChange = OnChange; this.OnEnd = OnEnd; inputHandler = new List <InputHandler>(); }
/// <summary> /// Constructor /// </summary> /// <param name="onChange">The function to call when mouse moves</param> public InputHandlerMouseMove(InputHandlerDelegate onChange, float pointHistoryLength = 5.0f) : base(-1, null, onChange, null, pointHistoryLength) { AddPosition(Input.mousePosition); }
/// <summary> /// Constructor /// </summary> /// <param name="id">Finger id to bind to</param> /// <param name="onStart">(Optional) handler for start event</param> /// <param name="onChange">(Optional) handler for change/move event</param> /// <param name="onEnd">(Optional) handler for end event</param> public InputHandlerTouch(int id, InputHandlerDelegate onStart, InputHandlerDelegate onChange, InputHandlerDelegate onEnd, float pointHistoryLength = 5.0f) : base(id, onStart, onChange, onEnd, pointHistoryLength) { if (Input.touchCount != 0) { for (int i = 0; i < Input.touches.Length; i++) { if (Input.touches[i].fingerId == id && Input.touches[i].phase != TouchPhase.Canceled && Input.touches[i].phase != TouchPhase.Ended) { AddPosition(Input.touches[i].position); Start(); } } } }
/// <summary> /// Constructor /// </summary> /// <param name="id">The id of the pointer</param> /// <param name="onStart">(Optional) handler for start event</param> /// <param name="onChange">(Optional) handler for change/move event</param> /// <param name="onEnd">(Optional) handler for end event</param> public InputHandlerPointer(int id, InputHandlerDelegate onStart, InputHandlerDelegate onChange, InputHandlerDelegate onEnd, float pointHistoryLength) : base(id, onStart, onChange, onEnd) { this.pointHistoryLength = pointHistoryLength; positions = new List <Vector3Time>(); }
/// <summary> /// Constructor /// </summary> /// <param name="id">Mouse button to bind to</param> /// <param name="onStart">(Optional) handler for start event</param> /// <param name="onChange">(Optional) handler for change/move event</param> /// <param name="onEnd">(Optional) handler for end event</param> public InputHandlerMouseDrag(int id, InputHandlerDelegate onStart, InputHandlerDelegate onChange, InputHandlerDelegate onEnd, float pointHistoryLength = 5.0f) : base(id, onStart, onChange, onEnd, pointHistoryLength) { if (Input.GetMouseButton(id)) { AddPosition(Input.mousePosition); Start(); } }
public InputHandlerAxisButton(string inputName, InputHandlerDelegate onStart, InputHandlerDelegate onChange, InputHandlerDelegate onEnd) : base(inputName.GetHashCode(), onStart, onChange, onEnd) { this.inputName = inputName; }
/// <summary> /// Listen for named button press/release /// </summary> /// <param name="buttonName">Name of the button to listen for</param> /// <param name="onButtonDown">Function to call when button is pressed</param> /// <param name="onButtonUp">Function to call when button is released</param> /// <returns>The InputHandler object. Pass it to RemoveListener to remove the listener.</returns> public static InputHandler AddListenerButton(string buttonName, InputHandlerDelegate onButtonDown, InputHandlerDelegate onButtonUp) { InputHandlerButton ih = new InputHandlerButton(buttonName, onButtonDown, onButtonUp); instance.inputHandler.Add(ih); return(ih); }
/// <summary> /// Listen for input axis value changes /// </summary> /// <param name="axisName">Name of the axis to listen for changes on</param> /// <param name="onAxisStart">Function to call when axis starts to change</param> /// <param name="onAxisChange">Function to call when axis value changes</param> /// <param name="onAxisStop">Function to call when axis returns to neutral</param> /// <param name="axisNeutral">The axis value to consider the axis as off</param> /// <returns>The InputHandler object. Pass it to RemoveListener to remove the listener.</returns> public static InputHandler AddListenerAxis(string axisName, InputHandlerDelegate onAxisStart, InputHandlerDelegate onAxisChange, InputHandlerDelegate onAxisStop, float axisNeutral = 0.0f) { InputHandlerAxis ih = new InputHandlerAxis(axisName, onAxisStart, onAxisChange, onAxisStop, axisNeutral); instance.inputHandler.Add(ih); return(ih); }
/// <summary> /// Constructot /// </summary> /// <param name="buttonName">Name of the button to listen for press/release on</param> /// <param name="onButtonDown">Function to call when button is pressed</param> /// <param name="onButtonUp">Function to call when button is released</param> public InputHandlerButton(string buttonName, InputHandlerDelegate onButtonDown, InputHandlerDelegate onButtonUp) : base(buttonName, onButtonDown, null, onButtonUp) { if (Input.GetButton(buttonName)) { Start(); } }
/// <summary> /// Constructor /// </summary> /// <param name="axisName">Name of the axis to listen for changes on</param> /// <param name="onStart">Function to call when axis goes from "off" to "on"</param> /// <param name="onChange">Function to call when the axis value changes</param> /// <param name="onEnd">Function to call when the axis goes from "on" to "off"</param> /// <param name="axisNeutral">The value at which the axis is considered "off"</param> public InputHandlerAxis(string axisName, InputHandlerDelegate onStart, InputHandlerDelegate onChange, InputHandlerDelegate onEnd, float axisNeutral) : base(axisName, onStart, onChange, onEnd) { this.axisNeutral = axisNeutral; lastAxis = Input.GetAxis(axisName); if (lastAxis != axisNeutral) { Start(); } }