Фэндом


AllocateUObjectIndexForCurrentThread Править

Определена в файле UObjectHash.

!TODO!

ConstructObject Править

Определена в файле UObjectGlobals.

template< class T >
T *ConstructObject(
       UClass                 *Class,
       UObject                *Outer                            = (UObject*) GetTransientPackage(),
       FName                   Name                             = NAME_None,
       EObjectFlags            SetFlags                         = RF_NoFlags,
       UObject                *Template                         = NULL,
       bool                    bCopyTransientsFromClassDefaults = false,
       FObjectInstancingGraph *InstanceGraph                    = NULL)

Эта шаблонная функция объявлена устаревшей, начиная с версии UE 4.8. Вместо неё следует использовать функцию NewObject.

GetFullNameSafe Править

Определена в файле UObjectBaseUtility.

FString  GetFullNameSafe(
             const UObjectBaseUtility *Object)

Параметры:

  • Object — объект, чьё имя надо получить.

Эта функция безопасным образом возвращает имя заданного объекта. Безопасность заключается в том, что она проверяет, не передан ли ей нулевой указатель и задан ли класс для указанного объекта. В обоих этих случаях возвращается строка "None", и лишь в случае, если параметр Object отличен от нуля и для него задан класс, вызывается соответствующий метод GetFullName.

GetTransientPackage Править

Определена в файле UObjectGlobals.

UPackage *GetTransientPackage()

!TODO!

HashObject Править

Определена в файле UObjectHash.

!TODO!

MarkObject Править

Определена в файле UObjectMarks.

!TODO!

NewNamedObject Править

Определена в файле UObjectGlobals.

template< class TClass >
TClass *NewNamedObject(
            UObject      *Outer,
            FName         Name,
            EObjectFlags  Flags    = RF_NoFlags,
            UObject      *Template = NULL)

Эта функция, предназначенная для создания экземпляров объектов заданного типа, объявлена устаревшей, начиная с версии 4.8. Вместо неё следует использовать функцию NewObject.

NewObject Править

Определена в файле UObjectGlobals.

template< class T >
T* NewObject(
       UObject                *Outer                            = (UObject*) GetTransientPackage(),
       UClass                 *Class                            = T::StaticClass(),
       FName                   Name                             = NAME_None,
       EObjectFlags            Flags                            = RF_NoFlags,
       UObject                *Template                         = nullptr,
       bool                    bCopyTransientsFromClassDefaults = false,
       FObjectInstancingGraph *InInstanceGraph                  = nullptr)
template< class T >
T* NewObject(
       UObject                *Outer,
       FName                   Name,
       EObjectFlags            Flags                            = RF_NoFlags,
       UObject                *Template                         = nullptr,
       bool                    bCopyTransientsFromClassDefaults = false,
       FObjectInstancingGraph *InInstanceGraph                  = nullptr)

Параметры:

  • T — тип создаваемого объекта;
  • Outer — объект-хозяин создаваемого объекта;
  • Class — класс создаваемого объекта. Вторая форма функции автоматически использует класс, соответствующий типу объекта; для первой функции может быть явно задан другой класс, но он обязательно должен быть потомком класса, соответствующего типу объекта;
  • Name — имя создаваемого объекта. Не допускается задавать пустое имя, если эта функция вызывается из конструктора объекта-хозяина (т.е. функция не может использоваться для создания подобъектов по умолчанию);
  • Flags — флаги создаваемого объекта;
  • Template — объект, который должен использоваться в качестве шаблона при создании нового объекта;
  • bCopyTransientsFromClassDefaults — если равен true, указывает, что значения переходных (transient) свойств необходимо копировать из CDO, а не указанного архетипа;
  • InInstanceGraph — указатель на структуру, содержащую отображение созданных компонентов и объектов на их шаблоны; используется для создания компонентов, которыми владеет новый объект.

Эти шаблонные функции предназначены для создания нового экземпляра объекта заданного типа T. Основную часть работы для них выполняет внутренняя функция StaticConstructObject_Internal.

ObjectHasAllMarks Править

Определена в файле UObjectMarks.

!TODO!

ObjectHasAnyMarks Править

Определена в файле UObjectMarks.

!TODO!

StaticConstructObject Править

Определена в файле UObjectGlobals.

UObject *StaticConstructObject(
             UClass                 *Class,
             UObject                *InOuter                          = (UObject*) GetTransientPackage(),
             FName                   Name                             = NAME_None,
             EObjectFlags            SetFlags                         = RF_NoFlags,
             UObject                *Template                         = NULL,
             bool                    bCopyTransientsFromClassDefaults = false,
             FObjectInstancingGraph *InstanceGraph                    = NULL)

