1. Component基本介绍 2. 组件创建的方式: 3. 其他 引用: 一. 概览 UE的Gameplay是一个系统,里面包括很多的类,用于方便我们快速搭建一个项目。所有类之中,除了UObject,Actor和Component是相对基础的存在。Actor是一个容器,包含了不同功能的Components,如USceneComponent,保证了Actor有了Location,Rotation和Scale,可以...
打开蓝图,选择静态网格体资源,将我们创建的蓝图拖拽到场景中,运行即可看到静态网格体组件被创建出来了 给Actor动态增加一个ChildActor 原理和增加组件是一样的,增加一个ChildActorComponent,再设置ChildActorClass,我们直接上代码 给MyTest.h中增加一个属性,用于我们方便的指定子对象的蓝图资源 在BeginPlay()函数中增加组...
组件(Component)是一种可以添加到Actor的功能。 将组件添加到Actor时,Actor可以使用组件提供的功能。例如: 点光源组件将使Actor像点光源一样发光。 旋转移动组件将使Actor转动。 音频组件将使Actor能够播放音效。 组件必须连接到Actor,不能独自存在。 Pawn Pawn是Actor的子类,作为游戏内的形象或人像(例如游戏中的角色)...
void AMyTest::BeginPlay() { Super::BeginPlay(); // 增加子Actor if (ActorC != nullptr) { FTransform Transform = UKismetMathLibrary::MakeTransform(FVector(0.0, 0.0, 0.0),FRotator(0.0, 0.0, 0.0),FVector(1.0, 1.0, 1.0)); UActorComponent *AC = AddComponentByClass(UChildActorComponent::St...
场景组件 (USceneComponent类,UActorComponent的子类)支持基于位置相关的行为,并且此类行为不需要表现几何体。 场景组件包括弹簧臂、摄像机、物理力和约束(非物理对象)以及音频。 图元组件 (UPrimitiveComponent类,USceneComponent的子类)是一种能够显示几何体的场景组件,通常用于渲染视觉元素,或用于与物理对象发生碰撞或重...
ActorComponent:实际上就是脚本,脚本就是指它可以挂在任意Actor上,这个是我们用到最多的,也是最核心的. 我们上面说过,如果一个功能不是唯一的,有多个物体拥有同样的功能,比如各种陷阱,常规游戏中陷阱不可能只存在一个,如果有多个陷阱同时存在,并且陷阱的功能都是伤害玩家,掉血。
可以调整水插件Actor的默认参数。 水面VSM过滤(Water VSM Filter) 可以让水面上的虚拟阴影更加平滑自然。 变量颜色查看(Actor Coloration) 在光照模式下,UE4中曾被移除,UE5.4又被加上了。 渲染资源查看器(Render Resource Viewer) 在下图可以找到: 可以比较直观了解到,哪些东西正在使用渲染器资源。
1. 前情提要 因工作需要,有在编辑器模式下执行Actor的Tick函数的需求。经过查阅资料,了解到重载Actor::ShouldTickIfViewportOnly函数可以实现在编辑器视口下也可以执行Tick函数。 已知Actor和ActorComponent都有自己的Tick函数,并且进入游戏并
在创建时候也会批量执行SpawnDataInitalizer,这里就会在场景里对应的位置上Spawn出Actor,当然前提是Component上要有Actor组件,也就是下面这个Fragment。 这个fragment组件可以看到继承FObjectWrapper Fragment,这个基类其实就是把ECS和UE原本的UObject关联起来的桥梁,UObject的指针会保存在Fragment上面,这样ECS就可以使用Actor了...
1.3 Actor 生成的性能消耗 接下来我们使用对象池子系统插件中的 BP_PerformanceTest 来测试一下生成过程中各个函数的性能消耗,测试中生成的是一个只有一个 StaticMeshComponent 的 Actor, 每 Tick 生成 100 个该对象。简化 SpawnActor 的流程到 ActorSpawnPerformanceTest::SpawnActors 中,然后每 Tick 生成固定数量的...