Unityに関連する記事です

 以下の内容で実装を進めていきます。

発展8 ーステージデータの作成と運用準備ー
13.ステージデータを作成する



 新しい学習内容は、以下の通りです。

 ・1つのシーンを異なる情報を使って運用する方法



13.ステージデータを作成する

1.設計


 各ステージごとのデータをスクリプタブル・オブジェクトとして作成し、その情報をゲーム内に参照して運用します。
この設計を行うことにより、1つのバトルシーンに、その都度、選択しているステージの情報を元にステージデータを参照して取得し、
ステージの番号にあったステージを用意するようにします。

 前回、メインとなるタイルマップ部分については、MainMap ゲームオブジェクトに MapInfo クラスをアタッチして
ステージ内のエネミーの情報や移動経路などの情報を登録してありますので、これをさらに StageData クラスを作成して、その中で管理するようにします。

 MapInfo クラスがアタッチされているタイルマップで作成されたゲームオブジェクトはプレファブになっていますので、
StageData クラスを元にスクリプタブル・オブジェクトを作成することで、その中にアサインして利用できるようにしていきます。


2.StageData スクリプトを作成する


 各ステージの情報です。
ここにはステージの名称やステージの番号、そして、MapInfo クラスのアタッチされているステージ用のゲームオブジェクトをアサインできるように変数を作成しています。

StageData.cs

<= クリックすると開きます


 スクリプトを作成したらセーブします。


3.StageDataSO スクリプトを作成する


 StageData クラスを List で管理することにより、スクリプタブル・オブジェクトを作成するためのクラスを作成します。


StageDataSO.cs

<= クリックすると開きます


 スクリプトを作成したらセーブします。


4.StageDataSO スクリプトから StageDataSO スクリプタブル・オブジェクトを作成し、設定を行う


 Datas フォルダ内で右クリックをしてメニューを開き、Create => Create StageDataSO を選択してください。
新しくスクリプタブル・オブジェクトが作成されます。名称はそのままで問題ありません。

 Size を 3 に変更して、3種類の StageData を管理できるようにします。

 StageName 変数はステージの名称です。自由に設定してください。

 StageNo 変数はステージの通し番号です。同じ番号が重複しないように、0 から順番に採番してください。

 そのほかの項目も、StageData クラス内のコメントの内容を参考にしながら情報を入力してください。

 MapInfo 変数には、先ほどの手順で MapInfo クラスがアタッチされているステージ用の MainMap ゲームオブジェクトを3種類作成してプレファブにしてありますので、
それぞれを各 MapInfo 変数へドラッグアンドドロップしてアサインしてください。




 以上で設定は完了です。


5.DataBaseManager スクリプトを修正し、StageDataSO スクリプタブル・オブジェクトをゲーム内で利用できるようにする


 DataBaseManager スクリプトが StageDataSO スクリプタブル・オブジェクト の情報を活用できるようにするため、
新しく変数を追加しておきます。


DataBaseManager.cs

<= クリックすると開きます


 スクリプトを修正したらセーブします。


6.DataBaseManager ゲームオブジェクトの設定を行い、StageDataSO スクリプタブル・オブジェクトを登録する


 DataBaseManager ゲームオブジェクトのインスペクターを確認し、新しく StageDataSO 変数が追加されていることを確認します。
他のスクリプタブル・オブジェクトと同じように、Datas フォルダにある StageDataSO スクリプタブル・オブジェクトをドラッグアンドドロップしてアサインしてください。


インスペクター画像


 以上で設定は完了です。


7.GameData スクリプトを修正する


 バトルシーンが開始されるときに設定するステージの情報は、GameData クラスの変数から参照するようにします。
GameData クラスはシングルトンクラスであるので、これはステージの番号を登録したり、参照を容易するためにここで設定しています。


GameData.cs

<= クリックすると開きます


 スクリプトを修正したらセーブを行います。


8.GameData ゲームオブジェクトの設定する


 GameData ゲームオブジェクトのインスペクターを確認し、StageNo 変数が追加されていることを確認してください。

 この番号と、StageData クラスの StageNo 変数とを照合してステージの情報を参照するようにします。
現在、StageData クラスは StageDataSO スクリプタブル・オブジェクト内に3つのデータがあります。
それぞれ StageNo 変数は 0 〜 2 の間で設定されていますので、任意の値を設定してください。

 ここに設定した番号の StageNo 変数の持つ StageData クラスの情報がバトルシーンに利用されることになります。


インスペクター画像



 以上で設定は完了です。



 以上でこの手順は終了です。

 次は 発展9 ーステージ機能の実装− です。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



プログラムの基礎学習

コード練習

技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

3Dトップビューアクション(白猫風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます