首先,ActorComponent下面当然不是只有SceneComponent,一些UMovementComponent,AIComponent,或者是我们自己写的Component,都是会直接继承ActorComponent的。但很奇怪的是,ActorComponent却是不能嵌套的,在UE的观念里,好像只有带Transform的SceneComponent才有资格被嵌套,好像Component的互相嵌套必须和3D里的transform父子对应起来。
首先,ActorComponent下面当然不是只有SceneComponent,一些UMovementComponent,AIComponent,或者是我们自己写的Component,都是会直接继承ActorComponent的。但很奇怪的是,ActorComponent却是不能嵌套的,在UE的观念里,好像只有带Transform的SceneComponent才有资格被嵌套,好像Component的互相嵌套必须和3D里的transform父子对应起来。
已经知道,在UE的眼里,游戏世界的万物皆Actor,Actor再通过Component组装功能。Actor又通过UChildActorComponent实现Actor之间的父子嵌套。(GamePlay架构(一)Actor和Component) 众多的各种Actor子类又组装成了Level(GamePlay架构(二)Level和World): 如此每一个Level就拥有了一座Actor的森林,你可以根据自己的需要定制化Level,比如...
1.SceneComponents是拥有变换数据的ActorComponents,就是说SceneComponents是个组件,它封装了变换数据;Actor支持拥有一个SceneComponent的层级,就是说每个Actor支持拥有一个层级结构,这个层级放置一个SceneComponent组件,这个放置的SceneComponent组件包含了该Actor的变换数据,这套变换数据是针对这这个Actor总体而言的,将这个Actor...
1.SceneComponents是拥有变换数据的ActorComponents,就是说SceneComponents是个组件,它封装了变换数据;Actor支持拥有一个SceneComponent的层级,就是说每个Actor支持拥有一个层级结构,这个层级放置一个SceneComponent组件,这个放置的SceneComponent组件包含了该Actor的变换数据,这套变换数据是针对这这个Actor总体而言的,将这个Actor...
4.UActorComponent UActorComponent是UE向U3D看齐的一个产物,虽然UE世界有了Actor就有了形形色色的物体生物,但是不同的生物拥有不同的技能,而同一个Actor可以会某个技能也可以不会,这种概念使用组合的方式组合到Actor下是最理想的,于是Component便出现了,UActorComponent直接继承自UObject,与AActor同级,Component既可以...
new/delete 等内存管理的调用一定要匹配,譬如调用了 new 就一定要调用 delete(而不能 不调用 delet ...
最后,我们设置场景组件的相对变换,使其移动到离原点一定距离的地方,并且是比例尺的十分之一。 这意味着在 Editor 中,我们可以看到 BoxTwo 组件继承了其父组件 ChildSceneComponent 的转换和伸缩。
void ADestructibleCreator::OnHit(UPrimitiveComponent* MyComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit) { //碰撞时候给所有子组件施加伤害,保证同时破碎 TArray<UActorComponent*> ChildComponents = GetComponentsByClass(UDestructibleComponent::StaticCla...
在场景中(非运行状态)蓝图Actor中的构造函数中只会读取Component属性的默认值在使用ProjectileMovement的子弹时,射击迎面快速移动的物体时,bInitialOverlap始终为true。Pawn的AtuoPossessAI不能正确在ChildActorComponent中生成注意,在SpawnActor(放置在关卡中是没问题的,动态生成才会出现此问题)中...