using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace XericLibrary.Runtime.MacroLibrary { /// /// 矢量宏库 /// [Obsolete("与扩展库放在一起,不要单独出现")] public static class MacroVector3 { /// /// 获取与世界正交轴最近的一条轴线 /// /// /// public static Vector3 GetWorldNormalAxis(Vector3 vector) { Vector3[] axes = { Vector3.right, Vector3.up, Vector3.forward }; float minAngle = float.MaxValue; Vector3 minAngleAxis = Vector3.zero; foreach(Vector3 axis in axes) { float dot = Vector3.Dot(vector, axis); float angle = Mathf.Abs(dot); if(angle < minAngle) { minAngle = angle; minAngleAxis = axis * Mathf.Sign(dot); } } return minAngleAxis; } } }