UE和Unity坐标系转换

Unity与UE5坐标系转换:从原理到C#脚本的完整解决方案 在三维图形开发中,坐标系是描述物体位置、旋转和缩放的基础数学框架。不同引擎对坐标轴的定义和旋转顺序存在差异,这直接影响了资产迁移的准确性。理解左手坐标系与右手坐标系、四元数旋转表示以及变换矩阵的原理,对于实现跨引擎数据兼容至关重要。其技术价值在于能够确保模型、动画和物理数据在迁移过程中保持空间关系一致,避免出现扭曲、错位等问题。在游戏开发、虚拟制作和数字孪生等应用场景中,可靠的坐标转换方案是资产复用和管线自动化的基石。本文聚焦于解决Unity与Unreal Engine 5之间的坐标系转换难题,提供了可直接 阅读详情
AI摘要

本文详细介绍了UE和Unity游戏引擎中的坐标系类型,左手坐标系和右手坐标系的区别,以及如何在两者间进行转换,包括俯仰、偏航和滚转角度的对应调整。

内容将会持续更新,有错误的地方欢迎指正,谢谢!
 

UE和Unity坐标系转换
     
TechX 坚持将创新的科技带给世界!

拥有更好的学习体验 —— 不断努力,不断进步,不断探索
TechX —— 心探索、心进取!

助力快速掌握 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 滚转角

    UE:绕 X 轴旋转
    Unity:绕 Z 轴旋转

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;
	}
}





TechX —— 心探索、心进取!

每一次跌倒都是一次成长

每一次努力都是一次进步

END
感谢您阅读本篇博客!希望这篇内容对您有所帮助。如果您有任何问题或意见,或者想要了解更多关于本主题的信息,欢迎在评论区留言与我交流。我会非常乐意与大家讨论和分享更多有趣的内容。
如果您喜欢本博客,请点赞和分享给更多的朋友,让更多人受益。同时,您也可以关注我的博客,以便及时获取最新的更新和文章。
在未来的写作中,我将继续努力,分享更多有趣、实用的内容。再次感谢大家的支持和鼓励,期待与您在下一篇博客再见!
UE4 虚幻引擎,3D数学(一),3D坐标系,2D坐标系 1、3D坐标系 2、2D坐标系 资料来源:https://www.aboutcg.org/courseDetails/1050/introduce 阅读详情

相关推荐

UE4 坐标系坐标轴旋转轴

1.UE4的X轴是前方。 2. UE4和unity都是左手坐标系。 3. UE4中,Rotation的X是翻滚角Roll,围绕X轴旋转。Y是俯仰角pitch,围绕Y轴旋转。Z当然是偏航角yaw了,围绕Z轴。   (翻滚)Roll,(俯仰)Pitch,(偏航)Yaw如下(顾名思义很好记):     4. UE4里,蓝图中的rotation的三个依次为roll,pitch,yaw。...

qq_35760525的博客 2万+

UE基础 —— 坐标系统与空间

坐标系统与空间;

NapoleonCoder的博客 4989

UE与Unity坐标系差异解析:跨引擎协作的实战填坑指南

在3D图形开发与游戏引擎领域,坐标系是描述物体在虚拟空间中位置、旋转和缩放的基础数学框架。其核心原理在于通过轴向定义(如X、Y、Z轴的正方向)和旋转顺序(如欧拉角顺序)来构建一个统一的参考系。理解不同坐标系系统的差异,对于实现跨平台渲染、资产复用和多引擎协同开发具有关键的技术价值,能有效避免模型错位、动画扭曲等常见问题。尤其在数字孪生、跨平台游戏开发以及大型影视动画制作管线中,统一的坐标转换是保障数据流畅交换与视觉一致性的基石。本文聚焦于虚幻引擎(UE)与Unity这两大主流引擎在坐标系上的核心差异,深入探

weixin_34008805的博客 382

UE 坐标系学习

叉乘(Cross Product) 又称 向量积(Vector Product)点乘(Dot Product) 又称。

qq_52825422的博客 1712

UE与Unity坐标系转换实战:从原理到代码解决跨引擎开发难题

在3D图形开发中,坐标系是描述物体位置、朝向和运动的基础。其核心原理在于定义了三维空间中X、Y、Z轴的方向与手性(左手或右手坐标系),这直接决定了向量运算、旋转变换和空间感知的数学规则。理解坐标系差异的技术价值在于实现资产复用、数据互通和跨平台协作,是构建高效游戏开发管线与工具链的关键。尤其在涉及Unreal Engine与Unity两大主流引擎的项目迁移、网络同步或工具开发时,两者默认的轴向定义不同(UE为Z轴向上、X轴向前,Unity为Y轴向上、Z轴向前)会引发模型朝向错乱、动画数据异常等典型问题。本文

weixin_34008933的博客 787

从左手到右手:UE与Unity坐标系转换的实战指南

