首先,ActorComponent下面当然不是只有SceneComponent,一些UMovementComponent,AIComponent,或者是我们自己写的Component,都是会直接继承ActorComponent的。但很奇怪的是,ActorComponent却是不能嵌套的,在UE的观念里,好像只有带Transform的SceneComponent才有资格被嵌套,好像Component的互相嵌套必须和3D里的transform父子对应起来。
1.SceneComponents是拥有变换数据的ActorComponents,就是说SceneComponents是个组件,它封装了变换数据;Actor支持拥有一个SceneComponent的层级,就是说每个Actor支持拥有一个层级结构,这个层级放置一个SceneComponent组件,这个放置的SceneComponent组件包含了该Actor的变换数据,这套变换数据是针对这这个Actor总体而言的,将这个Actor...
Component Replication Component作为Actor的一部分进行复制,Actor 仍然掌管角色、优先级、相关性、剔除等方面的工作 Actor复制开启,它就可以复制自身的Component;组件可以按 Actor 的方式复制属性和RPC Component必须以 Actor 的方式来实施::GetLifetimeReplicatedProps函数和调用AActorComponent::SetIsReplicated(true) Subobj...
1.UActorComponent:这个是基础组件,它们通常用于概念上的功能,例如AI或者解译玩家的输入。 2.USenceComponent:这是拥有变换的ActorComponent(不知道什么是变换可以参考我的第一篇博客UE4 C++学习 浅析基本数据类型 - CatSevenMillion - 博客园 (cnblogs.com),里面有提到),Actor的所有变换都是取自位于层级根部的SceneC...
Actor和Component都是UObject,有两种生成方式。 构造函数中 CreateDefaultSubobject UHexTile*newTile=CreateDefaultSubobject<UHexTile>(TEXT("HexTileName")); 构造函数外 NewObject staticint32 TileCounter=0;FString TileName=FString::Printf(TEXT("HexTile_%d"),TileCounter++);UHexTile*NewTile=NewObject<UHexT...
随便创建一个空的Actor添加组件 一个Cube和自定义组件 运行之后我们就会看到这个Actor随机移动的现象。 回顾一下: 首先,我们在组件声明中使用的 UCLASS 宏中添加一些说明符。 将 blueprintspawnablcomponent 添加到类的元值中意味着组件的实例可以添加到编辑器中的 Blueprint 类中。 类组说明符允许我们指出我们的组件...
1.SceneComponents是拥有变换数据的ActorComponents,就是说SceneComponents是个组件,它封装了变换数据;Actor支持拥有一个SceneComponent的层级,就是说每个Actor支持拥有一个层级结构,这个层级放置一个SceneComponent组件,这个放置的SceneComponent组件包含了该Actor的变换数据,这套变换数据是针对这这个Actor总体而言的,将这个Actor...
十二、为RPG创建一个InventoryComponent(背包组件) 这个例子中会涉及创建的类会比较多,所以新建一个文件夹(RPG)来创建这些类: 创建新C++类: 添加代码: InventoryActor.h // Fill out your copyright notice in the Description page of Project Settings. ...
【UE4C++】Actor与Component——创建、销毁Actor的⽣成与销毁 创建Actor实例 UClass* TSubclassOf<T> SpawnActor()UPROPERTY(EditAnywhere, Category = "init")UClass* bullet0; // 取类 UPROPERTY(EditAnywhere, Category = "init")TSubclassOf<Amissile> bullet; //取Amissile类及其派⽣类 UPROPERTY(Edit...
对于蓝图类的Actor,并且没有C++根组件的Actor,它会在蓝图构造时触发。 UActorComponent::RegisterComponent 所有的组件在此时注册,不论在编辑器还是运行时。 它会创建物理资源和渲染资源。 这个函数可能会分帧执行,但是总会在PreRegisterAllComponents之后 这个方法可能会在UnRegisterComponent调用后,从World移除后再次触发。