项目团队中的分工协作必不可少,在UE项目中进行版本控制非常必要。UE支持使用Perforce和SVN进行版本管理,此处选用自己比较熟悉的SVN。


1.使用SVN进行源码管理

通过编辑器偏好设置窗口(编辑(Edit)> 编辑器偏好设置(Editor Preferences)> 加载和保存(Loading & Saving))启用源码管理。

选择关卡编辑器窗口的源码管理,输入SVN库地址、用户名及密码等,选择“接受设置”开始使用源码管理。

源码管理设置后,点击“源码管理-提交到源码管理”。

可以看到待提交文件列表,不同图标代表不同状态,与其他SVN插件的表示形式一致。输入变更列表描述,属于必填,之后点击提交即可。

在设置完源码管理后,同样可以通过”文件-提交到源码管理“将UE项目文件提交到远程代码库。

2.需要纳入源码管理的内容

UE项目体积都比较大,尤其是一通操作后好多个G都是正常的,这里面大部分是临时文件,全部提交到SVN库也是不现实的。一方面要充分利用UE引擎自带的SVN源码管理功能,另一方面也要详细掌握UE项目的文件目录结构。

UE项目中有以下常见目录,其作用描述如下:

  • Binaries - 包含可执行文件或编译期间创建的其他文件。

  • Build - 包含编译引擎或游戏所需的文件,包括为某些特定平台创建项目版本时所需的文件。

  • Config - 配置文件,包含的参数可用于控制引擎的行为。你在游戏项目Config文件中设置的值会覆盖 Engine\Config 目录中设置的值。

  • Content - 保存引擎或游戏中的内容,例如资产包、贴图。

  • DerivedDataCache - 包含派生数据文件。这类数据专为被引用内容生成,并且在加载时生成。假如被引用内容未生成过缓存文件,则加载时间会显著增加。

  • Intermediate - 包含编译引擎或游戏时生成的临时文件。在游戏目录中,着色器也保存在Intermediate目录中。

  • Saved - 包含自动保存文件、配置(.ini)文件和日志文件。此外,Engine > Saved 目录还包含崩溃日志、硬件信息和Swarm选项与数据。

  • Source - 包含引擎或游戏的所有源文件,包括引擎源代码、工具和游戏类等。

    • Engine - Engine目录中的源文件组织结构如下:

      • Developer - 编辑器和引擎共同使用的文件。

      • Editor - 仅供编辑器使用的文件。

      • Programs - 引擎或编辑器使用的外部工具。

      • Runtime - 仅供引擎使用的文件。

    • Game - 游戏项目目录中的源文件按模块分组,一个模块一个目录。每个模块包含以下内容:

      • Classes - 包含所有的头文件(.h)。

      • Private - 包含所有 .cpp 文件,包括游戏逻辑类以及各种模块的实现文件。

      • Public - 包含模块的头文件。

源码管理配置完成后,默认提交至SVN库的内容有以下目录。

3.使用VisualStudio开发时的源码管理

由于UE支持使用蓝图和C++类进行开发,C++开发人员可以使用VisualStudio参与项目开发协作。

以VS2022为例,进行UE项目开发的前提是启用”使用C++的游戏开发“,安装一些列组件。

另外UE项目创建时如果选择的是蓝图项目,是没有C++的解决方案文件(sln)的,需要将蓝图项目转化为C++代码项目。

选择”文件-新建C++类“,选择父类为”无“,点击”下一步“确认保存路径。

点击”创建类“,UE引擎开始创建并编译类,编译完成后会在项目根目录生成VS的解决方案文件。

使用VS打开C++代码项目,同样可以使用SVN插件进行源码管理。

