- Unreal Engine 4 Scripting with C++ Cookbook
- William Sherif Stephen Whittle
- 363字
- 2021-07-08 10:50:49
Creating a USTRUCT
You may want to construct a Blueprints editable property in UE4 that contains multiple members. The FColoredTexture
struct that we will create in this chapter will allow you to group together a texture and its color inside the same structure for inclusion and specification in any other UObject
derivative, Blueprintable
class:

The FColoredTexture
structure does have the visual within Blueprints appearance as shown in the figure above.
This is for good organization and convenience of your other UCLASS
UPROPERTIES()
. You may want to construct a C++ structure in your game using the keyword struct
.
Getting ready
A UObject
is the base class of all UE4 class objects, while an FStruct
is just any plain old C++ style struct. All objects that use the automatic memory management features within the engine must derive from this class.
Tip
If you' recall from the C++ language, the only difference between a C++ class and a C++ struct is that C++ classes have default private
members, while structs default to public
members. In languages like C#, this isn't the case. In C#, a struct is value-typed, while a class is reference-typed.
How to do it...
We'll create a structure FColoredTexture
in C++ code to contain a texture and a modulating color:
- Create a file
ColoredTexture.h
in your project folder (notFColoredTexture
). ColoredTexture.h
contains the following code:#pragma once #include "Chapter2.h" #include "ColoredTexture.generated.h" USTRUCT() struct CHAPTER2_API FColoredTexture { GENERATED_USTRUCT_BODY() public: UPROPERTY( EditAnywhere, BlueprintReadWrite, Category = HUD ) UTexture* Texture; UPROPERTY( EditAnywhere, BlueprintReadWrite, Category = HUD ) FLinearColor Color; };
- Use
ColoredTexture.h
as aUPROPERTY()
in some BlueprintableUCLASS()
, using aUPROPERTY()
declaration like this:UPROPERTY( EditAnywhere, BlueprintReadWrite, Category = HUD ) FColoredTexture* Texture;
How it works...
The UPROPERTY()
specified for the FColoredTexture
will show up in the editor as editable fields when included as UPROPERTY()
fields inside another class, as shown in step 3.
There's more…
The main reason for making a struct a USTRUCT()
instead of just a plain old C++ struct is to interface with the UE4 Engine functionality. You can use plain C++ code (without creating USTRUCT()
objects) for quick small structures that don't ask the engine to use them directly.
- Python從小白到大牛
- C/C++算法從菜鳥到達人
- Java虛擬機字節碼:從入門到實戰
- Swift 3 New Features
- Cassandra Data Modeling and Analysis
- Learning Concurrent Programming in Scala
- Learning jQuery(Fourth Edition)
- 編寫高質量代碼:改善Objective-C程序的61個建議
- 從零開始學Python網絡爬蟲
- Learning iOS Security
- RocketMQ實戰與原理解析
- Python大規模機器學習
- MySQL核心技術與最佳實踐
- Microsoft Windows Identity Foundation Cookbook
- R High Performance Programming