Эта функция объявлена устаревшей; вместо неё следует использовать NewObject, а внутренний код модуля CoreUObject должен пользоваться функцией StaticConstructObject_Internal.

StaticConstructObject_Internal Править

Определена в файле UObjectGlobals.

UObject*  StaticConstructObject_Internal(
             UClass                 *Class,
             UObject                *Outer                            = (UObject*) GetTransientPackage(),
             FName                   Name                             = NAME_None,
             EObjectFlags            SetFlags                         = RF_NoFlags,
             UObject                *Template                         = NULL,
             bool                    bCopyTransientsFromClassDefaults = false,
             FObjectInstancingGraph *InstanceGraph                    = NULL)

Параметры:

  • Class — класс создаваемого объекта;
  • Outer — хозяин данного объекта (объект, внутри которого будет находиться создаваемый объект);
  • Name — имя создаваемого объекта. Если не задано, будет автоматически создано уникальное имя вида "ClassName_#";
  • SetFlags — набор флагов, описывающих создаваемый объект;
  • Template — объект-архетип для данного объекта. Если задан, в новом объекте будет сохранена ссылка на этот объект как на архетип, а свойства нового объекта будут скопированы из объекта-архетипа. Если же архетип не задан, копирование свойств будет выполнено из CDO. Если задан, архетип должен принадлежать к тому же классу, что и создаваемый объект, или к классу-потомку, либо он должен быть CDO;
  • bCopyTransientsFromClassDefaults — если этот параметр равен true, временные свойства будут скопированы из CDO, а не объекта-архетипа;
  • InstanceGraph — указатель на структуру, задающую отображение созданных объектов и компонентов на их шаблоны.

Эта подпрограмма предназначена для использования внутри модуля CoreUObject. Она создаёт новый экземпляр объекта и обеспечивает его полную инициализацию, включая, как правило, создание компонентов объекта. Однако если в параметре SetFlags присутствует флаг RF_NeedsLoad (он указывает, что объект по-прежнему нуждается в загрузке своих данных с диска), компоненты объекта не будут создаваться во время его создания (вместо этого они будут созданы при выполнении метода PostLoad).

Собственно создание объекта выполняется подпрограммой StaticAllocateObject, а подобъекты нового объекта при необходимости создаются вызовом конструктора класса, адрес которого находится в поле Class::ClassConstructor.

При компиляции со сбором статистики общее время выполнения этой функции учитывается как STAT_ConstructObject.

StaticLoadClass Править

UClass *StaticLoadClass(
        UClass      *BaseClass,
        UObject     *InOuter,
        const TCHAR *Name,
        const TCHAR *Filename  = NULL,
        uint32       LoadFlags = LOAD_None,
        UPackageMap *Sandbox   = NULL);

StaticLoadObject Править

UObject *StaticLoadObject(
        UClass      *Class,
        UObject     *InOuter,
        const TCHAR *Name,
        const TCHAR *Filename                   = NULL,
        uint32       LoadFlags                  = LOAD_None,
        UPackageMap *Sandbox                    = NULL,
        bool         bAllowObjectReconciliation = true);

Поиск и загрузка объекта, заданного именем.

Параметры:

  • ObjectClass — класс искомого объекта;
  • InOuter — необязательный объект-«хозяин», определяющий, где выполнять поиск объекта;
  • InName — имя искомого объекта. Если не задано полностью, необходимо указать параметр InOuter или Filename;
  • Filename — необязательное имя файла, из которого должен быть загружен объект;
  • LoadFlags — флаги, управляющие загрузкой объекта;
  • Sandbox — список пакетов, ограничивающих поиск объекта;
  • bAllowObjectReconciliation — разрешено ли искать объект с помощью FindObject.

Возвращается указатель на загруженный объект. Если объект не был найден, возвращается nullptr.

UnhashObject Править

Определена в файле UObjectHash.

!TODO!

UnMarkObject Править

Определена в файле UObjectMarks.

!TODO!

DebugIsClassChildOf_Internal Править

Определена в файле UObjectGlobals.

COREUOBJECT_API bool  DebugIsClassChildOf_Internal(
        UClass  *Parent,
        UClass  *Child);

Возвращает true, если класс Child является потомком класса Parent, и false в противном случае.

UObjectInitialized Править

Определена в файле UObjectBase.

bool  UObjectInitialized()

Эта функция возвращает true, если система объектов уже инициализирована, и false в противном случае.

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.

Также на Фэндоме

Случайная вики