编译
增量重新编译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=MyGameMyGame工程目录下,需要新建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需为正式版本或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_Corporationxp: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)
将(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脚本
2. 使用UDE(UnrealScript Development Environment,UE3使用)调试uc脚本 -- 工具在Development\Tools\UDE目录中
3. 使用Unreal Script IDE(试用了一下,速度非常慢)调试uc脚本
注1:使用UDebugger.exe、UDE.exe和Unreal Script IDE调试器时,可使用udk.exe -autodebug启动游戏并自动与其建立调试会话并中断到调试器
注2:进入游戏后执行ToggleDebugger控制台命令来建立调试会话并中断到调试器
4. unreal-debugger调试基础库(UDebugger.exe、UDE.exe和Unreal Script IDE依赖该库,关系图如下:)
4. 使用Real Script IDE调试uc脚本(未使用过)
查看脚本文件工具
UnCodeX:方便地浏览UnrealScript各个类之间的层次关系
编译配置宏
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: + + +
2. 安装了nFringe插件后,可以开启uc,uci文件的行号显示
2. Visual Assist X(需1862版本及以上)
(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脚本的Snipepts(自动完成)
① 进入C:\Users\<xxx>\AppData\Roaming\VisualAssist\Autotext目录,拷贝一份cpp.tpl并重命名为uc.tpl
② vs2008中"VAssistX" -- "Tools" -- "Edit VA Snippets...",然后将下面c++的自动完成按照uc语法编辑保存
3. DXSDK:
若DX安装失败,请查看C:\Windows\Logs目录下的DXError.log和DirectX.log以确定问题
常见错误: -- 先卸载以下2个软件,再重新安装
Microsoft Visual C++ 2010 x86 Redistributable Microsoft Visual C++ 2010 x64 Redistributable
如果启动UDK,还有DX相关的错误,可以使用进行修复。
4. UDK:
5. 其他版本的UDK
虚幻开发工具包发布版本的版本信息
版本5860 更改列表309428
版本5860 更改列表309428 版本6094 更改列表422614 版本6165 更改列表436666 版本6262 更改列表450718 版本6383 更改列表474472版本6522更改列表503622
版本6699更改列表536634
版本6829更改列表558646 版本6890更改列表571338 版本7026更改列表597149 版本7258更改列表641002 版本7422更改列表674807 版本7546更改列表703463 版本7637更改列表720882 版本7748更改列表742347 版本7876更改列表776445 版本7977更改列表798121 版本7977更改列表798121 版本8171更改列表833356 版本8364更改列表871961 版本8623更改列表935754 版本8710更改列表955963 版本8788更改列表976115 版本8916更改列表1009027 版本9029更改列表1047102 版本9140更改列表1081640 版本9249更改列表1109819 版本9375更改列表1140738 版本9505更改列表1174198 版本9656更改列表1202061 版本9953更改列表1260027 版本10246更改列表1340247 版本10499更改列表1426632 版本10499更改列表1426632 版本10897更改列表1532151 版本10900更改列表1537896 版本10905更改列表1667866 版本10907 changeList 1715227 版本12097更改列表1999891 版本12264更改列表2062495 版本12466更改列表2243543 版本12791 changeList 2424394其他