【Unity】クラスの抽象サンプル
Unityでの抽象クラスの実装についてみていきましょう
基本のコード
Car sportCar = new SportCar();
sportCar.Run();
sportCar.Stop();
abstract public class Car
{
public virtual void Run()
{
Debug.Log("走るよ");
}
public void Stop()
{
Debug.Log("止まるよ");
}
}
public class SportsCar : Car
{
public override void Run()
{
Debug.Log("超早く");
base.Run();
}
}
Unityでのサンプル
このコードサンプルでは、Car
クラスとその派生クラスであるSportsCar
クラスを使って、車が「走る」と「止まる」動作をする仕組みをUnityプロジェクトで実装する方法について説明します。ここでの目的は、オブジェクト指向プログラミングの継承と多態性の基本概念を理解し、Unityでの応用を示すことです。
ステップバイステップガイド
新しいC#スクリプトの作成
UnityエディタでCar
とSportsCar
という2つのC#スクリプトを作成します。ここでは、抽象クラスCar
とその具象実装であるSportsCar
を定義します。
Car
スクリプトの編集
まず、Car
クラスを以下のように定義します。このクラスをダブルクリックしてコードエディタで開き、以下のコードを追加または編集します。
using UnityEngine;
abstract public class Car
{
public virtual void Run()
{
Debug.Log("走るよ");
}
public void Stop()
{
Debug.Log("止まるよ");
}
}
SportsCar
スクリプトの編集
次に、SportsCar
クラスを定義します。このクラスも開き、以下のように編集します。
using UnityEngine;
public class SportsCar : Car
{
public override void Run()
{
Debug.Log("超早く");
base.Run(); // 基底クラスのRunメソッドを呼び出す
}
}
動作テスト用のスクリプトを作成
動作をテストするための新しいスクリプト、例えばTestDrive
を作成し、以下のコードを含めます。
using UnityEngine;
public class TestDrive : MonoBehaviour
{
void Start()
{
Car sportCar = new SportsCar();
sportCar.Run();
sportCar.Stop();
}
}
Unityエディタに戻る
Unityエディタに戻り、TestDrive
スクリプトをゲームオブジェクトにアタッチします。これにより、Start
メソッドがゲームの開始時に自動的に呼び出されます。
プレイしてテスト
Unityエディタのプレイボタンをクリックしてゲームを開始し、コンソールウィンドウでログが期待通りに表示されるかを確認します。「超早く」の後に「走るよ」、そして「止まるよ」と表示されるはずです。
このサンプルでは、抽象クラスを使用して共通のインターフェースを定義し、具象クラスでその実装をオーバーライドすることによって、オブジェクト指向の継承と多態性を示しています。Unityでの応用としては、さまざまな種類のオブジェクトに共通の動作を定義し、その挙動を特定のサブクラスでカスタマイズする際にこのようなアプローチが役立ちます。
ディスカッション
コメント一覧
まだ、コメントがありません