/// <summary> /// 处理道具选择 /// </summary> /// <param name="callback">热键参数</param> private void OnItemAxisStateChanged(HotkeyCallback callback) { if (InputManager.Instance.CurrentInputDevice != InputManager.GameInputDevice.KeyboardAndMouse) { SetSelection(callback.ReadValue <Vector2>()); } else { m_MouseVector = m_MouseVector + callback.ReadValue <Vector2>(); SetSelection(m_MouseVector); } }
/// <summary> /// 飞船移动时 /// </summary> /// <param name="info">热键状态</param> private void OnShipMove(HotkeyCallback info) { Vector2 dir = info.ReadValue <Vector2>(); m_XOffset = dir.x; m_ZOffset = dir.y; }
public void OnMoveStick(HotkeyCallback obj) { var vector = obj.ReadValue <Vector2>(); var engine = m_EngineAxis; m_EngineAxis = GetDirection(vector); m_EngineAxis.y = engine.y; }
/// <summary> /// 手表输入方向改变时 /// </summary> /// <param name="callback">热键状态</param> private void OnWatchDirectionStateChanged(HotkeyCallback callback) { Vector2 dir = callback.ReadValue <Vector2>(); if (dir.x != 0 || dir.y != 0) { SetSelection(dir); } }
private void OnCameraStick(HotkeyCallback callbackContext) { m_CameraVector = callbackContext.ReadValue <Vector2>(); if (callbackContext.control.name == "delta") { m_CameraVector *= 0.1f; } m_CameraVector.y *= -1; }
/// <summary> /// 右摇杆输入时 /// </summary> /// <param name="callback"></param> private void OnRightStickChanged(HotkeyCallback callback) { if (m_ScrollControllers.Count > 0) { Vector2 axis = callback.ReadValue <Vector2>(); foreach (ScrollController controller in m_ScrollControllers) { controller.Target.verticalNormalizedPosition += axis.y * controller.ScrollerMulti; } } }
/// <summary> /// 手表输入轴状态改变时 /// </summary> /// <param name="callback">热键状态</param> private void OnWatchAxisStateChanged(HotkeyCallback callback) { if (m_WatchKeyHolding && m_LookAtState == TimeLineState.OPENED) { if (InputManager.Instance.CurrentInputDevice != InputManager.GameInputDevice.KeyboardAndMouse) { Vector2 v2 = callback.ReadValue <Vector2>(); if (v2.x != 0 && v2.y != 0) { SetSelection(v2); } } else { m_WatchMouseAxis = m_WatchMouseAxis + callback.ReadValue <Vector2>(); if (m_WatchMouseAxis.magnitude > 10) { SetSelection(m_WatchMouseAxis); } } } }
private void JoyStick(HotkeyCallback obj) { var vector = obj.ReadValue <Vector2>(); if (Mathf.Abs(vector.x) < 0.1f) { vector.x = 0f; } if (Mathf.Abs(vector.y) < 0.1f) { vector.y = 0f; } m_EngineAxis.x = vector.x; m_EngineAxis.z = vector.y; //Debug.LogErrorFormat($"JoyStick vectorX:{vector.x} vectorY:{vector.y}"); }
public void OnCameraStick(HotkeyCallback callbackContext) { switch (m_SpacecraftInputProperty.GetMotionType()) { case MotionType.Mmo: { m_MouseStick = callbackContext.ReadValue <Vector2>(); if (callbackContext.control.name == "delta") { m_MouseStick *= 0.05f; } m_MouseStick.y *= -1; //摇杆死区 if (Mathf.Abs(m_MouseStick.x) < 0.1f) { m_MouseStick.x = 0; } if (Mathf.Abs(m_MouseStick.y) < 0.1f) { m_MouseStick.y = 0; } } break; case MotionType.Dof4: { if (m_SpacecraftInputProperty.IsLeap()) { return; } m_MouseStick = callbackContext.ReadValue <Vector2>(); if (callbackContext.control.name == "delta") { m_SpacecraftInputProperty.SetIsRightStick(false); if (m_MouseStick.sqrMagnitude < 0.01) { m_SpacecraftInputProperty.SetMouseDelta(Vector3.zero); return; } Set4DofCameraRot(); } else if (callbackContext.control.name == "rightStick") { m_SpacecraftInputProperty.SetIsRightStick(true); } } break; case MotionType.Dof6: { m_MouseStick6 = callbackContext.ReadValue <Vector2>(); if (callbackContext.control.name == "delta") { m_SpacecraftInputProperty.SetIsRightStick(false); Set6DofCameraRot(); } else if (callbackContext.control.name == "rightStick") { m_SpacecraftInputProperty.SetIsRightStick(true); } } break; default: break; } }
/// <summary> /// 响应右摇杆 /// </summary> /// <param name="callback"></param> private void UpdateScroll(HotkeyCallback callback) { m_RightStickValue = callback.ReadValue <Vector2>().y; }