設定
C++
Unreal Engine (UE) において C++ でコードを記述する場合、Windows には Visual Studio をダウンロードし、macOS には Xcode をインストールします。 新規の C++ プロジェクトを作成する場合、Unreal Engine はユーザーに代わって自動的に Visual Studio プロジェクト ファイルを作成します。
UE プロジェクトから Visual Studio にアクセスする方法は、以下の 2 つです。
コンテンツ ブラウザで C++ クラスをダブルクリックし、Visual Studio で開きます。
メイン メニューから [ツール] > [Visual Studio を開く] を選択します。 このオプションは、プロジェクトに C++ クラスが 1 つ以上含まれる場合にのみ表示されます。
UE における重要な違い:Visual Studio プロジェクト ファイルはときどき手動でリフレッシュする必要があります (新バージョンの UE をダウンロードした後や、ディスク上のソース ファイルの場所を手動で変更したときなど)。 これには以下の 2 つの方法があります。
UE のメイン メニューから、[ツール] > [Visual Studio プロジェクトのリフレッシュ] を選択します。
プロジェクトのディレクトリで .uproject ファイルを右クリックして、 [Visual Studio プロジェクト ファイルの生成] を選択します。
詳細は、「開発設定」を参照してください。
Blueprint (ブループリント)
ブループリント スクリプティングを使用するには、UE だけで十分です。 必要な機能が全て Unreal Editor に組み込まれています。
イベント関数を記述する
MonoBehaviors の使用経験があれば、Start、Update、OnDestroy などのメソッドには慣れているでしょう。 以下に、Unity での動作と、UE のアクタやコンポーネントでこれに相当する動作との比較を挙げます。
Unity ではこのようなシンプルなコンポーネントになるでしょう。
public class MyComponent : MonoBehaviour
{
void Start() {}
void OnDestroy() {}
void Update() {}
}AActor
UE では新規のコンポーネント型をコーディングするだけでなく、アクタ自体に対してコードを記述できます。
また、アクタには、Unity の Start、OnDestroy、Update 関数に似たメソッドがあります。
C++
UCLASS()
class AMyActor : public AActor
{
GENERATED_BODY()
// Called at start of game.
void BeginPlay();
// Called when destroyed.
void EndPlay(const EEndPlayReason::Type EndPlayReason);
Blueprint (ブループリント)
UActorComponent
UE のコンポーネントは、概念的には MonoBehaviour に似ていますが、異なるメソッドが含まれています。
C++
UCLASS()
class UMyComponent : public UActorComponent
{
GENERATED_BODY()
// Called after the owning Actor was created
void InitializeComponent();
// Called when the component or the owning Actor is being destroyed
void UninitializeComponent();
Blueprint (ブループリント)
追記
UE では、子クラスのメソッド内で、親クラスのメソッドを明示的に呼び出す必要があります。 たとえば、Unity の C# では
base.Update()ですが、UE の C++ ではアクタにSuper::Tick()を、コンポーネントにSuper::TickComponent()を使います。UE C++ では、クラスは
UObjectサブクラスでUを、アクタ サブクラスでAを使用するなど、さまざまなプレフィックスを使用します。 詳細は、「コーディング標準」を参照してください。ゲームプレイのコーディングの例は、「Unreal Engine でゲームプレイを作成する」を参照してください。