123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- namespace ChivaXR.VR
- {
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class CVR_MathTool
- {
- /// <summary>
- /// 根据ToolAxis获取分量为Value的Vec3值
- /// </summary>
- /// <param name="axis"></param>
- /// <param name="value"></param>
- /// <returns></returns>
- 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;
- }
- /// <summary>
- /// 根据ToolAxis获取Vec3的分量值
- /// </summary>
- /// <param name="axis"></param>
- /// <param name="vec3"></param>
- /// <returns></returns>
- 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;
- }
- /// <summary>
- /// Vec3消除ToolAxis分量值
- /// </summary>
- /// <param name="axis"></param>
- /// <param name="vec3"></param>
- /// <returns></returns>
- 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;
- }
- /// <summary>
- /// 获取ToolAxis的Vector3
- /// </summary>
- /// <param name="axis"></param>
- /// <returns></returns>
- 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;
- }
- /// <summary>
- /// 获取ToolAxis相对于Transform的Local -Vector3
- /// </summary>
- /// <param name="item"></param>
- /// <param name="axis"></param>
- /// <returns></returns>
- 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;
- }
- }
- }
|