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");
結果
変数の公開・編集可能範囲設定(UPROPERTY)
- UE4 よく使うUPROPERTYメモ
- [プロパティ指定子] (https://docs.unrealengine.com/latest/JPN/Programming/UnrealArchitecture/Reference/Properties/Specifiers/index.html)(公)
*.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();