美文网首页
动态实例化蓝图对象

动态实例化蓝图对象

作者: Vic_Boss | 来源:发表于2016-10-31 10:12 被阅读0次

有时候我们用C++定义了一个对象的类,而其他人员又可能在此类之上创建了蓝图类并进行了修改,那么如何在运行时获取到那个蓝图子类,又如何创建对象呢?

假定我们有个基类叫 MyHTCHandle ,基于此创建的蓝图类为 BP_Handle ,在这个蓝图类里可能会有其他设计人员进行了修改。

我们可以使用 ConstructorHelpers::FObjectFinder 来获取蓝图的类,从而使用 SpawnActor 创建 Actor ;

只需要加入如下代码:


static ConstructorHelpers::FObjectFinder<UClass> MyHandle(TEXT("Class'/Game/MyBlueprint/BP_Handle.BP_Handle_C'"));

if (MyHandle.Object)
{
  TSubclassOf<AMyHTCHandle> MyBPHandle = (UClass*)MyHandle.Object;
  GetWorld()->SpawnActor<AMyHTCHandle>(MyBPHandle , FVector(0), FRotator(0));
}

其中, ConstructorHelpers::FObjectFinder<UClass> 只能用于构造函数中。

关于这句 Class'/Game/MyBlueprint/BP_Handle.BP_Handle_C' ,可以在编辑器中找到该蓝图类,然后使用右键复制引用,
当然这时候得到的字符串 Blueprint'/Game/MyBlueprint/BP_Handle.BP_Handle' 其实指向的是蓝图类,如果要使用到它在C++中的类型就要稍微修改一下。

相关文章

  • 动态实例化蓝图对象

    有时候我们用C++定义了一个对象的类,而其他人员又可能在此类之上创建了蓝图类并进行了修改,那么如何在运行时获取到那...

  • java为什么静态方法只能调用静态方法

    因为静态方法是属于类的,动态方法属于实例对象,动态方法只有在对象实例化之后才存在, 如果静态方法能调用动态方法的话...

  • 2.1 JSONModel实例化对象

    JSONModel实例化对象 JSONModel实例化对象.png

  • Runtime应用系列:关联对象

    AssociatedObject 对象实例化后不能动态添加属性,除非在动态创建一个类时。如果想给一个已经存在的对象...

  • C++学习笔记——面向对象(一)

    对象实例化的两种方法 通过栈实例化对象Student stu;Student stus[3]; 通过堆实例化对象S...

  • 反射

    正常方式:引入需要的“包.类”名称 ---> 通过new实例化 --->取得实例化对象反射方式:实例化对象--->...

  • 面向对象

    实例化对象 使用 类名() 可以实例化一个对象,你可以使用给这个实例化的对象起一个名字,关于对象的初始化: 对象的...

  • Java获取Class对象的方式和实例化对象的方式

    Java获取Class对象的方式和实例化对象的方式 获取Class对象的方式 实例化对象的方式

  • python 一图看懂各种类方法

    对象:是类实例化后的实体 实例化:创建对象的过程称为实例化,一般用:if __name__ == '__main_...

  • 对象的创建方法总结

    对象和构造函数是两码事,对象是通过实例化构造函数new出的对象实例。对象是通过实例化构造函数而创建的一个对象实例。...

网友评论

      本文标题:动态实例化蓝图对象

      本文链接:https://www.haomeiwen.com/subject/cnzuuttx.html