NewObject
NewObject()
は最もシンプルな UObject のファクトリ メソッドです。任意の外部オブジェクトとクラスを受け取り、自動生成される名前で新規のインスタンスを作成します。
template< class T >
T* NewObject
(
UObject* Outer=(UObject*)GetTransientPackage(),
UClass* Class=T::StaticClass()
)
パラメータ |
説明 |
||
---|---|---|---|
|
(任意) 作成中の Object の Outer として設定する |
||
|
(任意) 作成する Object のクラスを指定する |
||
Return Value |
指定クラスのスポーンされたインスタンスへのポインターです。 |
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 の作成時に、テンプレートとして使用する |
||
Return Value |
指定クラスのスポーンされたインスタンスへのポインターです。 |
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 の作成時に、テンプレートとして使用する |
||
|
任意です。渡されたアーキタイプのポインターの代わりにクラスのデフォルト オブジェクトから一時プロパティのコピーの実行を判断する |
||
|
任意。インスタンス化されたオブジェクトとコンポーネントのマッピングをテンプレートへ格納する |
||
Return Value |
指定クラスのスポーンされたインスタンスへのポインターです。 |
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 |
|
フラグはスーパー オブジェクトのサブオブジェクトによって継承されます。 |