本文详细解析了UE与Unity在左手坐标系与右手坐标系转换中的实战技巧,包括轴向定义差异、欧拉角陷阱及四元数解决方案。通过具体案例和代码示例,帮助开发者高效处理模型朝向、物理模拟等常见问题,并分享自动化工具链搭建与性能优化经验。

weixin_27605509的博客 271

别再死记硬背了!用Unity/Unreal Engine的调试工具可视化理解OpenGL坐标系转换

本文介绍如何利用Unity和Unreal Engine的调试工具可视化理解OpenGL坐标系转换过程,避免死记硬背转换公式。通过实时观察顶点在不同坐标系下的位置变化,用颜色和线条直观展示转换过程,帮助开发者深入理解3D图形渲染的核心基础。

weixin_30329623的博客 476

别再搞混了!手把手教你用C#代码搞定UE5和Unity之间的坐标转换(附完整Demo)

本文详细解析了UE5与Unity之间的坐标系转换问题,通过C#代码实现左手坐标系与右手坐标系的精准转换。文章提供了完整的Demo和实战工具类,帮助开发者解决跨引擎协作中的坐标和旋转数据转换难题,提升开发效率。

weixin_30564901的博客 535

从‘左手定则’到代码:用生活例子彻底搞懂UE和Unity的坐标系差异

本文深入解析了UE和Unity在坐标系上的核心差异,通过生活化例子和代码示例,帮助开发者理解左手坐标系与右手坐标系的转换逻辑。从驾驶舱到三维空间,详细对比了两大引擎的轴向定义,并提供了实用的坐标系转换代码和避坑指南,助力跨引擎开发。

weixin_30753873的博客 383

OpenDRIVE格式在Unity与Unreal Engine中的实战应用与仿真闭环构建

OpenDRIVE作为描述道路网络的开放XML标准,定义了车道、路沿、交通标志等静态元素的几何与逻辑关系,是自动驾驶仿真领域的通用数据格式。其核心原理在于通过参考线和参数化偏移来精确描述道路三维几何与拓扑。这一标准的技术价值在于实现了高精度道路数据的跨平台、跨工具交换,为仿真测试提供了统一的数据基础。在应用场景上,OpenDRIVE数据广泛应用于自动驾驶算法测试、驾驶模拟器开发以及数字孪生城市建设。本文将探讨如何将OpenDRIVE数据导入Unity和Unreal Engine两大主流游戏引擎,解决坐标系转

weixin_30628801的博客 392

别再搞混了!UE5和Unity 2022坐标轴互换保姆级代码(附避坑清单)

本文详细解析了UE5和Unity 2022坐标系转换的核心原理与实战技巧,提供保姆级代码示例和避坑清单。从左手坐标系与右手坐标系的本质差异到旋转角度的隐藏陷阱,再到生产级转换工具的实现,帮助开发者高效解决跨引擎开发中的坐标轴互换问题。

weixin_30268071的博客 186

别再死记硬背!用Unity/Unreal引擎的实战案例,彻底搞懂OpenGL坐标系转换

本文通过Unity和Unreal Engine的实战案例,深入解析OpenGL坐标系转换的核心原理与应用。从模型坐标系到屏幕坐标系的完整转换流程,结合深度图重建世界坐标等实用场景,帮助开发者彻底理解坐标系转换公式,提升游戏开发效率与特效实现能力。

weixin_42627853的博客 359

CesiumForUnreal之UE世界坐标与WGS84经纬度坐标转换原理与应用

CesiumForUnreal之UE世界坐标与经纬度坐标转换原理与应用

专注GIS开发 7417

3DMAX与MAYA在Unity与UE中的旋转、轴向关系梳理

坐标系关系:右手坐标系(3dmax) -> 左手坐标系(unity)轴向关系:比例关系:未知 旋转关系: 3DMAX(0,0,0) -> Unity(-90,0,0) 3DMAX(90,0,0) -> Unity(0,0,0)未完待续坐标系关系:右手坐标系(3dmax) -> 左手坐标系(UE)轴向关系:比例关系:未知 旋转关系: 3DMAX(0,0,0) -> UE(90,0,0) 3DMAX(90,0,0) -> UE(0,0,0)未完待续

UE4引擎技术分享 3293

Bootloader详解,理解Bootloader看这篇就够了

这里写目录标题一、Bootloader作用(目的)二、完成Boot最终目的的前提条件三、对前提条件的详细说明3.1、对前提条件(1)的说明:3.2、对前提条件(2)的说明:3.3、对前提条件(3)的说明:3.4、对前提条件(4)的说明:3.4、对前提条件(5)的说明:四、loader是干啥的 一、Bootloader作用(目的) Bootloader=Boot + loader Boot的目的: 最终目的:跳到C语言中;为了C语言运行程序会进行一系列的初始化,系统一上电后如何通过一系列的设置让软件程序员

iduuigdg的博客 11万+

AF3 ProteinDataset类的_patch方法解读

AlphaFold3 protein_dataset模块 ProteinDataset 类  _patch 方法的主要目的是围绕锚点残基(anchor residues)裁剪蛋白质数据,提取一个局部补丁(patch)作为模型输入。

