zoukankan      html  css  js  c++  java
  • UnrealEngine4之UObject(一)

    Runtime最关键的实现是UObject,它是全部引擎层面、游戏层面对象的基类。

    UObject实现了动态创建、持久化、脚本化、内存管理、生存期控制。

    ---------------------------

    关于动态创建

    ---------------------------

    通过一个类名创建一个对象就是动态创建。

    UnrealEngine4流程就是:

    FStringClassReference XxxxClassName;

                                 | 

        TSubclassOf<Xxxx> XxxxClass;

                                 |

                 Xxxx* XxxxObject;;

    通过类名找到执行时类型信息。再通过执行时类型信息创建一个对象。

    UField、UStruct、UClass、UProperty、UFunction、UEnum等是构建执行时类型信息的数据结构。參见Runtime/CoreUObject/Public/UObject/Class.h

    这个时候引申出一个问题:这些执行时类型信息怎么构建起来?

    UnrealEngine4里每一个类都会相应一个Xxxx.generated.h,这个里面放着构建执行时类型信息的宏定义代码。这个Xxxx.gengerated.h是通过UnrealHeaderTool(UHT)生成的。

    UHT通过解析每一个头文件中的keywordUCLASS、USTRUCT、UPROPERTY、UFUNCTION、UENUM等生成出来的。


  • 相关阅读:
    C#多态的实现
    C#虚方法
    stm32HAL库中串口部分各个传输和接收函数分析
    ASC字符串取模网址
    STM32F1高级定时器做普通PWM输出配置(例TIM1)
    maven 插件说明
    mac 离线安装yarn
    Tomcat 远程调试
    杀死 tomcat 进程的脚本
    mysql 安装
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/6874204.html
Copyright © 2011-2022 走看看