LoginSignup
2
4

More than 5 years have passed since last update.

Unreal Engine C++ Codings

Last updated at Posted at 2016-09-03

Unreal Engine プログラミングガイド(日本語)
とりあえずここから初めて動くコードを置こう。

Viewport上に任意のメッセージを表示する。

*.cpp
// GEngineを使用するのに必要。
#include "Engine.h"

    // GEngineが存在しない場合がある
    if (GEngine)
    {
        // キーが-1の場合、上書きされずに常に新メッセージとして表示される(デバッグ向け)
        const int32 AlwaysAddKey = -1;
        // Viewport上にメッセージを表示する
        // キー, 表示時間, 文字色, 表示文字
        GEngine->AddOnScreenDebugMessage(AlwaysAddKey, 5.0f, FColor::Yellow, "MESSAGE");
    }

Output Log対象のメッセージ表示。

*.cpp
    UE_LOG(LogTemp, Log,        TEXT("output : %s"), L"Log Message");
    UE_LOG(LogTemp, Display,    TEXT("output : %s"), L"Display Message");
    UE_LOG(LogTemp, Warning,    TEXT("output : %s"), L"Warning Message");
    UE_LOG(LogTemp, Error,      TEXT("output : %s"), L"Error Message");
結果

キャプチャ.PNG

変数の公開・編集可能範囲設定(UPROPERTY)

*.cpp
    UPROPERTY(EditAnywhere)
    int32 inputVal1;
    UPROPERTY(EditAnywhere, Category = "User Input")
    int32 inputVal2;

BlueprintReadWrite等を指定する場合はpublic:後に書く必要がある。
さもなくばOtherCompilationError (5)が発生する。

初期値はcpp側のクラスと同名のコンストラクタで設定できる。

UPROPERTY/UFUNCTION等はpublic:後・コンストラクタ(初期化)前に呼び出す必要がある?

*.h
public: 

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Damage")
    int32 TotalDamage;

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Damage")
    float DamageTimeInSeconds;

    UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Transient, Category = "Damage")
    float DamagePerSecond;

    UFUNCTION(BlueprintCallable, Category = "Damage")
    void CalculateValues();

    AEditableSpotLightCpp();
2
4
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
2
4