|
1 | | ---- |
2 | | -treeTitle: Game Development - Engines - Unreal C++ |
3 | | ---- |
4 | | - |
5 | | - |
6 | 1 | --- |
7 | 2 | seoTitle: C++ for Unreal Engine – Complete UE5 C++ Scripting Reference |
8 | 3 | description: "Complete C++ for Unreal Engine 5 reference covering UObject system, UPROPERTY/UFUNCTION macros, gameplay framework, GAS, networking, async, memory management, and advanced patterns." |
9 | 4 | keywords: "C++ Unreal Engine, UE5 C++, UObject, UPROPERTY, UFUNCTION, UCLASS, Unreal C++ scripting, gameplay framework, GAS, networking replication, Unreal macros, Unreal memory, TArray, TMap, cpp unreal guide, VR-Rathod, Code-Note, code note vr, vr book" |
10 | 5 | displayTitle: C++ for Unreal Engine |
| 6 | +treeTitle: Game Development - Engines - Unreal C++ |
11 | 7 | --- |
12 | 8 |
|
13 | 9 | - # Introduction |
14 | 10 | collapsed:: true |
15 | 11 | - This page covers **Unreal Engine-specific C++ patterns** — the UObject system, reflection macros, engine APIs, and idioms that differ from standard C++. |
16 | 12 | - For the full C++ language reference (STL, templates, smart pointers, move semantics, etc.) see [[Cpp]]. |
17 | 13 | - For the full Unreal Engine reference (editor, Blueprints, Nanite, Lumen, AI, networking, etc.) see [[Unreal Engine]]. |
| 14 | +- |
18 | 15 | - # UObject System & Reflection |
19 | 16 | collapsed:: true |
20 | 17 | - ## Why UObject? |
@@ -251,6 +248,7 @@ displayTitle: C++ for Unreal Engine |
251 | 248 | // Get string name |
252 | 249 | FString StateName = UEnum::GetValueAsString(State); // "ECharacterState::Idle" |
253 | 250 | ``` |
| 251 | +- |
254 | 252 | - # Unreal Container Types |
255 | 253 | collapsed:: true |
256 | 254 | - ## TArray — Dynamic Array |
@@ -410,6 +408,7 @@ displayTitle: C++ for Unreal Engine |
410 | 408 | TUniquePtr<FMyData> Unique = MakeUnique<FMyData>(); |
411 | 409 | TUniquePtr<FMyData> Moved = MoveTemp(Unique); // transfer ownership |
412 | 410 | ``` |
| 411 | +- |
413 | 412 | - # Unreal String Types |
414 | 413 | collapsed:: true |
415 | 414 | - ## FString, FName, FText |
@@ -465,6 +464,7 @@ displayTitle: C++ for Unreal Engine |
465 | 464 | // FName — identifiers, asset/bone/socket names (fast compare) |
466 | 465 | // FText — player-facing text (localization support) |
467 | 466 | ``` |
| 467 | +- |
468 | 468 | - # Memory Management & Garbage Collection |
469 | 469 | collapsed:: true |
470 | 470 | - ## GC Rules |
@@ -532,6 +532,7 @@ displayTitle: C++ for Unreal Engine |
532 | 532 | TSoftClassPtr<AMyActor> SoftClass; |
533 | 533 | TSubclassOf<AMyActor> LoadedClass = SoftClass.LoadSynchronous(); |
534 | 534 | ``` |
| 535 | +- |
535 | 536 | - # Actor & Component Lifecycle |
536 | 537 | collapsed:: true |
537 | 538 | - ## Full Lifecycle |
@@ -617,6 +618,7 @@ displayTitle: C++ for Unreal Engine |
617 | 618 | AddTickPrerequisiteActor(OtherActor); |
618 | 619 | AddTickPrerequisiteComponent(OtherComp); |
619 | 620 | ``` |
| 621 | +- |
620 | 622 | - # Delegates & Events |
621 | 623 | collapsed:: true |
622 | 624 | - ## Delegate Types |
@@ -675,6 +677,7 @@ displayTitle: C++ for Unreal Engine |
675 | 677 | OnDeath.RemoveDynamic(this, &AMyActor::HandleDeath); |
676 | 678 | OnDeath.Broadcast(Killer); |
677 | 679 | ``` |
| 680 | +- |
678 | 681 | - # Timers |
679 | 682 | collapsed:: true |
680 | 683 | - ## FTimerManager |
@@ -735,6 +738,7 @@ displayTitle: C++ for Unreal Engine |
735 | 738 | GetWorldTimerManager().PauseTimer(SpawnTimer); |
736 | 739 | GetWorldTimerManager().UnPauseTimer(SpawnTimer); |
737 | 740 | ``` |
| 741 | +- |
738 | 742 | - # Async & Latent Actions |
739 | 743 | collapsed:: true |
740 | 744 | - ## Async Tasks |
@@ -814,6 +818,7 @@ displayTitle: C++ for Unreal Engine |
814 | 818 | } |
815 | 819 | } |
816 | 820 | ``` |
| 821 | +- |
817 | 822 | - # Interfaces |
818 | 823 | collapsed:: true |
819 | 824 | - ## UInterface |
@@ -869,6 +874,7 @@ displayTitle: C++ for Unreal Engine |
869 | 874 | } |
870 | 875 | } |
871 | 876 | ``` |
| 877 | +- |
872 | 878 | - # Subsystems |
873 | 879 | collapsed:: true |
874 | 880 | - ## USubsystem Types |
@@ -917,6 +923,7 @@ displayTitle: C++ for Unreal Engine |
917 | 923 | // ULocalPlayerSubsystem — one per local player |
918 | 924 | // UEngineSubsystem — one for the entire engine lifetime |
919 | 925 | ``` |
| 926 | +- |
920 | 927 | - # Networking — Replication In Depth |
921 | 928 | collapsed:: true |
922 | 929 | - ## Replication Setup |
@@ -993,6 +1000,7 @@ displayTitle: C++ for Unreal Engine |
993 | 1000 | UGameplayStatics::PlaySoundAtLocation(GetWorld(), FireSound, Loc); |
994 | 1001 | } |
995 | 1002 | ``` |
| 1003 | +- |
996 | 1004 | - # Asset Management |
997 | 1005 | collapsed:: true |
998 | 1006 | - ## Soft References & Async Loading |
@@ -1050,6 +1058,7 @@ displayTitle: C++ for Unreal Engine |
1050 | 1058 | TSoftObjectPtr<UTexture2D> Icon; |
1051 | 1059 | }; |
1052 | 1060 | ``` |
| 1061 | +- |
1053 | 1062 | - # Common Unreal C++ Patterns |
1054 | 1063 | collapsed:: true |
1055 | 1064 | - ## Component Pattern |
@@ -1246,6 +1255,7 @@ displayTitle: C++ for Unreal Engine |
1246 | 1255 | if (CurrentState) CurrentState->Update(this, DeltaTime); |
1247 | 1256 | } |
1248 | 1257 | ``` |
| 1258 | +- |
1249 | 1259 | - # Debugging & Logging |
1250 | 1260 | collapsed:: true |
1251 | 1261 | - ## UE_LOG & Debug Helpers |
@@ -1289,6 +1299,7 @@ displayTitle: C++ for Unreal Engine |
1289 | 1299 | ensureMsgf(Value > 0, TEXT("Bad value: %f"), Value); |
1290 | 1300 | verify(DoSomething()); // like check but evaluates in shipping |
1291 | 1301 | ``` |
| 1302 | +- |
1292 | 1303 | - # More Learn |
1293 | 1304 | - [[Cpp]] - Full C++ language reference (STL, templates, smart pointers, move semantics) |
1294 | 1305 | - [[Unreal Engine]] - Full Unreal Engine reference (editor, Blueprints, Nanite, Lumen, GAS, networking) |
|
0 commit comments