public override void OnUpdate() { var buttonDown = How_To_Do_Touch_InputManager.GetButtonDown(ButtonName.Value); if (buttonDown) { Fsm.Event(SendEvent); } StoreResult.Value = buttonDown; }
void DoGetAxis() { var axisValue = How_To_Do_Touch_InputManager.GetAxis(AxisName.Value); // if variable set to none, assume multiplier of 1 if (!Multiplier.IsNone) { axisValue *= Multiplier.Value; } Store.Value = axisValue; }
void DoGetButton() { StoreResult.Value = How_To_Do_Touch_InputManager.GetButton(ButtonName.Value); }
public override void OnUpdate() { var forward = new Vector3(); var right = new Vector3(); if (relativeTo.Value == null) { switch (mapToPlane) { case AxisPlane.XZ: forward = Vector3.forward; right = Vector3.right; break; case AxisPlane.XY: forward = Vector3.up; right = Vector3.right; break; case AxisPlane.YZ: forward = Vector3.up; right = Vector3.forward; break; } } else { var transform = relativeTo.Value.transform; switch (mapToPlane) { case AxisPlane.XZ: forward = transform.TransformDirection(Vector3.forward); forward.y = 0; forward = forward.normalized; right = new Vector3(forward.z, 0, -forward.x); break; case AxisPlane.XY: case AxisPlane.YZ: // NOTE: in relative mode XY ans YZ are the same! forward = Vector3.up; forward.z = 0; forward = forward.normalized; right = transform.TransformDirection(Vector3.right); break; } // Right vector relative to the object // Always orthogonal to the forward vector } // get individual axis // leaving an axis blank or set to None sets it to 0 var h = (horizontalAxis.IsNone || string.IsNullOrEmpty(horizontalAxis.Value)) ? 0f : How_To_Do_Touch_InputManager.GetAxis(horizontalAxis.Value); var v = (verticalAxis.IsNone || string.IsNullOrEmpty(verticalAxis.Value)) ? 0f : How_To_Do_Touch_InputManager.GetAxis(verticalAxis.Value); // calculate resulting direction vector var direction = h * right + v * forward; direction *= multiplier.Value; storeVector.Value = direction; if (!storeMagnitude.IsNone) { storeMagnitude.Value = direction.magnitude; } }