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;
}
}