qq_27390023的博客 1147

UE 虚幻引擎 pitch yaw roll 详解

对于右手坐标系而言: Pitch:围绕X轴旋转,也叫做俯仰角。 Yaw:围绕Y轴旋转,也叫偏航角。 Roll:围绕Z轴旋转,也叫翻滚角。 但是在UE4中使用的是左手坐标系,所以对应的是: Pitch:沿着Y轴旋转; Roll:沿着X轴旋转; Yaw:沿着Z轴旋转; Rotator 一、(Roll,Pitch,Yaw) 二、Rotator(0,0,0)等价于Vector(1,0,0) 三...

hhw_hhw的博客 2283

Intouch间接变量(扩展)

间接变量只是Intouch提供给开发者的便捷方式之一,并不是所有情况都一定要使用间接变量,有时候用条件语句或者内存变量的方式也能起到类似的作用。

weixin_41571357的博客 2168

别再搞混了!用C#代码搞定UE5和Unity的坐标转换(附完整代码示例)

本文详细解析了UE5与Unity坐标系转换的核心差异,并提供了完整的C#代码解决方案。通过对比轴向定义、旋转顺序和层级关系,帮助开发者高效解决跨引擎开发中的坐标错乱问题,附赠可直接使用的工具类和性能优化技巧。

weixin_30423977的博客 348

CoppeliaSim+matlab+simulink七轴机械臂仿真

七轴机械臂vrep+matlab+simulink 仿真

a1233219的博客 3546

DID实战指南:从平行趋势检验到PSM-DID的Stata全流程解析

本文详细解析了双重差分法(DID)在政策评估中的应用,从平行趋势检验到PSM-DID的Stata全流程操作。通过实例演示和代码示例,帮助研究者掌握DID方法的核心逻辑、前提条件验证及稳健性检验技巧,提升因果推断研究的准确性。

weixin_29234239的博客 741

开发手札:UnrealEngine和Unity3d坐标系问题

一种x轴朝前、y轴朝右、z轴朝上的坐标系。这就麻烦了,不论是左右手坐标系,我仅需少量修改就能自适应,避免改变美术输出资源的标准。我得在建模工具里预先把坐标系转换成左右手坐标系后,进ue4才能正常做几何运算,现在都搞不懂怎么跟美术同事一起定建模规范了。我个人还是比较喜欢标准左右手坐标系的三维引擎,几何算法匹配起来方便。网络模块通用性很高,毕竟协议都是通用网络协议,改造后没啥问题。然后按照左手坐标系的标准导出到ue4才能应用标准左手几何算法。同时自己的几何算法都是基于左手坐标系计算的。

羊羊的博客 648

不用Root!这些隐藏代码能一键开启安卓诊断端口(小米/OPPO/魅族机型实测)

本文提供了一份无需Root权限即可开启安卓手机诊断端口的实用指南。通过拨号盘输入特定隐藏代码,小米、OPPO、魅族等机型的用户可以一键激活此工程模式,从而连接电脑进行基带数据备份(如QCN文件)或故障排查。文章详细列出了各品牌指令、操作验证步骤,并强调了备份IMEI等关键数据的重要性与操作风险,旨在帮助用户在紧急情况下修复网络问题。

weixin_29260291的博客 272

UE5与Unity坐标转换全解析:左手系到右手系的C#实战方案

在三维图形开发与游戏引擎中,坐标系是描述物体位置、朝向和运动的基础。左手坐标系与右手坐标系是两种根本不同的空间定义方式,其轴向(前、右、上)和旋转正方向的规定存在本质差异。理解并正确处理这两种坐标系之间的转换,是实现跨引擎协作、资产迁移与数据同步的核心技术挑战,尤其在涉及Unity(左手系)与Unreal Engine 5(右手系)的项目中。其技术价值在于确保虚拟对象在不同平台间空间关系的一致性,是构建跨平台工具链、实现多引擎数据管道以及进行VR/AR交互数据融合的关键环节。本文聚焦于这一核心问题,通过C#

weixin_30410119的博客 433

海思3559av100平台lan9500模块调试记录

1. 前言 通过USB2.0接口扩展一路百兆虚拟网口 2. 配置lan9500驱动 make ARCH=arm64 menuconfig 开启LAN95XX驱动,编译进内核 保存内核配置 3. 编译内核 make ARCH=arm64 CROSS_COMPILE=aarch64-himix100-linux- uImage -j 20 cd ../../arm-trusted-firmware/arm-trusted-firmware ./mk.sh cp ...

jzwjzw19900922的博客 908

枪支/刀具检测 (gun, knife) - SIXray, Clasp Dataset,YOLOv11+UI界面+数据集

python复制编辑# 计算 CIoU 损失。

YOLO 539
上一篇: Unity编辑器扩展之GenericMenu菜单扩展
下一篇: Unity Bound详解
沐沐森的故事
博客等级 码龄9年 3791粉丝 48原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐沐森的故事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值