Unityに関連する記事です

 複数の防衛拠点を用意した場合の実装例です。2回の手順に分けて実装を行っていきます。
この手順では、複数の防衛拠点を生成する方法や、一本化した耐久力ゲージの減少処理などを実装して完成させます。

<実装動画>
動画ファイルへのリンク



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

発展21 ー複数の防衛拠点の作成◆
31.複数のスクリプトを修正して、複数の防衛拠点の作成機能を実装する



31.複数のスクリプトを修正して、複数の防衛拠点の作成機能を実装する

1.設計


 耐久力の値と耐久力ゲージ、そして耐久力ゲージを制御する処理の実装が前回の手順で完成しています。
この手順では、残りの制御処理の実装を行います。

 1.DefenseBase スクリプトを修正して、耐久力の値と耐久力ゲージの減少関連の処理の修正を行う
     => 現在のままでは、DefenseBase スクリプト内にある耐久力の値を個別で減少させてしまうため

 2.MapInfo スクリプトを修正して、複数の防衛拠点の生成地点を登録できるように修正を行う
     => 防衛拠点を生成するための位置情報を配列変数に修正し、複数の防衛拠点の生成地点となる位置情報を登録できるようにする

 3.MapInfo スクリプトがアタッチされている MainMap ゲームオブジェクトのプレファブを修正する
     => 複数の防衛拠点用の地点情報を作成する

 4.GameManager スクリプトを修正して、MainMap ゲームオブジェクトを生成後、
    MapInfo スクリプトの防衛拠点の地点情報を利用して複数の防衛拠点を生成し、それぞれの設定を行うようにする

 以上の処理を順番に実装していきます。どのような処理が必要になるか、全体像をイメージしながら実装していくようにしてください。
自分で処理のイメージが沸くようであれば、そちらの処理を実装してから、見直しとして教材を利用してください。


2.DefenseBase スクリプトを修正する


 DefenseBase スクリプトを修正して、耐久力の値と耐久力ゲージの減少関連の処理の修正を行います。
現在のままでは、DefenseBase スクリプト内にある耐久力の値を個別で減少させてしまうため、それらの処理を一本化できるように修正します。

 自作されている場合には、処理が異なりますので、自分のスクリプトの内容と照らし合わせて必要な修正を行ってください


DefenseBase.cs

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


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


3.MapInfo スクリプトを修正する


 MapInfo スクリプトを修正して、複数の防衛拠点の生成地点を登録できるように修正を行います。
現在は1つしか登録できない防衛拠点の生成地点の情報を配列変数に修正し、複数の防衛拠点の生成地点となる位置情報を登録できるようにします。

 また、その複数の地点の情報を外部のクラスに提供するためのメソッドを新しく作成しておきます。


MapInfo.cs

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


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


4.プレファブの MainMap ゲームオブジェクトの設定を行う


 MapInfo スクリプトがアタッチされている MainMap ゲームオブジェクトのプレファブを修正し、
複数の防衛拠点用の地点情報を作成して、先ほど MapInfo スクリプトに追加した配列変数に登録して情報を利用できるようにします。

 Prefabs フォルダ内にある、複数の防衛拠点を作成したい MainMap ゲームオブジェクトを選択し、インスペクターから Open Prefab を選択します。

 MainMap ゲームオブジェクト内にある DefenseBaseTran ゲームオブジェクトを複製し、防衛拠点を配置したい地点へ設定します。
この数だけ複数の防衛拠点が作成されることになります。

 DefenseBaseTran ゲームオブジェクトを複数作成したら、インスペクター内の MapInfo スクリプトを確認します。
新しい配列変数である DefenseBaseTrans 変数が作成されていますので、こちらの Size を作成した DefenseBaseTran ゲームオブジェクトの数に合わせて設定します。

 Size の数分の Element が作成されますので、そちらに、DefenseBaseTran ゲームオブジェクトを順番にアサインしてください。
元からあった DefenseBaseTran 変数は利用しませんので、こちらは None にしてください。


MainMap ゲームオブジェクトの構成(参考)



インスペクター画像(参考)



 この手順を、複数の防衛拠点を設定したい MainMap ゲームオブジェクトで繰り返して設定してください。


5.GameManager スクリプトを修正する


 最後に GameManager スクリプトを修正して、MainMap ゲームオブジェクトを生成後、
MapInfo スクリプトの防衛拠点の地点情報を利用して複数の防衛拠点を生成し、それぞれの設定を行うように Start メソッドや、SetUpStageData メソッドの処理を修正します。

 また、複数の防衛拠点の情報を管理するための変数の追加や、JudgeGameClear メソッドに防衛拠点の耐久力が 0 になった場合には
クリアの条件を満たしていてもクリアにはしない処理を実装します。


GameManager.cs


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


6.ゲームを実行して動作を確認する


 すべての処理の見直しを行い、処理がどのような制御によって動いているかを理解した上で、ゲームを実行してデバッグを行ってください
処理の流れが理解できていないと、エラーが発生した場合の修正箇所の特定が難しくなります。問題点がどこにあるか、切り分けていくのも大変になります。

 自分で書いた処理を理解し、自分の技術・知識としていってください。


<実装動画>
動画ファイルへのリンク



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

 次は 学習の振り返り です。

コメントをかく


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

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

Menu



技術/知識(実装例)

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

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

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

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

レースゲーム(抜粋)

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

3Dレールガンシューティング(応用編)

3D脱出ゲーム(抜粋)

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

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

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

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

VideoPlayer イベント連動の実装例

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

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

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

private



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

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