using System; using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// 实用工具 /// public static class Utilities { /// 查询场景中的第一个类型 public static bool FindObject(out T type) where T : UnityEngine.Object { T[] types = GameObject.FindObjectsOfType(); type = types.Length > 0 ? types[0] : null; return type != null; } /// 查询场景中的第一个类型 public static void FindObjects(Action action) where T : UnityEngine.Object { T[] types = GameObject.FindObjectsOfType(); for (int i = 0; i < types.Length; i++) { action?.Invoke(types[0]); } } /// 输入方向 转换成 目标的相对方向 public static Vector3 TransferDirection(Vector3 forward, Vector3 right, Vector2 inputDirection) { // 确保前方和右方方向在水平面上 forward.y = 0; right.y = 0; // 归一化方向向量 forward.Normalize(); right.Normalize(); // 计算移动方向 return (forward * inputDirection.y + right * inputDirection.x).normalized; } }