- Unreal Engine 4 Scripting with C++ Cookbook
- William Sherif Stephen Whittle
- 335字
- 2021-07-08 10:50:46
Chapter 2. Creating Classes
This chapter focuses on how to create C++ classes and structs that integrate well with the UE4 Blueprints editor. These classes are graduated versions of the regular C++ classes, and are called UCLASS
.
Tip
A UCLASS
is just a C++ class with a whole lot of UE4 macro decoration on top. The macros generate additional C++ header code that enables integration with the UE4 Editor itself.
Using UCLASS
is a great practice. The UCLASS
macro, if configured correctly, can possibly make your UCLASS
Blueprintable. The advantage of making your UCLASS
Blueprintable is that it can enable your custom C++ objects to have Blueprints visually editable properties (UPROPERTY
) with handy UI widgets such as text fields, sliders, and model selection boxes. You can also have functions (UFUNCTION
) that are callable from within a Blueprints diagram. Both of these are shown in the following screenshots:

On the left, two UPROPERTY
decorated class members (a UTexture
reference and an FColor
) show up for editing in a C++ class's Blueprint. On the right, a C++ function GetName
marked as BlueprintCallable
UFUNCTION
shows up as callable from a Blueprints diagram.
Note
Code generated by the UCLASS
macro will be located in a ClassName.generated.h
file, which will be the last #include
required in your UCLASS
header file, ClassName.h
.
The following are the topics that we will cover in this chapter:
- Making a
UCLASS
– deriving fromUObject
- Creating a user-editable
UPROPERTY
- Accessing a
UPROPERTY
from Blueprints - Specifying a
UCLASS
as the type of aUPROPERTY
- Creating a Blueprint from your custom
UCLASS
- Instantiating
UObject
-derived classes (ConstructObject <>
andNewObject <>
) - Destroying
UObject
-derived classes - Creating a
USTRUCT
- Creating a
UENUM()
- Creating a
UFUNCTION
Tip
You will notice that the sample objects we create in this class, even when Blueprintable, will not be placed in levels. That is because in order to be placed in levels, your C++ class must derive from the Actor
base class, or below it. See Chapter 4, Actors and Components for further details.
- Instant Testing with CasperJS
- JavaScript高效圖形編程
- C#完全自學(xué)教程
- 編寫整潔的Python代碼(第2版)
- Internet of Things with Intel Galileo
- Mastering Python Networking
- Python算法從菜鳥到達人
- Learning ArcGIS for Desktop
- 進入IT企業(yè)必讀的324個Java面試題
- SEO教程:搜索引擎優(yōu)化入門與進階(第3版)
- Access數(shù)據(jù)庫應(yīng)用教程(2010版)
- 實驗編程:PsychoPy從入門到精通
- 啊哈C語言!:邏輯的挑戰(zhàn)(修訂版)
- C/C++代碼調(diào)試的藝術(shù)
- Google Maps JavaScript API Cookbook