Choose your operating system:
Windows
macOS
Linux
NewObject
NewObject()
は最もシンプルな UObject のファクトリ メソッドです。任意の外部オブジェクトとクラスを受け取り、自動生成される名前で新規のインスタンスを作成します。
template< class T >
T* NewObject
(
UObject* Outer=(UObject*)GetTransientPackage(),
UClass* Class=T::StaticClass()
)
パラメータ |
説明 |
|
---|---|---|
|
任意です。作成中の Object の Outer として設定する
|
|
|
任意です。作成する Object のクラスを指定する
|
|
戻り値 |
||
指定クラスのスポーンされたインスタンスへのポインターです。 |
NewNamedObject
NewNamedObject()
は、新規インスタンスの名前、
オブジェクト フラグ
とテンプレート オブジェクトを引数として指定することを許可することで
NewObject()
を展開します。
template< class TClass >
TClass* NewNamedObject
(
UObject* Outer,
FName Name,
EObjectFlags Flags = RF_NoFlags,
UObject const* Template=NULL
)
パラメータ |
説明 |
|
---|---|---|
|
作成中の Object の Outer として設定する
|
|
|
新規 Object の
|
|
|
任意です。新規の Object を表現する
|
|
|
任意です。新規 Object の作成時に、テンプレートとして使用する
|
|
戻り値 |
||
指定クラスのスポーンされたインスタンスへのポインターです。 |
ConstructObject
柔軟性を極めるために、
UObjects
の新規インスタンスは
ConstructObject()
関数を使って作成することができます。この関数は Object を割り当てる
StaticConstructObject()
を呼び出し、
ClassConstructor
を実行し、config プロパティの読み込み、ローカライズされたプロパティの読み込み、コンポーネントのインスタンス化といった初期化を実行します。
template< class T >
T* ConstructObject
(
UClass* Class,
UObject* Outer = (UObject*)GetTransientPackage(),
FName Name=NAME_None,
EObjectFlags SetFlags=RF_NoFlags,
UObject const* Template=NULL,
bool bCopyTransientsFromClassDefaults=false,
struct FObjectInstancingGraph* InstanceGraph=NULL
)
パラメータ |
説明 |
|
---|---|---|
|
作成する Object のクラスを指定する
|
|
|
任意です。作成中の Object の Outer として設定する
|
|
|
任意です。新規 Object の
|
|
|
任意です。新規 Object を表す
|
|
|
任意です。新規 Object の作成時に、テンプレートとして使用する
|
|
|
任意です。渡されたアーキタイプのポインターの代わりにクラスのデフォルト オブジェクトから一時プロパティのコピーの実行を判断する
|
|
|
任意。インスタンス化されたオブジェクトとコンポーネントのマッピングをテンプレートへ格納する
|
|
戻り値 |
||
指定クラスのスポーンされたインスタンスへのポインターです。 |
Object Flags
EObjectFlags
列挙型変数は、 Object を迅速かつ簡潔に表す際に使用します。Object の型、ガーベジ コレクションの処理方法の説明、ライフタイムにおける Object のステージ状況などを表すさまざまなフラグがあります。特別なマスク、全てのマスク、マスク無しや、定義済みのフラグのグループもあります。
フラグ |
値 |
説明 |
||
---|---|---|---|---|
オブジェクトの型 |
||||
RF_Public |
|
Object は格納されているパッケージの外側から可視出来ます。 |
||
RF_Standalone |
|
参照されない Object も編集のために保持されます。 |
||
RF_Native |
|
Object はネイティブです。これは
|
||
RF_Transactional |
|
Object はトランザクション オブジェクトです。 |
||
RF_ClassDefaultObject |
|
Object は、このクラスのデフォルトオブジェクトです。例えば、作成時にそのクラスの新規インスタンスが使用するデフォルト テンプレートなどです。 |
||
RF_ArchetypeObject |
|
Object は、別のオブジェクトのテンプレートです。クラスのデフォルト オブジェクトのような扱いです。 |
||
RF_Transient |
|
Object はディスクに保存されません。 |
||
ガーベジ コレクション |
||||
RF_RootSet |
|
何からも参照されない場合でも、 Object はガーベジ コレクションされません。 |
||
RF_IsLazyReferenced |
|
Object は怠惰なポインタに参照され、削除の際に追加のクリーンアップを必要とします。 |
||
RF_Unreachable |
|
オブジェクト グラフ上では到達できない Object です。 |
||
RF_TagGarbageTemp |
|
ガーベジ コレクションを使用するさまざまなユーティリティの使用にマーク付けされる Object です。このフラグはガーベジ コレクタそのものにはインタープリットされません。 |
||
オブジェクトのライフタイム |
||||
RF_NeedLoad |
|
Object は読み込みが必要です。 |
||
RF_AsyncLoading |
|
Object は非同期で読み込まれています。 |
||
RF_NeedPostLoad |
|
Object は後で読み込まなくてはいけません。 |
||
RF_NeedPostLoadSubobjects |
|
Object はサブ オブジェクトをインスタンス化し、シリアル化されたコンポーネント参照を修正する必要があります。 |
||
RF_PendingKill |
|
Object は、破壊のペンディング状態です。ゲームプレイ上の理由から無効なものとしてマスクしても、有効な Object のままです。 |
||
RF_BeginDestroyed |
|
Object は
|
||
RF_FinishDestroyed |
|
Object は
|
||
特別なマスク |
||||
RF_AllFlags |
|
Object は全てのフラグを持っています。主にエラーのチェックに使用します。 |
||
RF_NoFlags |
|
Object はフラグを持っていません。キャストの回避に使用します。 |
||
定義済みグループ |
||||
RF_Load |
|
フラグはアンリアル ファイルから読み込まれます。 |
||
RF_PropagateToSubobjects |
|
フラグはスーパー オブジェクトのサブオブジェクトによって継承されます。 |