当前位置: 首页 > news >正文

UEC++ 创建默认子对象CreateDefaultSubobject

CreateDefaultSubobject 是 Unreal Engine C++ 里非常常见、非常核心的函数,用来在 构造函数(Constructor) 里创建组件(Component)用的。

比如你在一个 AActorAPawn 的构造函数中看到👇这种写法:

USkeletalMeshComponent* Mesh = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("Mesh"));

✅ 一句话解释

CreateDefaultSubobject 用于在构造阶段为 Actor 或 Object 创建子对象(组件),并让引擎正确地管理它(包括反射、序列化、蓝图编辑可见等)。


🔹 语法

template <class T> T* CreateDefaultSubobject(FName SubobjectName, bool bTransient = false);
  • T:你想创建的子对象类型,比如 UStaticMeshComponentUSphereComponent

  • SubobjectName:子对象的名字(在蓝图或详情面板中显示用)。

  • 返回值:新创建的对象指针(类型是 T*)。


🔹 典型用法(放在构造函数里)

AMyCharacter::AMyCharacter() { // 创建胶囊体碰撞组件 CapsuleComponent = CreateDefaultSubobject<UCapsuleComponent>(TEXT("Capsule")); RootComponent = CapsuleComponent; // 设为根组件 // 创建网格体组件 Mesh = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("Mesh")); Mesh->SetupAttachment(RootComponent); // 附加到根组件 }

⚠️ 注意:只能在构造函数里调用,因为这时引擎还在构建对象的模板(CDO)。


🔹 为什么不能用 NewObject

  • NewObject 用于运行时动态创建对象;

  • CreateDefaultSubobject 用于构造时创建默认组件

  • NewObject 创建的组件不会被编辑器识别,不会在蓝图里可见,也不参与反射系统;

  • CreateDefaultSubobject 创建的会自动被注册到反射系统、保存、复制等机制。


🔹 简单对比

函数使用场景生命周期是否反射可见
CreateDefaultSubobject构造函数中创建默认组件随 Actor 一起创建✅ 是
NewObject运行时动态创建对象手动管理❌ 否(默认)
SpawnActor世界中生成 Actor运行时✅ 是

🔹 举例理解

比如你想做一个带灯光的道具:

AItemLight::AItemLight() { Mesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Mesh")); RootComponent = Mesh; PointLight = CreateDefaultSubobject<UPointLightComponent>(TEXT("Light")); PointLight->SetupAttachment(Mesh); }

然后在蓝图里就能看到:

  • 一个 Mesh

  • 一个 Light
    这两个都是 “默认子对象”,能被修改、保存、复制。


🔹 总结一句话

CreateDefaultSubobject 是在构造阶段创建并注册默认组件的函数,使组件能被编辑器、蓝图和引擎系统正确识别与管理。

http://www.dtcms.com/a/598659.html

相关文章:

  • 免费直播网站贵州灵溪seo整站优化
  • 数字电路零基础入门教程
  • 自己做淘宝客登录网站进口网站建设
  • 网站怎么做搜索功能WordPress连接符
  • snapan项目--kkfileview介绍及部署(下)
  • WordPress插件--Markdown编辑器
  • 计算机图形学·13 构建模型
  • 营销型网站哪家做的好苏州网站优化找哪家
  • 嵌入式面试高频题:模拟电路+数字电路(含标准答案)
  • 长沙河东做网站深圳ui设计
  • 作业1111
  • 若依使用技巧
  • 高大上设计网站欣赏付费链接生成平台
  • 我是谁,我能干什么?
  • 加强医院网站建设网站的视频做gif
  • 简述网站建设的上海百度优化
  • 广州专业网站建设后台管理便捷o2o网站建设基本流程
  • Shell脚本定时备份数据库目录到远程服务器,并保留指定数量的备份
  • style wordpress 主题企业网站优化咨询
  • 做一个手机购物网站多少钱3合1网站建设价格
  • 导航网站帝国cms模版关于申请建设门户网站的
  • 构建AI智能体:九十一、大模型三大适应技术详解:有监督微调、提示学习与语境学习
  • Linux下如何使用git工具
  • 朋友给我做网站网站解封原因
  • Android 协程间通信
  • 网站建设速度如何解决沧州做网络推广的平台
  • 网站建设系统 网站自助建站系统平湖网站制作
  • asp伪静态网站如何做筛选网站如何做微信支付宝支付宝支付接口
  • 温州苍南网站建设上海十大猎头公司排名
  • 在家做的手工活哪里有网站郑州短视频拍摄制作