内容将会持续更新,有错误的地方欢迎指正,谢谢!
拥有更好的学习体验 —— 不断努力,不断进步,不断探索 |
助力快速掌握 UE和Unity 坐标系转换 为初学者节省宝贵的学习时间,避免困惑! |
一、左手坐标系和右手坐标系
在三维坐标中,根据Z轴(深)的不同方向,分为“右手系”和“左手系”两种坐标系。当Z轴的方向是(在一般二维直角坐标系上:向右为X轴,向上为Y轴)从眼前伸向深处时,该坐标系是左手系,反之则是右手系。
左手坐标系:
在左手坐标系中,可以用左手来演示坐标轴的方向。
- 大拇指指向 X 轴正方向,X 轴是水平的,朝右为正方向;
- 食指指向 Y 轴正方向,Y 轴是垂直的,朝上为正方向;
- 中指指向 Z 轴正方向,Z 轴垂直于屏幕,向观察者为正方向。
右手坐标系:
在右手坐标系中,可以用右手来演示坐标轴的方向。
- 大拇指指向 X 轴正方向,X 轴是水平的,朝右为正方向;
- 食指指向 Y 轴正方向,Y 轴是垂直的,朝上为正方向;
- 中指指向 Z 轴正方向,Z 轴垂直于屏幕,背离观察者为正方向;
二、UE和Unity坐标系
UE和Unity一样也是采用左手坐标系,在3d软件中,大多数软件都用红色代表x轴,绿色代表y轴,蓝色代表z轴。不同的是:
- 在UE中X轴代表前方,Y轴代表右方,Z轴代表上方;
- 在Unity中X轴代表右方,Y轴代表上方,Z轴代表前方;
三、UE和Unity坐标系的转换
-
pitch 俯仰角
UE:绕 Y 轴旋转
Unity:绕 X 轴旋转 -
yaw 偏航角
UE:绕 Z 轴旋转
Unity:绕 Y 轴旋转 -
roll 滚转角文章来源:https://www.toymoban.com/news/detail-804950.html
UE:绕 X 轴旋转
Unity:绕 Z 轴旋转文章来源地址https://www.toymoban.com/news/detail-804950.html
using System;
using UnityEngine;
public class TransformInfo
{
//X轴坐标(单位:米)
public float x;
//Y轴坐标(单位:米)
public float y;
//Z轴坐标(单位:米)
public float z;
//俯仰,UE:Y轴旋转角 Unity:X轴旋转角(单位:度)
public float pitch;
//偏航,UE:Z轴旋转角 Unity:Y轴旋转角(单位:度)
public float yaw;
//滚转,UE:X轴旋转角 Unity:Z轴旋转角(单位:度)
public float roll;
}
public class CoordinateConversion: MonoBehavior
{
/// <summary>
/// 数据类型从unity转换为ue4数据类型
/// </summary>
/// <param name="sensorInfo"></param>
/// <returns></returns>
public TransformInfo ConvertUe4(TransformInfo transformInfo)
{
// ue4 unity
float x = transformInfo .z;
float y = transformInfo .x;
float z = transformInfo .y;
float roll = -transformInfo .roll;
float pitch = -transformInfo .pitch;
float yaw = transformInfo .yaw;
transformInfo .x = x;
transformInfo .y = y;
transformInfo .z = z;
transformInfo .roll = roll;
transformInfo .yaw = yaw;
transformInfo .pitch = pitch;
return transformInfo ;
}
/// 数据类型从ue4转换为unity数据类型
public TransformInfo ConvertU3D(TransformInfo transformInfo)
{
// unity ue4
float z = transformInfo.x;
float x = transformInfo.y;
float y = transformInfo.z;
float yaw = transformInfo.yaw;
float roll = -transformInfo.roll;
float pitch = -transformInfo.pitch;
transformInfo.x = x;
transformInfo.y = y;
transformInfo.z = z;
transformInfo.roll = roll;
transformInfo.yaw = yaw;
transformInfo.pitch = pitch;
return transformInfo;
}
}
每一次跌倒都是一次成长 每一次努力都是一次进步 |
如果您喜欢本博客,请点赞和分享给更多的朋友,让更多人受益。同时,您也可以关注我的博客,以便及时获取最新的更新和文章。
在未来的写作中,我将继续努力,分享更多有趣、实用的内容。再次感谢大家的支持和鼓励,期待与您在下一篇博客再见!
到了这里,关于UE和Unity坐标系转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!