UDocumentation
UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SubobjectInstancingTest.h
Go to the documentation of this file.
1
// Copyright Epic Games, Inc. All Rights Reserved.
2
3
#pragma once
4
5
#if WITH_TESTS
6
7
#include "
UObject/Class.h
"
8
#include "
UObject/Object.h
"
9
#include "SubobjectInstancingTest.generated.h"
10
11
namespace
UE
12
{
13
14
struct
FSubobjectInstancingTestUtils
15
{
16
static
const
FName
GetNonNativeInnerObjectPropertyName
();
17
static
const
FName
GetNonNativeOuterObjectPropertyName
();
18
static
const
FName
GetNonNativeSelfReferencePropertyName
();
19
static
const
FName
GetNonNativeEditTimeInnerObjectPropertyName
();
20
21
static
UClass
*
CreateNonNativeInstancingTestClass
(
UClass
* SuperClass =
nullptr
);
22
static
UClass
*
CreateDynamicallyInstancedTestClass
(
UClass
* SuperClass =
nullptr
);
23
};
24
25
}
26
27
UCLASS
()
28
class
USubobjectInstancingTestObject
:
public
UObject
29
{
30
GENERATED_BODY
()
31
32
public
:
33
UPROPERTY
()
34
int32
TestValue
= 100;
35
};
36
37
UCLASS
()
38
class
USubobjectInstancingTestDerivedObject
:
public
USubobjectInstancingTestObject
39
{
40
GENERATED_BODY
()
41
};
42
43
UCLASS
()
44
class
USubobjectInstancingTestDirectlyNestedObject
:
public
USubobjectInstancingTestObject
45
{
46
GENERATED_BODY
()
47
48
public
:
49
USubobjectInstancingTestDirectlyNestedObject
();
50
51
UPROPERTY
(Instanced)
52
TObjectPtr
<
UObject
>
SelfRef
;
53
54
UPROPERTY
(Instanced)
55
TObjectPtr
<
UObject
>
OwnerObject
;
56
57
UPROPERTY
(Instanced)
58
TObjectPtr
<
USubobjectInstancingTestObject
> InnerObject;
59
};
60
61
UCLASS
()
62
class
USubobjectInstancingTestIndirectlyNestedObject
:
public
USubobjectInstancingTestObject
63
{
64
GENERATED_BODY
()
65
66
public
:
67
USubobjectInstancingTestIndirectlyNestedObject
();
68
69
UPROPERTY
(Instanced)
70
TObjectPtr
<
USubobjectInstancingTestDirectlyNestedObject
> InnerObject;
71
};
72
73
UCLASS
(DefaultToInstanced)
74
class
USubobjectInstancingDefaultToInstancedTestObject
:
public
USubobjectInstancingTestObject
75
{
76
GENERATED_BODY
()
77
};
78
79
USTRUCT
()
80
struct
FSubobjectInstancingTestStructType
81
{
82
GENERATED_BODY
()
83
84
UPROPERTY
(Instanced)
85
TObjectPtr
<
USubobjectInstancingTestObject
> InnerObject;
86
87
UPROPERTY
()
88
TObjectPtr
<
USubobjectInstancingDefaultToInstancedTestObject
>
InnerObjectFromType
;
89
90
UPROPERTY
(Instanced)
91
TArray
<
TObjectPtr
<
USubobjectInstancingTestObject
>>
InnerObjectArray
;
92
};
93
94
UCLASS
()
95
class
USubobjectInstancingTestOuterObject
:
public
UObject
96
{
97
GENERATED_BODY
()
98
99
public
:
100
USubobjectInstancingTestOuterObject
(const
FObjectInitializer
&
ObjectInitializer
=
FObjectInitializer
::Get());
101
102
virtual
void
PostInitProperties()
override
;
103
104
UPROPERTY
(Instanced)
105
TObjectPtr
<
UObject
>
SelfRef
;
106
107
UPROPERTY
(Instanced)
108
TObjectPtr
<
USubobjectInstancingTestObject
>
NullObject
;
109
110
UPROPERTY
(Instanced)
111
TObjectPtr
<
USubobjectInstancingTestObject
> InnerObject;
112
113
UPROPERTY
()
114
TObjectPtr
<
USubobjectInstancingTestObject
>
SharedObject
;
115
116
UPROPERTY
()
117
TObjectPtr
<
USubobjectInstancingTestObject
>
ExternalObject
;
118
119
UPROPERTY
(Instanced)
120
TObjectPtr
<
USubobjectInstancingTestObject
>
InternalObject
;
121
122
UPROPERTY
(
Transient
, Instanced)
123
TObjectPtr
<
USubobjectInstancingTestObject
>
TransientInnerObject
;
124
125
UPROPERTY
(Instanced)
126
TObjectPtr
<
USubobjectInstancingTestObject
>
EditTimeInnerObject
;
127
128
UPROPERTY
(Instanced)
129
TObjectPtr
<
USubobjectInstancingTestObject
>
LocalOnlyInnerObject
;
130
131
UPROPERTY
()
132
TObjectPtr
<
USubobjectInstancingDefaultToInstancedTestObject
>
InnerObjectFromType
;
133
134
UPROPERTY
(Instanced)
135
TObjectPtr
<
USubobjectInstancingTestObject
>
InnerObjectUsingNew
;
136
137
UPROPERTY
(Instanced)
138
TObjectPtr
<
USubobjectInstancingTestObject
>
InnerObjectPostInit
;
139
140
UPROPERTY
(Instanced)
141
TArray
<
TObjectPtr
<
USubobjectInstancingTestObject
>>
InnerObjectArray
;
142
143
UPROPERTY
()
144
TArray
<
TObjectPtr
<
USubobjectInstancingDefaultToInstancedTestObject
>>
InnerObjectFromTypeArray
;
145
146
UPROPERTY
(Instanced)
147
TSet<
TObjectPtr
<
USubobjectInstancingTestObject
>>
InnerObjectSet
;
148
149
UPROPERTY
()
150
TSet<
TObjectPtr
<
USubobjectInstancingDefaultToInstancedTestObject
>>
InnerObjectFromTypeSet
;
151
152
UPROPERTY
(Instanced)
153
TMap
<
TObjectPtr
<
USubobjectInstancingTestObject
>,
TObjectPtr
<
USubobjectInstancingTestObject
>>
InnerObjectMap
;
154
155
UPROPERTY
()
156
TMap
<
TObjectPtr
<
USubobjectInstancingDefaultToInstancedTestObject
>,
TObjectPtr
<
USubobjectInstancingDefaultToInstancedTestObject
>>
InnerObjectFromTypeMap
;
157
158
UPROPERTY
()
159
FSubobjectInstancingTestStructType
StructWithInnerObjects
;
160
161
UPROPERTY
(Instanced)
162
TOptional
<
TObjectPtr
<
USubobjectInstancingTestObject
>>
OptionalInnerObject
;
163
164
UPROPERTY
()
165
TOptional
<
TObjectPtr
<
USubobjectInstancingDefaultToInstancedTestObject
>>
OptionalInnerObjectFromType
;
166
167
UPROPERTY
(Instanced)
168
TOptional
<
TArray
<
TObjectPtr
<
USubobjectInstancingTestObject
>>>
OptionalInnerObjectArray
;
169
170
UPROPERTY
(Instanced)
171
TObjectPtr
<
USubobjectInstancingTestDirectlyNestedObject
>
InnerObjectWithDirectlyNestedObject
;
172
173
UPROPERTY
(Instanced)
174
TObjectPtr
<
USubobjectInstancingTestIndirectlyNestedObject
>
InnerObjectWithIndirectlyNestedObject
;
175
};
176
177
UCLASS
()
178
class
USubobjectInstancingTestDerivedOuterObjectWithTypeOverride
:
public
USubobjectInstancingTestOuterObject
179
{
180
GENERATED_BODY
()
181
182
public
:
183
USubobjectInstancingTestDerivedOuterObjectWithTypeOverride
(const
FObjectInitializer
&
ObjectInitializer
);
184
};
185
186
UCLASS
()
187
class
USubobjectInstancingTestDerivedOuterObjectWithDoNotCreateOverride
:
public
USubobjectInstancingTestOuterObject
188
{
189
GENERATED_BODY
()
190
191
public
:
192
USubobjectInstancingTestDerivedOuterObjectWithDoNotCreateOverride
(const
FObjectInitializer
&
ObjectInitializer
);
193
};
194
195
UCLASS
()
196
class
UDynamicSubobjectInstancingTestClass
:
public
UClass
197
{
198
GENERATED_BODY
()
199
200
public
:
201
UDynamicSubobjectInstancingTestClass
();
202
};
203
204
#endif
// WITH_TESTS
Class.h
int32
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition
Platform.h:1125
StaticCastSharedRef
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition
SharedPointer.h:127
EPackageAutoSaveType::Transient
@ Transient
EMovieSceneConditionScope::OwnerObject
@ OwnerObject
UPROPERTY
#define UPROPERTY(...)
UObject definition macros.
Definition
ObjectMacros.h:744
GENERATED_BODY
#define GENERATED_BODY(...)
Definition
ObjectMacros.h:765
UCLASS
#define UCLASS(...)
Definition
ObjectMacros.h:776
USTRUCT
#define USTRUCT(...)
Definition
ObjectMacros.h:746
Object.h
FName
Definition
NameTypes.h:617
FObjectInitializer
Definition
UObjectGlobals.h:1292
TArray
Definition
Array.h:670
TMap
Definition
UnrealString.h.inl:34
UClass
Definition
Class.h:3793
UObject
Definition
Object.h:95
UE
Definition
AdvancedWidgetsModule.cpp:13
TObjectPtr
Definition
ObjectPtr.h:488
TOptional
Definition
Optional.h:131
Engine
Source
Runtime
CoreUObject
Tests
UObject
SubobjectInstancingTest.h
Generated by
1.9.8