- 博客(100)
- 资源 (5)
- 收藏
- 关注
转载 UE4编辑器属性的显示与隐藏
Intro#UPROPERTIESin Unreal Engine have a bunch of usefulMeta-data Specifierswhich can be applied to add additional validation and functionality. This blog post explains how to use theEditCondition(andEditConditionHides) specifiers to selectively s...
2021-04-30 11:14:19
4151
原创 UE4C++读取设置蓝图变量(备忘)
读取:bool UShooterFunctions::GetFloatByName(UObject * Target, FName VarName, float &outFloat){if (Target) //make sure Target was set in blueprints. {float FoundFloat;UFloatProperty* FloatProp = FindField<UFloatPrope...
2021-04-16 16:16:46
2891
1
原创 关于UE4的各种资源包和路径ObjectPath PackageName PackagePath AssetName(备忘)
ObjectPath:: /Game/AssetName.AssetName. PackageName: /Game/AssetName PackagePath:/Game AssetName:AssetName.
2020-11-13 14:36:49
3570
1
原创 UE4 C++利用函数名调用UFUNCTION函数
对于纯蓝图定义的函数可以使用函数UObject中的 virtual void ProcessEvent( UFunction* Function, void* Parameters )进行调用比如蓝图终定义了BP_Func()可在C++代码中这样调用:ProcessEvent(FindFunctionChecked(FName("BP_Func"),NULL);第二...
2020-07-11 17:14:37
3161
原创 UE4通过类名符串和函数名字符串调用函数
UPROPERTY() FACTION_DATA CurActionData; UPROPERTY(EditAnywhere, BlueprintReadWrite, DisplayName = "播放完成回调类(不要A,U前缀如Actor非AActor)") FString ClassName; UPROPERTY(EditAnywhere, BlueprintReadWrite, DisplayName = "播放完成回调函数") FName CallBackUFunction;F...
2020-06-11 16:34:59
1794
原创 UE4纯C++黑板Blackboard键添加(备忘
FindObject<UEnum>(ANY_PACKAGE, *FString("EEnemyAIState"), true)
2020-05-29 14:39:10
1450
原创 UE4 URPOPERTY限制变量最大max最小值min值
UPROPERTY(EditAnywhere, Category = "Call", meta = (ClampMin=0,ClampMax=10)) uint8 CallNum= 3;更多URPOPERTY完全详解参考:https://blog.youkuaiyun.com/qq_22159557/article/details/81137933挺棒的笔记,很多UPROPERTY中不常用的标记也有,赞博主。...
2020-05-14 14:46:50
3686
原创 UE4 的 USTRUCT()垃圾回收问题
分为两类1.被UPROPERTY标记的USTRUCT或者被UPROPERTY标记的TArray可以被垃圾回收的2.函数内自己动态new的USTRUCT需要你自己管理释放,UE4不会帮你释放。参考资料:1.https://www.ue4community.wiki/Legacy/Structs,_USTRUCTS(),_They%27re_Awesome#Garbage_Col...
2020-04-29 10:40:37
3925
原创 UE4遍历枚举
UE4遍历枚举方式UEnum*MyEnum=StaticEnum<MyEnumType>();for(int32 i;i<MyEnum->NumEnums()-1;i++){ MyEnumType(MyEnum->GetValueByIndex(i));}GetValueByIndex获取的值为int64,需要转为你枚举定义的类型。...
2020-04-02 09:57:16
2705
2
原创 UE4原生内置多人语音聊天
一.创建会话1.创建 创建服务器和加入服务器的UI2.实现创建会话和加入会话的功能(1)创建会话功能(2)加入会话功能二.配置文件设置1.DefaultEngine.ini文件配置(1)在[OnlineSubsystem]下的bHasVoiceEnabled需要设置为true[OnlineSubsyste...
2019-09-18 14:27:19
8917
17
转载 UE4入门-常见基本数据类型-字符串(备忘)
原文地址:https://blog.youkuaiyun.com/u012793104/article/details/78470388字符串FNameFName 通过一个轻型系统使用字符串。在此系统中,特定字符串即使会被重复使用,在数据表中也只存储一次。FNames 不区分大小写。它们为不可变,无法被操作。FNames 的存储系统和静态特性决定了通过键进行 FNames 的查找和访问速度较快。FNa...
2019-08-09 10:39:08
3420
转载 UE4编辑器扩展踩坑血泪史
转载自:https://segmentfault.com/a/1190000018367388俗话说的好,一流程序写架构,三流程序写UI。可是在游戏开发过程中,特别是引擎和工具链开发的时候,UI是绕不过去的坑,UE4现在是各大厂越来越流行了,各种工具层出不穷,可是和unity相比,Slate UI做编辑器扩展和插件的时候,难度不是大了一个level,最为关键的是,UE4的编辑器埋藏了无数的暗坑...
2019-07-23 14:47:47
7510
转载 UE4笔记---C++加载BP蓝图及C++BP蓝图文件并创建UUserWidget对象
UE4笔记---C++加载BP蓝图及C++BP蓝图文件并创建UUserWidget对象// 加载BP蓝图文件并创建 UUserWidgetUUserWidget* UserWidget = nullptr;TSubclassOf<UUserWidget> WidgetClass = LoadClass<UUserWidget>(this, TEXT("/Game/B...
2019-07-17 10:37:12
1851
原创 升级UE4项目VS版本
原本项目用的是VS2015,后来要升级到VS2017,也尝试了在UE4编辑器中进行设置vs版本,重新生成VS项目后仍旧是2015的,但是没什么效果。后来找到这个方法,用以下CMD命令行来重新生成vs项目D:/UnrealEngine-4.17.1-release/Engine/Binaries/DotNET/UnrealBuildTool.exe -projectfiles -pr...
2019-04-09 16:07:20
3119
转载 WNDCLASS中cbClsExtra和cbWndExtra区别及其用法
cbClsExtra和cbWndExtra主要区别:1,两者都是附加额外空间。2,cbClsExtra是对类的(这里所说的类不是C++中的类,而是WNDCLASS结构的变量用RegisterClass注册后,在系统中记录的一组信息,是窗口的一个模板),用该类生成的所有窗口共享该附加空间。类似于C++类中的static变量。3,cbWndExtra是对窗口的,每实例化一个窗口都有这么一个...
2019-03-29 10:38:36
746
转载 UE4摄像机系统解析
一.摄像机工作原理在游戏中,摄像机是玩家的眼睛,他控制了玩家的视点(POV即PointOfView,后面简称POV)位置以及玩家的视野大小(FOV即FieldOfView,后面简称FOV)。一句话,摄像机决定了我们去观察这个游戏世界。游戏的类型多种多样,有第一人称的FPS游戏,有第三人称的动作游戏,还有需要统筹全局来观察的RTS游戏。简单来说,第一人称就是把POV放在人眼睛的位置,第三人称...
2018-09-21 10:37:56
2485
转载 UE4文件及路径类库使用总结
感谢博主,原博地址:https://blog.youkuaiyun.com/qq_35221523/article/details/80462176一直在研究虚幻的插件,期间碰到许多诸如文件操作,路径操作等问题,总结记录一下。环境:UE4版本4.19.2+Win10+VS2017。文件操作类(一):IPlatformFile//实例化IPlatformFile对象IPlatformFile...
2018-08-22 15:48:00
6529
1
转载 C++调用dll文件的两种方法
DLL中导出函数的声明有两种方式:一种是在函数声明中加上_declspec(dllexport)关键字,另一种方式就是采用模块定义文件声明。.def 文件为连接器提供了有关被链结程序的导出、属性及其他方面的信息。在连接阶段,可以使用/DEF(指定模块定义文件)连接器选项调用.def 文件。.def 文件必须至少包含下列模块定义语句: 1】文件中的第一个语句必须是LIBRARY 语句。此语句将 .d...
2018-06-22 10:50:52
48597
4
原创 UE4 C++ SpawnActor产生带参构造函数Actor示例
一般UE4里我们产生Actor使用SpawnActor来产生实例比如:SpawnActor(Actor::StaticClass(),FTransform(),FActorSpawnParameters());但是这种只适用于默认构造函数的情形,当我们需要使用带参构造函数传参数进去时这种方法就不适用了。此时需要UGameplayStatics::BeginDeferredActorSpawnFro...
2018-06-07 16:00:17
9526
7
转载 [UE4]C++实现动态加载的问题:LoadClass<T>()和LoadObject<T>() (备忘)
C++静态加载问题:ConstructorHelpers::FClassFinder()和FObjectFinder() http://aigo.iteye.com/blog/2281373C++实现动态加载UObject:StaticLoadObject();以Texture和Material为例http://aigo.iteye.com/blog/2268056 动态加载UObject和动态加...
2018-05-31 14:09:18
11792
原创 DirectX计算着色器(Compute Shader)线程组相关参数详解(SV_GroupIndex,SV_DispatchThreadID,SV_GroupThreadID,SV_GroupID)
在DirectX 11之前,着色器是与具体的渲染步骤绑定的,例如像素着色器,顶点着色器等等。而从DirectX11开始,DirectX增加了一种计算着色器(Compute Shader),它是专门为与图形无关的通用计算设计的。因此DirectX就变成了一个通用GPU计算的平台。鉴于GPU拥有极其强大的并行运算能力,学习使用DirectCompute是很有意义的。 ...
2018-05-10 23:55:42
8484
转载 泛化之美--C++11可变模版参数的妙用
原博地址:http://www.cnblogs.com/qicosmos/p/4325949.html1概述C++11的新特性--可变模版参数(variadic templates)是C++11新增的最强大的特性之一,它对参数进行了高度泛化,它能表示0到任意个数、任意类型的参数。相比C++98/03,类模版和函数模版中只能含固定数量的模版参数,可变模版参数无疑是一个巨大的改进。然而由于可变模版参数...
2018-02-28 16:47:09
333
转载 UE4的UE_LOG
原博地址:https://www.cnblogs.com/blueroses/p/6037981.html说明:本文为Wiki上的RAMA大神文章的大致翻译游戏模式:在游戏模式下,你需要在游戏的快捷方式后面加 -Log,才会在游戏中显示。 编辑器模式(Play In Editor):你可以在Output窗口中看到log信息。如果想在游戏中看到
2018-02-02 11:57:50
3043
转载 UE4时间相关函数
原博地址:https://blog.ch-wind.com/ue4-time-mange/在进行游戏构建时,我们通常会用到和时间相关的逻辑,在此稍微做下小结。当前UE4版本为4.15。基本上游戏引擎都是以Tick为中心运转的,表现在玩家面前就是帧率了,UE4也是如此。Ticktick是引擎的心跳,引擎中很多逻辑就是借助的tick机制自动注册的,例如UMG的动
2018-02-02 11:55:17
11962
转载 D3D10 技术Mipmap
Mipmap 是我们在使用纹理的时候一种常用的技术. 在上次写 D3D10 Demo 的时候我已经发现 D3D10 在创建纹理的时候不能自动生成 Mipmap , 通过这两天的仔细了解总结一下在 D3D10 中与纹理 Mipmap 有关的东西. 与 Mipmap 有关的参数(结构)有下列几个:D3D10_TEXTURE2D_DESC::MipLevels : Nu
2018-01-10 15:36:02
644
转载 常用的 <crtdbg.h>
可以加深理解的有关_PRTn宏的MSND地址:_RPT、_RPTF、_RPTW、_RPTFW 宏:https://msdn.microsoft.com/zh-cn/library/42773424.aspx用于报告的宏:https://msdn.microsoft.com/zh-cn/library/yt0c3wdh.aspx_CrtDbgReport、_CrtDb
2017-12-28 19:11:57
587
转载 Ripple游戏水波模拟算法实现
在介绍编程之前,先让我们来回顾一下在高中的物理课上我们所学的关于水波的知识。水波有如下几个特性: 扩散:当你投一块石头到水中,你会看到一个以石头入水点为圆心所形成的一圈圈的水波,这里,你可能会被这个现象所误导,以为水波上的每一点都是以石头入水点为中心向外扩散的,这是错误的。实际上,水波上的任何一点在任何时候都是以自己为圆心向四周扩散的,之所以会形成一个环状的水波,是因为水波的内部因
2017-12-05 09:21:39
1093
转载 使用ifstream和getline读取文件内容
假设有一个叫 data.txt 的文件, 它包含以下内容: Fry: One Jillion dollars.[Everyone gasps.]Auctioneer: Sir, that's not a number.数据读取, 测试 。以下就是基于 data.txt 的数据读取操作:#include iostream>#include fs
2017-11-15 18:54:09
1225
转载 【D3D11游戏编程】学习笔记二十四:切线空间(Tangent Space)
(注:【D3D11游戏编程】学习笔记系列由优快云作者BonChoix所写,转载请注明出处:http://blog.youkuaiyun.com/BonChoix,谢谢~) 切换空间,同局部空间、世界空间等一样,是3D图形学中众多的坐标系之一。切换空间最重要的用途之一,即法线映射(Normal Mapping)。关于法线映射的细节,将在下一篇文章中详细介绍。但在学习法线映射
2017-11-14 19:48:56
624
转载 【D3D11游戏编程】学习笔记二十:第一人称摄像机的实现
(注:【D3D11游戏编程】学习笔记系列由优快云作者BonChoix所写,转载请注明出处:http://blog.youkuaiyun.com/BonChoix,谢谢~) 在这篇文章中,我们来实现一个简单的第一个称摄像机。在之前所有的程序中,为了方便从各个角度观察场景,我们可以通过鼠标来旋转视角和镜头远近。尽管相对单一地从固定的角度观察方便多了,但观察点依然仅仅限制在一个球面上,观
2017-11-08 15:15:45
1240
转载 DirectX11环境配置
从今天开始,开启一个新的系列:Direct3D11的学习教程。因为一直对3D方面比较感兴趣,最近决定开始学习D3D知识。我之前也没有接触过Direct3D9,在网络上咨询过一些大神,大家都推荐直接从D3D11开始学起。我想了好久终于下决心买了一本D3D11的龙书《Introduction to 3D Game Programming: With Directx 11》,可惜这本书目前只有英文版
2017-11-06 18:38:14
6146
转载 WNDCLASS结构体
WNDCLASS是一个由系统支持的结构,用来储存某一类窗口的信息,如ClassStyle,消息处理函数,Icon,Cursor,背景Brush等。也就是说,CreateWindow只是将某个WNDCLASS定义的窗体变成实例。要得到某一窗口的WNDCLASS数据,可以用GetClassLong(); RegisterClass()就是在系统注册某一类型的窗体。也就是将你提供的WNDCLA
2017-11-06 11:19:58
775
转载 通过优化在UE4中实现良好性能和高质量视觉效果
对于任何追求UE4性能最佳、同时又想保持极高质量视觉效果的人来说,本文有一些可遵循的一般性建议和原则。 局限性为了性能,你通常受CPU时间(通常和游戏设置相关)和GPU时间限制(渲染场景花费的时间)。CPU创建由GPU渲染的场景会耗费一些时间。通常情况下,当你发现游戏的运行速度不像你想要的那么快时,第一步是找出你现在受以上哪个环节的约束,然后确定需要修改的资源或设置
2017-11-01 15:44:08
14885
转载 Directx11教程二十五之ZBuffer(深度缓存,DepthBuffer)
好文,感谢博主,原文链接:http://blog.youkuaiyun.com/qq_29523119/article/details/52894710这节教程的结构如下:一,DepthBuffer(深度缓存)深度缓存(Z缓存值)是用来记录视截体的每个像素的深度,其值范围是[0,1],在D3D11中 默认近裁剪面(Near_Z)上面的像素深度为0,而
2017-10-24 11:57:01
1653
转载 d3d11的IASetVertexBuffers和IASetIndexBuffer学习
之前一直搞不懂为何IASetVertexBuffers可以设置多个vertex buffer,而IASetIndexBuffer只能设置一个index buffer,这怎么能够对应得上呢? 这两天要做一个东西,要从一个3ds文件中读出多个对象渲染出来,我以为这就可以将每个对象的顶点存到一个buffer数组中,再将这个buffer数组用IASetVertexBuffers设置为顶点
2017-10-23 14:46:27
2715
转载 D3D11笔记——Resource基本概念
D3D11中的Resource主要可以分为Buffers和Textures两类。Resource可以被绑定到渲染管线的特定阶段,有些绑定是直接的(比如ID3D11DeviceContext::IASetVertexBuffers就直接把一定数量的Vertex Buffers绑定到管线的Input Assembler阶段),也有的绑定(比如想让Pixel Shader读一个Texture中的内容
2017-10-21 17:24:31
6534
1
转载 C++“准”标准库Boost学习指南-variant的使用
Variant库包含一个不同于union的泛型类,用于在存储和操作来自于不同类型的对象。这个库的一个特点是支持类型安全的访问,减少了不同数据类型的类型转换代码的共同问题。Variant 库如何改进你的程序?对用户指定的多种类型的进行类型安全的存储和取回在标准库容器中存储不同类型的方法变量访问的编译期检查高效的、基于栈的变量存储Variant 库关注的是对一组限定类型
2017-10-11 14:56:51
1343
转载 D3D透视投影详解(备忘)
作者:zdd出处:http://www.cnblogs.com/graphics/概述投影变换完成的是如何将三维模型显示到二维视口上,这是一个三维到二维的过程。你可以将投影变换看作是调整照相机的焦距,它模拟了为照相机选择镜头的过程。投影变换是所有变换中最复杂的一个。视锥体视锥体是一个三维体,他的位置和摄像机相关,视锥体的形状决定了模型如何从camera spac
2017-09-29 16:58:45
892
转载 三维图形矩阵变换
转自:http://blog.sina.com.cn/s/blog_620bf89501011fl8.html1.23.4.5.6.7.8.9.10.11.
2017-09-28 11:05:26
2470
Windows程序设计源代码
2017-09-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人