UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SimpleConstructionScript.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3
4#pragma once
5
6#include "CoreMinimal.h"
8#include "UObject/Object.h"
9#include "Misc/Guid.h"
10#include "GameFramework/Actor.h"
11#include "SimpleConstructionScript.generated.h"
12
13class USCS_Node;
15
16UCLASS(MinimalAPI)
18{
20
21
22 ENGINE_API static const FString ComponentTemplateNameSuffix;
23
24 //~ Begin UObject Interface
25 virtual void Serialize(FArchive& Ar) override;
26 virtual void PostLoad() override;
27 //~ End UObject Interface
28
29 void PreloadChain();
30
32 ENGINE_API void FixupRootNodeParentReferences();
33
35 static void RegisterInstancedComponent(UActorComponent* Component);
36
46 void ExecuteScriptOnActor(AActor* Actor, const TInlineComponentArray<USceneComponent*>& NativeSceneComponents, const FTransform& RootTransform, const FRotationConversionCache* RootRelativeRotationCache, bool bIsDefaultTransform, ESpawnActorScaleMethod TransformScaleMethod = ESpawnActorScaleMethod::OverrideRootScale);
47
49 ENGINE_API void CreateNameToSCSNodeMap();
50
52 ENGINE_API void RemoveNameToSCSNodeMap();
53
54#if WITH_EDITOR
56 ENGINE_API class UBlueprint* GetBlueprint() const;
57
63 ENGINE_API USceneComponent* GetSceneRootComponentTemplate(bool bShouldUseDefaultRoot = false, USCS_Node** OutSCSNode = nullptr) const;
64
67#endif
68
70 ENGINE_API class UClass* GetOwnerClass() const;
71
73 ENGINE_API class UClass* GetParentClass() const;
74
75#if WITH_EDITOR
77 ENGINE_API const TArray<USCS_Node*>& GetAllNodes() const;
78#else
79 const TArray<USCS_Node*>& GetAllNodes() const { return AllNodes; }
80#endif
81
83 const TArray<USCS_Node*>& GetRootNodes() const { return RootNodes; }
84
86 const class USCS_Node* GetDefaultSceneRootNode() const { return DefaultSceneRootNode; }
87
88 class USCS_Node* GetDefaultSceneRootNode() { return DefaultSceneRootNode; }
89
91 ENGINE_API void AddNode(USCS_Node* Node);
92
98 ENGINE_API void RemoveNode(USCS_Node* Node, bool bValidateSceneRootNodes = true);
99
101 ENGINE_API void RemoveNodeAndPromoteChildren(USCS_Node* Node);
102
104 ENGINE_API USCS_Node* FindParentNode(USCS_Node* InNode) const;
105
107 ENGINE_API USCS_Node* FindSCSNode(const FName InName) const;
108
110 ENGINE_API USCS_Node* FindSCSNodeByGuid(const FGuid Guid) const;
111
113 ENGINE_API void ValidateSceneRootNodes();
114
115#if WITH_EDITOR
117 virtual EDataValidationResult IsDataValid(class FDataValidationContext& Context) const override;
118#endif // WITH_EDITOR
119
120 FStaticMeshComponentBulkReregisterContext* GetReregisterContext() const { return ReregisterContext; }
121
122private:
124 UPROPERTY()
126
128 UPROPERTY()
130
132 UPROPERTY()
133 TObjectPtr<class USCS_Node> DefaultSceneRootNode;
134
135#if WITH_EDITORONLY_DATA
137 UPROPERTY()
139
141 UPROPERTY()
143#endif
144
146 int32 FindPromotableChildNodeIndex(USCS_Node* InParentNode) const;
147
153 void FixupSceneNodeHierarchy();
154
155#if WITH_EDITOR
158
161
162public:
165
168
171
174
177
180
183
186
189 {
191 }
192
195 {
197 }
198
201 {
202 return EditorActorInstancePtr.Get();
203 }
204
205private:
208
211#endif
212
214 int32 NameToSCSNodeMapRefCount;
215
217 TMap<FName, USCS_Node*> NameToSCSNodeMap;
218
222
223 friend struct FSCSAllNodesHelper;
224};
225
228{
229private:
232
233 friend class USCS_Node;
234};
ESpawnActorScaleMethod
Definition Actor.h:85
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
bool SaveToTransactionBuffer(UObject *Object, bool bMarkDirty)
Definition UObjectGlobals.cpp:3361
EDataValidationResult
Definition UObjectGlobals.h:4225
Definition Actor.h:257
Definition Archive.h:1208
Definition DataValidation.h:40
Definition NameTypes.h:617
Definition StaticMeshResources.h:1003
Definition Array.h:670
Definition Actor.h:203
Definition UnrealString.h.inl:34
Definition ActorComponent.h:152
Definition Blueprint.h:403
Definition Class.h:3793
COREUOBJECT_API UClass * GetOwnerClass() const
Definition Class.cpp:212
Definition Object.h:95
Definition SCS_Node.h:21
Definition SimpleConstructionScript.h:18
Definition Guid.h:109
Definition EngineTypes.h:1955
Definition SimpleConstructionScript.h:228
Definition ObjectPtr.h:488
Definition WeakObjectPtrTemplates.h:25