using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Xeric.Runtime.MicroLibrary { /// /// /// /// /// 坐标系统换算库 /// public static class MacroTransferAxes { #region 坐标系换算 /** * 像Maya就是Y向上的三维软件,它原来属于Silicon Graphice,Inc.的硬件开发,使用的也是SGI的标准; * 以及DX,OpenGL也是使用Z缓冲区之类的名称来处理屏幕空间渲染。 * Unity,Zbrush,DirectX使用的是Y轴向上的左手坐标系 * Maya,OpenGL使用的是Y轴向上的右手坐标系 * * 像Unreal诞生时Maya还没诞生,大家都用的是3D Max,所以采用了Z轴向上的左手坐标系。 * 另外3D Max,source engine,cry engine, blender使用的是Z轴向上的右手坐标系; * * 数学上可能左手会好些 */ /// /// 将Y轴向上的坐标系转为Z轴向上的坐标系; /// /// /// public static Vector3 YupToZupAxes(Vector3 input) { return new Vector3(input.x, input.y, input.z); } /// /// 将Z轴向上的坐标系转为Y轴向上的坐标系; /// /// /// public static Vector3 ZupToYupAxes(Vector3 input) { return new Vector3(input.x, input.y, input.z); } #endregion } }