
UnrealEngine
玄冬Wong
别把自己当回事儿,我还是一只菜鸟……
展开
-
[UE4]AActor的析构函数和退出游戏前的回调函数
关键字:析构函数、OnExit、游戏关闭退出原文作者:@玄冬WongUE4中的所有UObject是没有析构函数的,但如果我们想拿到一个UObject销毁前的回调函数,可以重写AAcotr::BeginDestroy函数:当对象销毁前触发。 重写Actor父类函数:virtual void BeginDestroy() override; void AMyActor:...原创 2016-04-13 13:27:09 · 2627 阅读 · 1 评论 -
[UE4]打包时如何将资源分成单个独立文件(增量更新)
设置方法:File -> Package Project -> Packaging Settings,不勾选:Use Pak File。这样资源文件都是独立存在的,这样也方便做增量更新,如果打成单个Pak文件,增量更新就没法搞了。 ...原创 2016-04-15 18:38:40 · 2433 阅读 · 2 评论 -
[UE4]构建独立服务端时需要手动编写的Server.Target.cs配置文件
下面代码是官方ShooterGame的UE4 v4.11版本(其实和4.1.0没有差别)。ShooterGameServer.Target.cs// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.using UnrealBuildTool;using System.Collections.Generi...原创 2016-04-15 18:55:15 · 909 阅读 · 0 评论 -
[UE4]服务端构建后启动错误:GlobalShaderCache-PCD3D_SM5.bin is missing
原文作者:@玄冬Wong构建独立服务端后启动报错:[2016.04.15-11.22.50:980][ 0]LogMaterial:Error: The global shader cache file 'F:/EpicGames/UnrealEngine-4.11.0-release/Engine/GlobalShaderCache-PCD3D_SM5.bin' is missin...原创 2016-04-15 19:28:33 · 3799 阅读 · 2 评论 -
[UE4]已支持的C++11特性
官方文档:C++ 11 and Modern Language Syntaxhttps://docs-origin.unrealengine.com/latest/INT/Programming/Development/CodingStandard/index.html#c++11andmodernlanguagesyntax原创 2016-04-17 17:22:04 · 769 阅读 · 0 评论 -
[UE4]退出游戏的API(C++)
官方文档:UKismetSystemLibrary::QuitGamehttps://docs.unrealengine.com/latest/INT/API/Runtime/Engine/Kismet/UKismetSystemLibrary/QuitGame/index.html 示例:#include "KismetSystemLibrary.h"voi...原创 2016-04-18 00:32:01 · 2320 阅读 · 0 评论 -
[UE4]boost lib连接错误:LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL'
UE4工程的debug模式链接boost的时候出现错误:UE4 boost error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in 以下是UE4源码的注释,意思是说UE4编译器在编译debug版本的时候仍然会链接release版本的...原创 2016-04-20 07:37:43 · 766 阅读 · 0 评论 -
[UE4]FMath中的常用数学公式函数
FMath::CeilLogTwo(uint32 value)含义:返回大于等于value的以2为底数的最大N次幂的指数N(是指数,不是幂)。例子:value=15,返回值为4,因为16是大于等于15的2的N次幂当中最小的次幂,其对应的指数为4。 FMath::FloorLog2(uint32 value)含义:与CeilLogTwo函数相反,返回小于等于value的...原创 2016-04-20 07:38:57 · 3710 阅读 · 0 评论 -
[UE4]warning CS0612: 'UnrealBuildTool.RulesCompiler.GetModuleFilename(string)' i
如果在build.cs构建配置中添加如下代码:RulesCompiler.GetModuleFilename() 则编译时会出现警告或错误(preview版本中貌似不允许你使用直接提示error,正式版允许你编译通过但是会提示此API已经废除掉了):warning CS0612: 'UnrealBuildTool.RulesCompiler.GetModuleFilena...原创 2016-04-25 12:24:45 · 750 阅读 · 0 评论 -
[UE4]protoc生成的代码编译问题:error LNK2019: unresolved external symbol "public: __cdec
ue4工程编译时,如果只是将protobuf.lib链接进来,不加入protoc生成的代码,那么编译时没有问题的,但是如果加进来了,那么就跪了:error LNK2019: unresolved external symbol "public: __cdecl 。。。" 之前这个问题没想明白,以为可以通过设置工程来解决这个错误,后来想了想,protoc生成的代码都是标准c++代码...原创 2016-05-03 12:26:44 · 901 阅读 · 0 评论 -
[UE4]如何查看drawcall实时统计
命令行(按下波浪键)输入:stat SceneRendering 更多stat命令说明:Stat Commandshttps://docs.unrealengine.com/latest/INT/Engine/Performance/StatCommands/原创 2016-05-03 19:59:40 · 6533 阅读 · 1 评论 -
[UE4]性能优化之:如何减少drawcall
Using Instanced Meshes doesn't reduce draw calls原文:https://answers.unrealengine.com/questions/127435/using-instanced-meshes-doesnt-reduce-draw-calls.html epic工程师的回答:Instanced meshes will r...原创 2016-05-03 20:02:50 · 3615 阅读 · 0 评论 -
[UE4] 设置UMG的ComboBox(String)字体大小
UMG自带ComboBox组件没有提供直接的属性来修改其字体大小,只能自己做一个列表类型的widget然后再塞进ComboBox中,相当于从头定义一个类似combox的widget,当完全由你重新定义的时候,可以修改的不只是字体大小了。下面教程以修改字体大小为例: 图文教程How do I set the font size of the UMG ComboBox (String...原创 2016-05-04 08:18:38 · 2225 阅读 · 0 评论 -
[UE4]C++UI组件Slate教程
官方文档:Slate, Hellohttps://wiki.unrealengine.com/Slate,_Hello Slate Widget Exampleshttps://docs.unrealengine.com/latest/INT/Programming/Slate/Widgets/ Slate Tutorialhttps://forums.un...原创 2016-05-05 19:40:45 · 1127 阅读 · 0 评论 -
[UE4]UMG widget构造初始化函数中获取其内部组件
原文作者:@玄冬Wong目的:在自定义的Widget初始化完毕后,获取其内部的button、combo等UMG组件的C++指针。 这里我们新建了一个C++类,LoginWidget,继承自UserWidget,然后新建了一个Widget蓝图LoginWidgetBP,继承自LoginWidget C++ class。我们想在这个LoginWidgetBP蓝图被实例化之后,获取这个U...原创 2016-05-05 23:10:39 · 4196 阅读 · 0 评论 -
[UE4]性能优化工具(Profiler Tool)
Profiler Tool Referencehttps://docs.unrealengine.com/latest/INT/Engine/Performance/Profiler/index.html 原文:https://www.unrealengine.com/zh-CN/blog/how-to-improve-game-thread-cpu-performance...原创 2016-05-07 15:28:12 · 2524 阅读 · 0 评论 -
[UE4]如何跨线程访问GameThread中的数据
UE4中如果在自己创建的FRunnable线程中取访问引擎相关的API,比如你想在非GameThread中创建UI,运行时UE4时会给assert错误:Assertion failed: IsInGameThread() [File:D:\BuildFarm\buildmachine_++UE4+Release-4.11\Engine\Source\Runtime\Slate\Public...原创 2016-05-07 15:43:39 · 3212 阅读 · 0 评论 -
[UE4]引擎自身提供的无锁队列等无锁容器(TLockFreePointerList)
常用的接口:TLockFreePointerListFIFO<T>:先进先出;TLockFreePointerListLIFO<T>:后进先出;TLockFreePointerListUnordered<T>:看注释是说这个List内部元素是无序的,但效率比前面两个更高。 注意:如果你的元素是一个指针,比如A* val,那么模版名只...原创 2016-05-07 16:57:48 · 1213 阅读 · 0 评论 -
[UE4]UMG设置组件自适应居中或靠边
比如你的UI中有些组件需要居中显示,有些需要始终在右上角并且与上边框和右边框保持固定的距离等等,对于这种需要动态适应屏幕分辨率的UI组件,有两种设置方式:1,直接编辑组件的属性Anchors 2,代码控制ULoginWidget* LoginUI = NULL; //创建UI的逻辑省略if (UImage* backImg = Cast<UImage>...原创 2016-05-11 13:22:43 · 4975 阅读 · 0 评论 -
[UE4]Actor初始化时相关的父类函数
AActor::PreInitalizeComponents - Called before components of the actor are initialized AActor::PostInitalizeComponents - Called after every Component is initialized AActor::PostInitProper...原创 2016-05-14 17:16:36 · 645 阅读 · 0 评论 -
[UE4]FSocket client客户端如何检测与server服务端断开链接
目前FScoket无法做到感知服务端关闭tcp链接,要做到只能通过两种其他方式:1,使用BSD socket(建议使用non-blocking mode,因为这样方便终止接收线程);2,客户端发送心跳包给服务端,如果没有得到回应则认为关闭。 下面方法仅适用于客户端自己关闭连接,如果是服务端关闭是没法感知的if (Socket->GetConnectionState()...原创 2016-05-23 11:32:46 · 1902 阅读 · 0 评论 -
[UE4]Fog Of War(战争迷雾)教程
[TUTORIAL] Fog Of Warhttps://forums.unrealengine.com/showthread.php?55650-TUTORIAL-Fog-Of-War原创 2016-05-24 21:08:52 · 4870 阅读 · 0 评论 -
[UE4] C++实现Delegate Event实例(例子、example、sample)
相关文章:如何用蓝图实现Delegate Event:http://aigo.iteye.com/blog/2269663 原文作者:@玄冬Wong转载请注明出处:http://aigo.iteye.com/blog/2301010 虽然官方doc上说Event的Binding方式跟Multi-Cast用法完全一样,Multi-Cast论坛上也有很多例子,但是实际是...原创 2016-05-26 10:33:18 · 917 阅读 · 0 评论 -
【译文】Unreal Engine 4 vs Unity 5
转自:http://www.taikr.com/article/2286原文作者:Maik Klein原文地址:https://maikklein.github.io/2015/07/20/Unreal-vs-Unity/ 调试 调试对于我来说非常重要,我们可以通过调试知道应用程序的运行过程。 在UE4中,你可以按F5,在编辑器中启动调试模式,在这个过...原创 2015-10-12 21:06:55 · 334 阅读 · 0 评论 -
Unreal Editor快捷键
编辑器中控制视角最方便的快捷键:按住鼠标右键不放,然后再按W、A、S、D、Q、E 转自官方文档:http://docs.unrealengine.com/latest/INT/Engine/UI/LevelEditor/Viewports/ViewportControls/index.html For the purposes of this document, you sho...原创 2015-10-15 12:25:55 · 581 阅读 · 0 评论 -
UnrealBuildTool Exception System.IO.FileNotFoundException的解决方法
源码编译UE4时,执行源码中的批处理文件,会出现下面错误 原因:系统上安装的VS版本是community版本不是express版本解决方法:卸载掉community版本安装express版本的VS...原创 2015-10-21 21:59:32 · 1450 阅读 · 0 评论 -
UE4编辑器启动时的命令行参数
官方文档:Command-Line Argumentshttps://docs.unrealengine.com/latest/INT/Programming/Basics/CommandLineArguments/index.html原创 2015-10-25 17:21:00 · 3508 阅读 · 0 评论 -
[UE4]Android 打包步骤与keystore生成设置
官方文档步骤:https://docs.unrealengine.com/latest/INT/Platforms/Android/GettingStarted/index.html 注:这里演示使用的版本是v4.10,上面的官方文档时效性较差,与最新版的设置差异较大且省略了一些关键步骤。。。 1,安装Android SDK双击启动\引擎版本号\Engine\Extra...原创 2015-10-25 22:46:22 · 2106 阅读 · 0 评论 -
UE4蓝图调用C++函数
调用UFUNCTION(UE4模版函数):https://wiki.unrealengine.com/Blueprints,_Creating_C%2B%2B_Functions_as_new_Blueprint_Nodes原创 2015-11-01 21:28:59 · 1331 阅读 · 0 评论 -
[UE4]自定义摄像机跟随Character一起旋转的设置项
在Character蓝图编辑器中选中自己创建的摄像机,然后勾选“Use Pawn Control Rotation”原创 2015-11-21 23:56:06 · 6470 阅读 · 0 评论 -
[UE4]UI相关教程:HUD、UMG和Widget
蓝图脚本来处理==================================================用UMG制作游戏中的物品栏(背包)-V4.8,观看需要爬梯子(这个讲的算是目前我看过的UMG教程最完整最详细的,推荐)https://wiki.unrealengine.com/Videos/Player?series=PLZlv_N0_O1gZalvQWYs...原创 2015-11-23 16:46:38 · 2532 阅读 · 0 评论 -
[UE4]官方示例demo工程ShooterGame手动编译的方式(和UE4引擎源码一起编译)
用编译版本的UE4来构建并运行项目,只需要重新生成下VS工程文件即可:右击*.uproject文件,选择:Switch Unreal Engine version,然后选择UE4的编译版本: 切换版本以后,再右击*.uproject并选择:Generate Visual Studio project files,最后启动VS,就能看到完整的引擎代码并进入调试。 ...原创 2015-11-23 19:01:05 · 2049 阅读 · 0 评论 -
[UE4]大型户外场景制作教程
官方文档:https://docs.unrealengine.com/latest/INT/Engine/Landscape/index.html原创 2015-11-24 22:51:28 · 3288 阅读 · 0 评论 -
[UE4]Shader编程相关的官方文档
Shader Developmenthttps://docs.unrealengine.com/latest/INT/Programming/Rendering/ShaderDevelopment/index.html HLSLhttps://wiki.unrealengine.com/HLSL_Shaders Graphics Programminghttps:...原创 2015-11-25 18:01:06 · 964 阅读 · 0 评论 -
[UE4]摄像机视角模式名称
所在位置类名:\Engine\Source\Runtime\Engine\Private\PlayerCameraManager.cpp函数名:void APlayerCameraManager::UpdateViewTarget(FTViewTarget& OutVT, float DeltaTime) static const FName NAME_Fixed ...原创 2015-11-26 22:02:03 · 931 阅读 · 0 评论 -
[UE4]Error code OtherCompilationError (5)
原文作者:@玄冬Wong 出现以下两种错误的原因,可能原因是:1,定义的UPROPERTY成员变量没有再构造函数中初始化;2,定义了重复的继承自UE4引擎代码父类的虚函数;3,定义的类、枚举没有加上UE4要求的宏定义,比如UCLASS()、UENUM()、UPROPERTY()4,定义的顶一个的UPROPERTY()属性为private,但是又对其设置了蓝图属性,比如:...原创 2015-11-26 22:44:20 · 976 阅读 · 0 评论 -
[UE4]角色蓝图CharacterBlueprint中设置对象往移动方向自动转向
角色蓝图CharacterBlueprint中,设置对象沿Z轴随移动方向自动转向:bOrientRotationToMovement = true;bUseControllerRotationYaw = false; bOrientRotationToMovement属于CharacterMovement组件: bUseControllerRotationY...原创 2015-11-28 19:37:52 · 3852 阅读 · 0 评论 -
[UE4]UE4.10安装失败:Prerequisites error E-1223 - could not install
Epic Games Launcher中安装4.10引擎时,到最后一步时出现错误:the necessary prerequisites error E-1223 - could not install 解决办法:控制面板中卸载VC++ 2015 redistributables,保险一点x86和x64都卸载掉 ...原创 2015-12-05 08:44:58 · 11716 阅读 · 0 评论 -
[UE4]注意事项与笔记
1,如何添加自己的C++代码如果是添加Character C++代码,是在UE4 Editor中添加的,但是如果想添加一些与UE4引擎无关的c++代码,比如网络通讯的,或者一些工具类,必须也在UE4 Editor中添加(至少我现在用的4.10版本是这样),如果在VS中直接添加,会出现一些奇怪的编译错误。UE4 Editor中添加自定义C++代码方式如下:File -> New C...原创 2015-12-06 22:50:23 · 603 阅读 · 0 评论 -
[UE4]windows和android调用第三方C++库(静态库lib、动态库dll)
官方wikiC++调用静态库StaticLibrary(lib)Linking Static Librarieshttps://wiki.unrealengine.com/Linking_Static_Libraries_Using_The_Build_System C++调用动静态链接库Dynamic Link Library(dll)Linking Dllsh...原创 2015-12-07 22:15:37 · 1071 阅读 · 0 评论