0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【UE5/C++】A とか U とかクラス名の接頭辞の簡単まとめ

Last updated at Posted at 2024-11-16

はじめに

UEC++ を触っていると A だの U だのようわからん接頭辞が出てきたので、調べてみたところ意外とあったのでちょっとだけまとめてみる。

A 接頭辞

AAActor クラスに使用される。AActor クラスはゲーム内のオブジェクトを表し、ワールドに配置することができる。これらのオブジェクトはコンポーネントを持ち、移動、回転、スケーリングが可能。ワールドに存在し、動きがあるものは大体これな気がしている。

UCLASS()
class MYGAME_API AMyActor : public AActor
{
    GENERATED_BODY()

public:
    AMyActor();
};

U 接頭辞

UUObject クラスに使用される。UObject クラスはより汎用的なオブジェクトで、ゲームワールド内に存在しない。ユーティリティクラスやデータコンテナなどに使用される。UObject クラスをそのまま使うことは少ない気がしているが、継承している UBoxComponent などで使用する機会が多そう。

UCLASS()
class MYGAME_API UMyObject : public UObject
{
    GENERATED_BODY()

public:
    UMyObject();
};

F 接頭辞

F は構造体(Struct)に使用される。構造体はデータの集まりを表し、軽量で効率的なデータ管理が可能。なぜ S ではないのか不思議に思うが、理由がちゃんとあるらしい (参考↓)

USTRUCT()
struct FMyStruct
{
    GENERATED_BODY()

    int32 MyValue;
};

I 接頭辞

I はインターフェース(Interface)に使用される。インターフェースはクラスが実装すべき関数のセットを定義するもの。

UINTERFACE()
class UMyInterface : public UInterface
{
    GENERATED_BODY()
};

class IMyInterface
{
    GENERATED_BODY()

public:
    virtual void MyFunction() = 0;
};

S 接頭辞

S はスレートウィジェット(Slate Widget)に使用される。スレートは Unreal Engine の UI フレームワークのこと。

class SMyWidget : public SCompoundWidget
{
    SLATE_BEGIN_ARGS(SMyWidget) {}
    SLATE_END_ARGS()

    void Construct(const FArguments& InArgs);
};

T 接頭辞

T はテンプレートクラス(Template Class)に使用される。テンプレートクラスは型に依存しない汎用的なクラスを作成するために使用される。

template<typename T>
class TMyTemplateClass
{
public:
    T MyValue;
};

参考

変数にもある程度規則があるみたいですね

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?