如何在UnrealEngine虚幻引擎中进行版本管理相关推荐

  1. 如何在UnrealEngine虚幻引擎中加载Web页面

    对于非游戏开发团队来讲,在面向非游戏领域的UE项目中嵌入Web页面并实现交互无疑能充分利用现有开发资源和流程,WebUI插件能提供完整的Web页面加载及交互手段,让团队中的UE开发工程师和Web开发工 ...

  2. 在虚幻引擎中使用Python批处理3:批量修改属性

    Unreal Python API 文档: - https://docs.unrealengine.com/4.26/en-US/PythonAPI/ 在上一篇文章在虚幻引擎中使用Python批处理2 ...

  3. 虚幻引擎中的反射(译)

    原文链接:https://www.unrealengine.com/en-US/blog/unreal-property-system-reflection?sessionInvalidated=tr ...

  4. 如何获取UnrealEngine虚幻引擎的WebUI插件

    使用UnrealEngine虚幻引擎开发非游戏类型的大型应用往往会涉及到大量UI界面的制作,使用原生UI框架需要投入大量专业人员.如果能够利用常规的Web页面作为UI,对于拥有Web开发人员的团队来讲 ...

  5. 虚幻4 python_技术前瞻:虚幻引擎中的 Python

    原标题:技术前瞻:虚幻引擎中的 Python 在Autodesk University上,我们简单展示了最新的研究,它将解决CAD数据导入虚幻引擎这一复杂问题.这是Datasmith研发过程中的重大突 ...

  6. 元宇宙开发:你在虚幻引擎中的第一个虚拟现实游戏

    了解如何开发零编程背景的Oculus Quest游戏 你会学到什么 为Oculus Quest构建应用程序 设计和开发虚拟现实游戏 在虚幻引擎中工作 使用材料和纹理 优化内容,实现移动和虚拟现实游戏的 ...

  7. 《从C语言过渡到C++和虚幻引擎中的C++编程》教程①

    本系列文字教程的受众对象是刚刚经历完大一上的C语言期末考试的.仅具有一定C语言基础的新生. 如果您是上述对象,在看完本系列教程之后,您将收获C++编程入门和虚幻引擎中的C++编程入门知识以及一些游戏开 ...

  8. 教你学会虚幻引擎中的光线追踪功能使用,此教程必看

    在本教程中将展示虚幻引擎中的光线追踪功能.为了比较光线追踪引入的变化,我从头开始构建了一个独特的环境,其中包括各种材料和模块化资产.光线追踪是一个很棒的工具,可以让你更好地控制场景的视觉方面. 启用光 ...

  9. 如何改善虚幻引擎中的游戏线程CPU性能表现

    您游戏中的帧频率是不是太低? 您了解为什么会发生这种现象吗? 这是不是由于您同时生成了太多敌人?还是由于某个特定敌人过于消耗系统资源? 是由于您设置了过多的视觉特效,还是由于您所设计的战斗系统所造成的 ...

最新文章

  1. 字节跳动《Python高频面试题》火了,完整版 PDF 开放下载!
  2. Ajax框架及原理分析--视频
  3. 隔离公司各个部门--虚拟路由器(RIP)
  4. 面试官:GET和POST两种基本请求方法有什么区别
  5. 数组索引必须为正整数或逻辑值是什么意思_贪心算法:K次取反后最大化的数组和...
  6. 光纤收发器在使用过程中有哪些需要注意的事项?
  7. PWN-PRACTICE-CTFSHOW-4
  8. html 文本第一行显示,html – 在第一行后更改文本对齐
  9. 程序员的绩效到底是应该衡量项目,还是改 Bug 量?
  10. spark写入数据到elasticsearch
  11. OC中的@的作用研究
  12. GD32(6)中文字库
  13. 利用Scrapy爬取豆瓣电影
  14. 大数据去重解决方案总结
  15. 同为IM社交产品中的王者,QQ与微信到底有什么区别
  16. 【C++】抽象和类(2)--如何实现类成员函数?
  17. redis安装(主从)
  18. 杰理之音量控制【篇】
  19. 火山PC工具条使用案例教程
  20. 全面高效的SEO视频教程,优化自己搞定

热门文章

  1. springboot数据库敏感数据加密解密
  2. 微信小程序md5加密支持中文和特殊字符
  3. java freemarker 导出富文本到Word文档
  4. 常见的导数公式及证明
  5. android 系统的组成,简析Android 的GUI 系统组成
  6. 用css动态实现圆环百分比分配——初探css3动画
  7. 解决打印机无法删除的问题
  8. django第一章(django配置相关和简单的登录实例)
  9. Pyautogui 实现键盘鼠标动作
  10. 塔科夫为什么远程服务器返回错误,逃离塔科夫登陆错误解决教程