《虚幻4引擎快速入门视频教程》FAQ

在UE4中Actor是否可以组成父子关系?

  • 问:在“课时 2.3 快速上手——给Unity3D开发者开的小灶”中你讲到“UE4中Actor不能组成父子关系,只能通过Component组成父子关系,也就是说只能在Actor之内组成父子关系”,我有点疑问,在世界大纲中不是可以将一个物体拖动到另一个物体上组成父子关系吗?

  • 答:首先要说明一下,我在视频教程中的这个说法不够严谨,然后我们再详细说明一下这个问题。

    • 从基本功能的角度来说,UE4的Actor也是支持组成父子关系的,就像这位同学所说的在World Outliner视图中,可以组成父子关系,子物体的Transform定义在父对象的空间之中;

    • 从代码实现的角度来说,也可以说class AActor并不直接支持父子关系管理,它通过Component来实现这个功能。例如,当你在编辑器的World Outliner视图中,拖动一个Actor放置到另外一个Actor之下作为它的子物体时,实现这个功能的为:
      void UEditorEngine::ParentActors( AActor* ParentActor, 
      	AActor* ChildActor, 
      	const FName SocketName, 
      	USceneComponent* Component)
      我们分析一下这个函数的实现,发现,确实组成父子关系的并非class AActor对象,而是他们的Root Component(class USceneComponent对象)。
      另外,我发现还有另外一个组件和这个问题相关:class UChildActorComponent


你可能感兴趣的:(Engine,Unreal,3D引擎)