using UnityEngine; namespace XericLibrary.Runtime.Blueprint { /// /// 蓝图 UGUI 输入工具静态辅助类。 /// 提供跨新旧输入系统的统一鼠标位置和按钮状态查询。 /// public static class BlueprintUGUIInputManager { /// 当前帧鼠标/指针在屏幕空间的位置,每帧由 BlueprintInputTool_UGUI 更新。 public static Vector2 MousePosition { get; internal set; } /// /// 更新静态鼠标位置。 /// 由 每帧在 OnUpdate 中调用。 /// public static void UpdateMousePosition() { #if ENABLE_INPUT_SYSTEM MousePosition = UnityEngine.InputSystem.Mouse.current?.position.ReadValue() ?? Vector2.zero; #else MousePosition = (Vector2)Input.mousePosition; #endif } /// /// 返回当前是否按住指定鼠标按钮。 /// /// 0=左键, 1=右键, 2=中键 public static bool IsButtonPressed(int button) { #if ENABLE_INPUT_SYSTEM var mouse = UnityEngine.InputSystem.Mouse.current; if (mouse == null) return false; return button switch { 0 => mouse.leftButton.isPressed, 1 => mouse.rightButton.isPressed, 2 => mouse.middleButton.isPressed, _ => false, }; #else return Input.GetMouseButton(button); #endif } } }