
Ue4 Inside
这瓜不包熟
这个作者很懒,什么都没留下…
展开
-
UE4 动画
动画的更新入口:TickPose(USkeletalMeshComponent)调用位置:TickCharacterPose(UCharacterMovementComponent)保证位置的更新在TickPose之后; 可能的原因是RootMotion(先猜测)TickPose:void USkeletalMeshComponent::TickAnimation(float DeltaTime, bool bNeedsValidRootMotion){ ...原创 2022-01-11 00:06:53 · 320 阅读 · 0 评论 -
对象构造流程SpawnActor
相关函数:AActor* UWorld::SpawnActor( UClass* Class, FTransform const* UserTransformPtr, const FActorSpawnParameters& SpawnParameters ) 函数分析: 内部仍然调用NewObject接口来实例化一个Actor, 看流程仅仅根据static_class来获取Allocate的空间大小, 且设置相...原创 2021-11-16 21:58:00 · 650 阅读 · 0 评论 -
GAS GameplayEffect
UGameplayEffect相关:1.UGameplayEffect 作为效果的基类, 可以继承从而开发自己的效果类2.FGameplayEffectSpec 首先F开头(多用于结构体), 不继承自UObject因此不会进行垃圾回收; 作用:聚合UGamplayEffect类对象, 然后附加运行时的一些数据和Context上下文。 例如Level , FGameplayEffectContextHandle3.FGameplayEffect...原创 2021-10-16 13:46:24 · 454 阅读 · 0 评论 -
Ue4 GAS
GamePlayTags: 核心数据结构:AbilitySystemComponent::FGameplayTagCountContainer主要用于区别Object以及描述Object的状态了;例如如果角色被Stun(眩晕)了,那么在Stun期间,我们可以给角色一个GamePlayTag:State.Debuff.Stun 使用FGameplayTag::RequestGameplayTag(FName("Your.GameplayTag....原创 2021-09-07 15:37:55 · 453 阅读 · 0 评论 -
Ue4 蓝图
PropertyTags:BlueprintAssignable:在蓝图中是可赋值的,常用于多播原创 2021-09-07 10:07:04 · 139 阅读 · 0 评论 -
Ue4 UMG
1.视口变动导致受锚点控制的Widget位置变化出现的问题 在播放UI特效的时候,发现Widget的位置不对;第一反应是因为canvasPanel不带有自动计算位置,所以以为是这个问题(根本没搞懂缩放以及锚点控制,以及自动的位置排布计算之间的不同)。 DPI(每英寸像素密度)device_solusion/design_solution,缩放是针对整个屏幕的分辨率来做的缩放调整,各控件的相对位置都是不变的;当像素密度大于设计分辨率时,进行放大;小于设计分辨率时进行缩小...原创 2021-08-25 16:40:22 · 504 阅读 · 0 评论 -
Ue4 UI优化文档整理理解
1.名词解释User Widget:对应一个用户界面。Widget Tree:每一个 User Widget 都是存储成树状结构。Panel Widget:不会渲染出来,用于对 Child Widget 进行布局,如 Canva Panel, Grid Panel, Horizontal Box 等。Common Widget:用于渲染,会生成到最后的 Draw Elements 中,如 Button, Image, Text 等。2.渲染流程...原创 2021-08-05 16:26:57 · 1087 阅读 · 0 评论 -
Ue4 RenderPipline:渲染流程
1.初始化视口阶段:主要进行可见性剔除;剔除过程分三步:1)预设值可见性 2)可见性计算 3)完成可见性计算2.PrePass预处理阶段:主要是为了降低BasePass的渲染工作量;通过渲染一次深度信息,如果某个像素点的深度检测失败,即不符合当前深度值,那么将不会进行工作量最大的像素渲染器计算。(个人认为其实就是early-z) 进行PrePass:有两个限制:1)不是基于分块的GPU,即Tiled-GPU , 例如很多ARM移动平台就是 2)渲染器的EarlyzPassMod...原创 2021-07-29 11:09:48 · 424 阅读 · 0 评论 -
Ue4 RenderPipline:渲染基本概念
11.1 渲染线程虚幻中的渲染系统,使用单独的线程去工作:即渲染线程 其中Slate系统本身也借助虚幻引擎RHI渲染11.1.1 渲染线程的启动11.1.2 渲染线程与游戏线程与RHI线程原创 2021-07-28 11:33:26 · 275 阅读 · 0 评论 -
Ue4 Slate 渲染以及Merge流程
1.DrawIndow//绘制2.DrawWindowAndChildren3.Paint //唯一函数swidget4.OnPaint // 虚函数,多槽点的将孩子加入到DrawElement中5.DrawWindow //渲染6.AddElement //将DrawElement包装成RenderBatchElement7.DrawWindow_RenderThread //通过渲染线程进行渲染8.1 BuildRenderBuff------>MergeBat...原创 2021-07-22 11:54:21 · 661 阅读 · 0 评论 -
Ue4 GC
GC入口://CarbageCollection.cpp 2144void CollectGarbage(EObjectFlags KeepFlags, bool bPerformFullPurge){ // No other thread may be performing UObject operations while we're running AcquireGCLock(); // Perform actual garbage collection CollectGarbag.原创 2021-07-21 13:55:32 · 362 阅读 · 0 评论 -
Ue4 反射系统
原文:InsideUe4总结 :类型系统 强调的是程序运行期间内建立起来的类型信息树组织反射则强调运行时通过类型系统提供的信息创建对象,读取对象属性以及方法的一种能力为什么要是用反射 1.通过反射能够更通用的调用类对象函数,而不需要判断对象类型(例如Unity通过反射调用Updat、FixUpdate) 2.为数据序列化提供支持 TODOC++中提供基础的RTTI主要通过typeid以及dynamic_cast typeid:这...原创 2021-07-20 15:47:39 · 693 阅读 · 0 评论