前提・実現したいこと
【質問内容】
Unityでゲーム作成について勉強中です。"継承"に関して質問があります。
オリジナル型のスクリプトである<Player>を継承させて新たに<NewPlayer>という型のスクリプトを作製した場合、
<NewPlayer>をアタッチさせたオブジェクトから、継承元である<Player>型でスクリプトを参照したりすることは可能でしょうか?
【背景】
・操作できるゲームオブジェクト(プレイヤー)の基本的なクラスを作製し、それを継承して多種のプレイヤーオブジェクトを作製しようと考えています。
・また、ゲームの進行を管理するようなスクリプトを用意し、その管理スクリプトでオブジェクト個々の<Player>型のスクリプトを参照してデータを読み込んだり書き換えたりする予定です。
上記2点を考えた時、<Player>型から派生した他のクラスを用意した際に、管理スクリプトがPlayerの情報を参照するときに<Player>型として扱うことができないならどう対処するべきかと勘案しています。
該当のソースコード
(例:管理スクリプト)
C#
1 // ↓ 最初にマップ上のプレイヤ情報を取得したい。 2 GameObject[] playerGameObjects = GameObject.FindGameObjectsWithTag("Player"); 3 Player[] playerList = new Player[playerGameObjects.Length];// ← オブジェクトにアタッチされたスクリプトは、<Player>型を継承した派生クラスが混在している。 4 5 for (int i = 0; i < playerGameObjects.Length; i++) 6 { 7 playerList[i] = playerGameObjects[i].GetComponent<Player>(); 8 }
あなたの回答
tips
プレビュー