# unitypackage_godot **Repository Path**: godotengine_mirror/unitypackage-godot ## Basic Information - **Project Name**: unitypackage_godot - **Description**: 快速将unity工程文件导入为godot - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 0 - **Created**: 2023-09-13 - **Last Updated**: 2024-03-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Godot的UnityPackage [English text](./README.md)|中文参考 `FBX2glTF`LINK已更新2023-09-03(修复过期下载) `unitypackage_util`LINK已更新2023-05-26(处理asset.meta文件中的标签) --- ![Synty in Unity](unitypackage_godot/docs/comparison-in-unity.png) ![Synty in Godot](unitypackage_godot/docs/comparison-in-godot.png) --- - 需要[Bbarcodev/FBX2glTF](https://github.com/barcoderdev/FBX2glTF)在`res://FBX2glTF`(在Windows上使用.exe) - 下载最新版本:https://github.com/barcoderdev/FBX2glTF/actions/runs/6067614287(先登录Github) - 需要[barcoderdev/unitypackage_util](https://github.com/barcoderdev/unitypackage_util)在`res://unitypackage_util`(在Windows上使用.exe) - 下载最新版本:https://github.com/barcoderdev/unitypackage_util/actions/runs/5093399353(需要先登录Github) - 确保您可以运行`/FBX2glTF--帮助“和”/unitypackage_util--来自命令行的帮助,用于检查权限 - 在`res://unitypackage_godot_config.tres`中进行配置 - 在windows上,使用.exe对FBX2glTF.exe和unitypackage_util.exe进行更新 ## 备注 - 这只在macOS 13上使用Godot 4.0.3进行了测试 - 以及Windows 10上的Godot 4.0.2 - 中的主要场景`res://unitypackage_godot/scenes/main.tscn` - 取消选中中的“立即加载资产”`res://unitypackage_godot_config.tres`只加载在UI中打开的内容 - 如果在UI中手动加载“*.unity”文件,则会转换这些文件 - 每个节点都标记有一个名为“ufile_ids”的元,其中包含一个映射回原始Unity组件的“{guid}:{component}”值列表。 ## 如何使用 初始设置: - 克隆此repo并将已编译的unitypackage_util和FBX2glTF添加到项目的根目录中 - 检查检查员`res://unitypackage_godot_config.res` - 调试日志: - **On**用于华而不实的控制台日志和调试 - **Off**以跑得更快 - 即时加载资产: - **On**以在装载包装时建造所有预制件/材料 - **Off**仅生成在文件选择器中选择的资产 - 必须手动选择`.unity`文件才能以任何一种方式生成 - 默认打开路径:文件打开对话框的可选默认位置 导入UnityPackage: - 运行项目 - 按左上角的“导入UnityPackage”按钮 - 选择`.unitypackage`文件 - 让它加载 - 探索包中的资产 - 关闭或停止运行 - 让新导入的资产实际导入 - 探索项目本身中的资产,默认位置:`res://imports/` - 每个UnityPackage生成一个文件夹 - 每个文件夹都包含“catalog.json”作为缓存文件,以便在下次运行时更快地加载 - 每个文件夹都包含指向UnityPackage文件所在位置的“location.txt” 固定导入代码: - 调整导入代码 - 清除需要重新导入的内容`res://imports/` - 可以删除单个文件以加快进程 - 再次运行导入(import) - 将修复程序提交回回购 ## 它的工作原理 - `OS.execute`用于调用`unitypackage_util` - `unitypackage_util{PACKAGE}dump`检索所有打包的文件数据 - `unitypackage_util{PACKAGE}extract{GUID}--json`用于将单个yaml文件提取为json - `unitypackage_util{PACKAGE}extract{GUID}--fbx2gltf--base64`用于提取转换为glb的fbx文件,格式为base64 - UI中的资产按GUID进行跟踪并提取 - JSON数据以原生格式重新构建,根据需要提取更多文件 - 模型、网格、图像、材质、场景(?*.unity文件)、预制件在加载/转换时保存到磁盘 - 修改了FBX2glTF以允许stdin/stdout,并在每个节点上存储透视/转换原点 - PivotFixer(GLTFDocumentExtension)使用这些额外存储的数据来应用变换原点,稍后在构建MeshInstance3D节点时使用 - 从左到右的转换由-X位置和-X/-W四元数处理 - macOS使用管道在unitypackage_util和FBX2glTF之间进行通信 - Windows需要为此使用临时文件,该临时文件临时创建在配置“提取路径”文件夹中。 ## 着色器 原始着色器与新的占位符着色器一起存储在“.txt”文件中。 原始着色器中的统一格式将复制到占位符中,以便材质保持其着色器属性。 着色器特性值也设置为材质上的元数据作为备份。 ## 当前已实施 组件: - GameObject - 网格过滤器 - 网格渲染器 - 蒙皮网格渲染器 - 变换 - 条纹变换 - Light - 摄像头 进口商: - 默认进口商 - 模型导入器 - NativeFormatImporter - 前言导入器 - 纹理导入器 - 着色器导入器(请参见[着色器](#着色器)部分) - 音频导入程序 ## 已知问题 请参阅:https://github.com/barcoderdev/unitypackage_godot/issues