![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
UE4
文章平均质量分 79
weixin_42111061
这个作者很懒,什么都没留下…
展开
-
UE4反射原理(转)
转自:https://blog.csdn.net/mohuak/article/details/81913532https://blog.csdn.net/u012999985/article/details/529020651. UE4反射系统什么是反射系统在UE4里面,你无时无刻都会看到类似UFUNCTION()这样的宏。官方文档告诉你,只要在一个函数的前面加上这个宏,然后在括号里面加上BlueprintCallable就可以在编辑器里面调用了。按照他的指示,我们就能让我们的函数实现各种各样特转载 2020-09-20 13:41:40 · 1001 阅读 · 0 评论 -
UE4的C++基础:uproperty
凡事在关卡里能看到的大部分都是Actor。Actor的初始化void ULevel::RouteActorInitialize(){ for(int32 Index =0;Index<Actors.Num();++Index){ AActor* const Actor=Actors[Index]; if(Actor&&!Actor->IsActorInitialized()) { Actor->PreInitializeComponents(); } }原创 2020-09-05 19:49:37 · 994 阅读 · 0 评论 -
虚幻4基础:C++类层级结构
Object是最上层的父类,UE4中几乎所有类都继承于UObject。父类的一些特殊子类。原创 2020-08-12 14:21:49 · 411 阅读 · 0 评论 -
UE4进阶:智能指针(一)
首先了解一下UE4中的Uobject,Uobject本身就可以回收和释放,基本上所有的类都继承自Uobject,所以引擎会自动释放。但如果不是继承自Uobject的类,可能就无法释放掉内存,甚至可能出现野指针问题。UE4中的共享指针是TSharedPtr,使用格式为TsharedPtr name;例如这里的一个类,不继承自Uobject,但是是AActor中的一部分。class TaskA{public:int32 a;float b;}class ATaskActor:public AA原创 2020-08-07 22:05:35 · 995 阅读 · 0 评论 -
UE4进阶:游戏框架
以一个MMORPG游戏为例,当打开游戏时,服务端会通知客户端加载地图(World)。World容纳了一个游戏里的所有物体,而所有物体都继承自Actor。GameInstance: 优先级最高,在切换关卡的时候,GameInstance中的数据是保留的。GameMode:在联网状态下,GameMode是服务端的角色。它包含了玩家的登陆信息,定义游戏类型,客户端是不能访问GameMode的。GameSession:存在于服务端,拥有T玩家,加入玩家,重新开始,该房间的状态等等。GameStarte原创 2020-08-07 16:11:32 · 1346 阅读 · 0 评论 -
虚幻四基础:组件
SceneComponent场景组件,组件有变量和变换:变换包含了缩放和旋转。点击Add Component,新建蓝图脚本组件(英语忘记了)然后会出现这个框,可以通过勾选“显示所有类”找到SceneComponent。然后会提示把该组件放在哪里。这样就创建了一个组件。Audio就是音频组件,可以对声音进行控制,甚至可以设置衰减半径,使一个音源具有衰减特性。ParticleSystem:放粒子系统的。比如在蓝图中创建一个粒子然后可以在Particles的右侧,有一个Template中原创 2020-07-28 21:26:59 · 1058 阅读 · 0 评论 -
虚幻四基础:蓝图之间的通信
太久没写了,中间去了趟成都找女朋友玩,罪过罪过。首先创建一个Actor控件,也就是默认的带有三维坐标的白色小球,可以设置形状。然后将这个控件拖入到关卡蓝图里。比如要实现一个打印当前类名字的功能:Custom Event:自定义一个函数:连接到Print String。然后Get Display Name获取当前类的名字,连接到Get Class获取Self自己的类。然后连到Event BeginPlay。就可以实现这样的功能。然而这个功能并不是从外部调用的,而是内部实现的。所以要尝试从蓝图通信,原创 2020-07-28 14:59:05 · 1061 阅读 · 0 评论 -
虚幻4基础:UMG控件(一)
Removed from Focus Path判断当前的要对哪个控件进行操作。点击一个Button,然后鼠标离开,就会触发该事件。也就是监听用户对一个可交互的控件进行的访问。Added to Focus Path这个就和上面的相对应。On Preview Mouse Button Down当鼠标敲击控件的时候,可以获取到该控件的坐标。点击右上方的Designer,放置两个按钮,一个image,一个button。运行,这个时候按钮会出现在屏幕上面。然后点击按钮,就会触发这个事件。另一方面原创 2020-07-19 21:38:30 · 2657 阅读 · 0 评论 -
虚幻4基础:GameMode接口
位置打开GameMode实例的生成(Spawn Default Pawn)Functions—>Override—>Spawn Default Pawn For:生成一个Pawn。如果本身没有人物,没有调用这个函数,则会默认生成一个人物,但是如果调用了这个函数,则不会默认地生成实例。Spawn Default Pawn For:通过Controller获取一个默认的Pawn Class,但是Get Default Pawn Class for Controller默认返回的是一个原创 2020-07-19 14:44:25 · 1746 阅读 · 0 评论 -
虚幻4基础:character接口
所在位置Functions->OverideEvent On Jumped:人物跳跃触发Event On Walking Off Ledge:离开可行走的表面,激活函数1,Previous Floor Impact Normal:离开表面的法线2,Previous Floor Contact Normal:离开接触面的法线3,Previous Location:结束位置Event On Launched:跃起触发Event On Landed:落地触发Event OnStartC原创 2020-07-19 13:24:00 · 574 阅读 · 0 评论 -
虚幻4基础:Actor事件接口
首先创建Actor,Blueprint Class->ActorActor生命周期Event tick:每帧都打印一次。delta seconds是前后两帧的时间差Event Beginplay:打开游戏时执行一次(用作初始化)Event Destroyed:当Actor被销毁后,激活该函数。举个例子;选中Actor—>关卡(上方的Blueprints)—>Open Level Blueprint—>点击新窗口中的部分—>Create a Reference t原创 2020-07-18 15:55:22 · 1068 阅读 · 0 评论 -
虚幻4基础:蓝图内逻辑封装
自定义函数Functions点击这里可以创建一个自定义的函数。Event Beginplay可以看做程序的入口(main函数?)进入上方Pintf的蓝图(ThirdPersonGameMode->Pintf)此时从Pintf引出一个Print String,再从In String反向引出一条线到In String上,这时返回到Event Graph,会出现如下效果:Pintf多了一个In String的变量,在外部看来,这个输入的In String就是一个形参。此时在In Strin原创 2020-07-18 14:44:02 · 831 阅读 · 0 评论 -
虚幻4基础:流程控制(二)
DoOnceDelayDoOnce:只执行一次有Reset和Start Closed两个参数。Reset可以重新使该函数生效。StartClosed,开始时关闭,直到Reset生效激活该函数。DoOnce Multiinput:如果A可以被执行,那么就输出A,接着不再判断A也不再输出A。Reset in:重新激活该函数,A可以重新被打印。FlipFlop:划分不同帧:第一帧走A,第二帧走B,第三帧走A,第三帧走B。用于做UI中的按钮。Gate:闸门例如:图中的运行流程。Event T原创 2020-07-17 20:03:20 · 355 阅读 · 0 评论 -
虚幻4基础:流程控制(一)
循环UE4中的Branch相当于if,condition是()中的代码:ForLoopWithBreak:如图:左侧白线接着的是BeginPlay,Loop中,会从0遍历到20,如果index>=10,则在上方的branch中输出true,return到ForLoopWithBreak的Break。实现大于10终止循环,否则一直输出当前的索引。WhileLoop:模仿while,如果Condition返回false则终止循环。结构体UE4的结构体的位置在这里:Blueprints-&g原创 2020-07-17 16:40:57 · 356 阅读 · 0 评论 -
虚幻4基础:UE4与C++容器
vector:ADD:添加一个元素ADDUNIQUE:添加一个之前没有的元素,如有重复,添加失败APPEND:合并数组Clear:清空数组Contains:判断容器是否有X,返回值为booleanFind:找到想要元素的索引,可以用Get输出ForEachLoop:遍历,可以输出值和索引Get(a copy):复制一个元素Get(a ref):通过引用进行操作,在修改当前值时会改变原有值Insert :插入一个变量(可以选择某一位置或者是某一索引)Is Valid Index:判断第原创 2020-07-17 14:42:51 · 1409 阅读 · 0 评论 -
虚幻4基础:String的操作
String的操作与Text类似,Trim Trailing是删除尾部空白字符,Trim是删除前面的空白字符,ToUpper变大写,ToLower变小写。Time Second to String是把时间变成String,Get Time Second起到了计数的作用,将时间传递给Time Second to String。Event Tick需要连接到Print String上,做到高频率输出。其他: Right Pad,在源字符串后面加字节。例如:Source String:abcCh C原创 2020-07-16 20:26:19 · 3927 阅读 · 0 评论 -
虚幻4基础:UE4中的Name和Text
Name储存方式:基于索引。查找速度最快。不区分大小写。Utility->Name:Make Literal Name:在value中输入,在return value引脚就可以得到。Text便于储存描述性语言。区分大小写,因此如果从Name转成Text,会失真。下列是一些常见的Text功能。如果要在屏幕上输出,需要用Return Value连Print Sring,头部得有一个Begin Play。鼠标右键—>Miscellaneous->String Table。原创 2020-07-16 15:32:58 · 2244 阅读 · 0 评论