namespace ChivaXR.VR { using System.Collections; using System.Collections.Generic; using UnityEngine; public class CVR_MathTool { /// /// 根据ToolAxis获取分量为Value的Vec3值 /// /// /// /// public static Vector3 GetToolAxisVector3(ToolAxis axis, float value) { switch (axis) { case ToolAxis.x: return new Vector3(value, 0, 0); case ToolAxis.y: return new Vector3(0, value, 0); case ToolAxis.z: return new Vector3(0, 0, value); } return Vector3.zero; } /// /// 根据ToolAxis获取Vec3的分量值 /// /// /// /// public static float GetToolAxisVec3Value(ToolAxis axis, Vector3 vec3) { switch (axis) { case ToolAxis.x: return vec3.x; case ToolAxis.y: return vec3.y; case ToolAxis.z: return vec3.z; } return 0; } /// /// Vec3消除ToolAxis分量值 /// /// /// /// public static Vector3 Vec3RemoveToolAxisValue(ToolAxis axis, Vector3 vec3) { switch (axis) { case ToolAxis.x: return new Vector3(0, vec3.y, vec3.z); case ToolAxis.y: return new Vector3(vec3.x, 0, vec3.z); case ToolAxis.z: return new Vector3(vec3.x, vec3.y, 0); } return Vector3.zero; } /// /// 获取ToolAxis的Vector3 /// /// /// public static Vector3 GetToolAxisVec3(ToolAxis axis) { switch (axis) { case ToolAxis.x: return Vector3.right; case ToolAxis.y: return Vector3.up; case ToolAxis.z: return Vector3.forward; } return Vector3.zero; } /// /// 获取ToolAxis相对于Transform的Local -Vector3 /// /// /// /// public static Vector3 GetToolAxisLocalVec3(Transform item, ToolAxis axis) { switch (axis) { case ToolAxis.x: return item.right; case ToolAxis.y: return item.up; case ToolAxis.z: return item.forward; } return Vector3.zero; } } }