UDK游戏开发基础命令
编译
增量重新编译Debug版本UnrealScript脚本 UDK.exe make -debug
增量重新编译Release版本UnrealScript脚本 UDK.exe make -release
全量重新编译Debug版本UnrealScript脚本 UDK.exe make -debug -full
全量重新编译Release版本UnrealScript脚本 UDK.exe make -release -full
增量重新编译Debug版本UnrealScript脚本(在.u文件中移除掉源代码信息) UDK.exe make -debug -stripsource
增量重新编译Debug版本UnrealScript脚本,native脚本需更新c++头文件时,不弹框确认,直接生成 UDK.exe make -debug -auto
Error, Unable to create object of type 'ClassXXX': native class layout differs from script layout. Please build C++ before continuing to avoid data corruption.
后台(不显示窗口)增量重新编译Debug版本UnrealScript脚本(不显示窗口),native脚本需更新c++头文件时,不弹框确认,直接生成 UDK.exe make -debug -silent -auto
注1:编译完成后,可通过Ctrl+C关闭编译窗口
注2:如果新建一个名为MyGame的包(类型:生成文件项目 这种项目的c++代码需要专门的工具进行编译,如:UnrealBuildTool.exe),
另外,为了UDK能编译该包的uc代码,需要在DefaultEngine.ini中进行配置
[UnrealEd.EditorEngine]
+EditPackages=UTGame
+EditPackages=UTGameContent
+EditPackages=MyGame
MyGame工程目录下,需要新建3个目录Classes、Inc、Src,分别用来放置uc脚本、.h头文件、cpp文件。
注:uc脚本放在Classes目录中就会被编译,添加到工程中只是方便在vs中编辑和查找代码内容
运行
启动编辑器 UDK.exe editor
TGameRelease.exe editor -MinStartup -NoLoadStartupPackages -NoGADWarning // 自定义的非全量加载方式
Clinet启动一张地图 UDK.exe VCTF-Sandstorm.udk 或 UDK.exe VCTF-Sandstorm
Server启动一张地图 UDK.exe server VCTF-Sandstorm.udk 或 UDK.exe server VCTF-Sandstorm
调试 (vs要安装nFringe调试插件,nFringe需为正式版本或Trial版本)
注1:C++与uc脚本的调试是互斥的;调试C++时就不能调试uc,调试uc时就不能调试C++;无论是调试C++还是uc脚本,都需要先编译成Debug版本
仅仅拥有UDK是无法写C++的Native代码的(原因是:UDK中没有提供C++相关的.h和库文件)
注2:如果Trial版本的nFringe到期了,可以删除Microsoft_Corporation中所有东西,然后重新安装nFringe的Trial版本
注3:在{}及变量定义所在行打断点是不会被命中的
注4:在某些初始化期间的脚本函数(如:InitGame、PreBeginPlay、PostBeginPlay、Login等)无法触发断点,可通过restartlevel命令来重启关卡来触发
1.1.34.193之后版本的nFringe + 2010-10及之后版本的UDK解决了该问题
注5:最新版本的nFringe支持调试时悬浮查看变量数值
注6:引擎通过UDebugger* GDebugger(定义在Core.cpp中)与vs的nFringe插件进行通讯来调试uc代码,UDebugger相关逻辑在Development\Src\Engine\Debugger目录中
注7:项目在使用nFringe调试之前,nFringe会将自己安装目录下的UcDebuggerPipes.dll拷贝到项目工程的Binaries\Win32目录中
将UcDebuggerInterface.dll拷贝到Binaries\Win32\WTDebugger目录中并重命名为UCDebuggerSocket.dll
win7:C:\Users\【用户名】\AppData\Local\Microsoft_Corporation目录,删除里面所有东西
例:C:\Users\Administrator\AppData\Local\Microsoft_Corporation
xp:C:\Documents and Settings\【用户名】\Local Settings\Application Data\Microsoft_Corporation目录,删除里面所有东西
例:C:\Documents and Settings\Administrator\Local Settings\Application Data\Microsoft_Corporation
调试器启动一张地图 vs中填入命令参数:VCTF-Sandstorm.udk 或 VCTF-Sandstorm
然后执行 “调试” -- “Start UnrealScript Debugging ”
Attach调试一张地图 运行UDK.exe VCTF-Sandstorm.udk -vadebug 或 UDK.exe VCTF-Sandstorm -vadebug
然后用vs2008 Attach上进程进行调试
改善C++调试:在vs进行C++调试时更好地查看Unreal自定义类型变量(如:FName,FString,TArray等)
(1) vs2008安装目录下找到autoexp.dat文件(Microsoft Visual Studio 9.0\Common7\Packages\Debugger\autoexp.dat)
将AUTOEXP.DAT_addons.zip(Development\External\Visual Studio Debugging)中所有内容追加到autoexp.dat的末尾,并重启vs2008
(2) 在vs2008:Tools - Options - Debugging - 取消勾选“Show raw structure of objects in variables windows”
uc调试:
(1) 当将Halt on accessed 'none'设置为True:调试uc脚本时,当空对象访问成员函数或成员变量时,调试器暂停挂起
其他调试工具
1. 使用UDebugger.exe(UE3以前版本使用)调试uc脚本
https://wiki.beyondunreal.com/Legacy:UDebugger
https://api.unrealengine.com/udk/Two/UnrealScriptDebugger.html
2. 使用UDE(UnrealScript Development Environment,UE3使用)调试uc脚本 -- 工具在Development\Tools\UDE目录中
https://api.unrealengine.com/udk/Three/DebuggerInterfaceCH.html
https://api.unrealengine.com/udk/Three/DebuggerInterface.html
3. 使用Unreal Script IDE(试用了一下,速度非常慢)调试uc脚本
https://github.com/Zinggi/UnrealScriptIDE/
注1:使用UDebugger.exe、UDE.exe和Unreal Script IDE调试器时,可使用udk.exe -autodebug启动游戏并自动与其建立调试会话并中断到调试器
注2:进入游戏后执行ToggleDebugger控制台命令来建立调试会话并中断到调试器
4. unreal-debugger调试基础库(UDebugger.exe、UDE.exe和Unreal Script IDE依赖该库,关系图如下:)
https://code.google.com/archive/p/unreal-debugger/
4. 使用Real Script IDE调试uc脚本(未使用过)
https://archive.codeplex.com/?p=uside#
查看脚本文件工具
UnCodeX:方便地浏览UnrealScript各个类之间的层次关系
https://api.unrealengine.com/udk/Three/UnCodeX.html
https://api.unrealengine.com/udk/Three/UnCodeXCH.html
https://wiki.beyondunreal.com/Legacy:UnCodeX
https://sourceforge.net/projects/uncodex/
https://github.com/elmuerte/uncodex
编译配置宏
1. C++
(1)Debug配置
#define _DEBUG 1
(2)Release配置
#define NDEBUG 1
(3)Shipping配置
#define NDEBUG 1 #define SHIPPING_PC_GAME 1
2. 脚本
(1)Debug配置 // 会自动定义bebug宏
`if(`isdefined(debug)) `endif
(2)Release配置
`if(`notdefined(debug)) `endif
开发环境
1. IDE: vs2008 + SP1 + VS90SP1-KB957912-x86 + VS90SP1-KB976656-x86
2. 安装了nFringe插件后,可以开启uc,uci文件的行号显示
2. Visual Assist X(需1862版本及以上) udn中文 udn英文
(a) 让uc脚本Find Symbols(查找符号)、Find References(查找引用)、highlight(高亮)、IntelliSense(智能感知) -- 需执行以下命令来手动开启
reg add "HKCU\Software\Whole Tomato\Visual Assist X\VANet9" /v EnableUC /t REG_BINARY /d 01 /f
(b) 自定义uc脚本的Snippets(自动完成)
① 进入C:\Users\<xxx>\AppData\Roaming\VisualAssist\Autotext目录,拷贝一份cpp.tpl并重命名为uc.tpl
② vs2008中"VAssistX" -- "Tools" -- "Edit VA Snippets...",然后将下面c++的自动完成按照uc语法编辑保存
3. DXSDK: DXSDK_Jun10 DirectX End-User Runtimes (June 2010)
若DX安装失败,请查看C:\Windows\Logs目录下的DXError.log和DirectX.log以确定问题
常见错误:S1023 -- 先卸载以下2个软件,再重新安装
Microsoft Visual C++ 2010 x86 Redistributable
Microsoft Visual C++ 2010 x64 Redistributable
如果启动UDK,还有DX相关的错误,可以使用DirectX Repaire进行修复。
4. UDK: 2010-08-BETA
5. 其他版本的UDK
http://download.udk.com/UDKInstall-2009-11-BETA.exe 版本5860 更改列表309428
http://download.udk.com/UDKInstall-2009-11-BETA-2.exe 版本5860 更改列表309428
http://download.udk.com/UDKInstall-2009-12-BETA.exe 版本6094 更改列表422614
http://download.udk.com/UDKInstall-2010-01-BETA.exe 版本6165 更改列表436666
http://download.udk.com/UDKInstall-2010-02-BETA.exe 版本6262 更改列表450718
http://download.udk.com/UDKInstall-2010-03-BETA.exe 版本6383 更改列表474472
http://download.udk.com/UDKInstall-2010-04-BETA.exe 版本6522更改列表503622
http://download.udk.com/UDKInstall-2010-05-BETA.exe 版本6699更改列表536634
http://download.udk.com/UDKInstall-2010-06-BETA.exe 版本6829更改列表558646
http://download.udk.com/UDKInstall-2010-07-BETA.exe 版本6890更改列表571338
http://download.udk.com/UDKInstall-2010-08-BETA.exe 版本7026更改列表597149
http://download.udk.com/UDKInstall-2010-09-BETA.exe 版本7258更改列表641002
http://download.udk.com/UDKInstall-2010-10-BETA.exe 版本7422更改列表674807
http://download.udk.com/UDKInstall-2010-11-BETA.exe 版本7546更改列表703463
http://download.udk.com/UDKInstall-2010-12-BETA.exe 版本7637更改列表720882
http://download.udk.com/UDKInstall-2011-01-BETA.exe 版本7748更改列表742347
http://download.udk.com/UDKInstall-2011-02-BETA.exe 版本7876更改列表776445
http://download.udk.com/UDKInstall-2011-03-BETA.exe 版本7977更改列表798121
http://download.udk.com/UDKInstall-2011-03-BETA2.exe 版本7977更改列表798121
http://download.udk.com/UDKInstall-2011-04-BETA.exe 版本8171更改列表833356
http://download.udk.com/UDKInstall-2011-05-BETA.exe 版本8364更改列表871961
http://download.udk.com/UDKInstall-2011-06-BETA.exe 版本8623更改列表935754
http://download.udk.com/UDKInstall-2011-07-BETA.exe 版本8710更改列表955963
http://download.udk.com/UDKInstall-2011-08-BETA.exe 版本8788更改列表976115
http://download.udk.com/UDKInstall-2011-09-BETA.exe 版本8916更改列表1009027
http://download.udk.com/UDKInstall-2011-10-BETA.exe 版本9029更改列表1047102
http://download.udk.com/UDKInstall-2011-11-BETA.exe 版本9140更改列表1081640
http://download.udk.com/UDKInstall-2011-12-BETA.exe 版本9249更改列表1109819
http://download.udk.com/UDKInstall-2012-01-BETA.exe 版本9375更改列表1140738
http://download.udk.com/UDKInstall-2012-02-BETA.exe 版本9505更改列表1174198
http://download.udk.com/UDKInstall-2012-03-BETA.exe 版本9656更改列表1202061
http://download.udk.com/UDKInstall-2012-05-BETA.exe 版本9953更改列表1260027
http://download.udk.com/UDKInstall-2012-07-BETA2.exe 版本10246更改列表1340247
http://download.udk.com/UDKInstall-2012-11-BETA.exe 版本10499更改列表1426632
http://download.udk.com/UDKInstall-2012-11-BETA2.exe 版本10499更改列表1426632
http://download.udk.com/UDKInstall-2013-02-BETA.exe 版本10897更改列表1532151
http://download.udk.com/UDKInstall-2013-02-BETA2.exe 版本10900更改列表1537896
http://download.udk.com/UDKInstall-2013-05.exe 版本10905更改列表1667866
http://download.udk.com/UDKInstall-2013-07.exe 版本10907 changeList 1715227
http://download.udk.com/UDKInstall-2014-02.exe 版本12097更改列表1999891
http://download.udk.com/UDKInstall-2014-05.exe 版本12264更改列表2062495
http://download.udk.com/UDKInstall-2014-08.exe 版本12466更改列表2243543
http://download.udk.com/UDKInstall-2015-02.exe 版本12791 changeList 2424394
其他
https://api.unrealengine.com/udk/Three/DevelopmentKitFirstScriptProject.html
https://api.unrealengine.com/udk/Three/DevelopmentKitFirstScriptProjectCH.html