Unityに関連する記事です

 キャラ配置用のポップアップ内に生成する、キャラのボタン用のゲームオブジェクトを作成します。

 1つのボタン型のゲームオブジェクトを作成し、そちらに異なるふるまいをさせることで、1つのゲームオブジェクトから異なって見えるゲームオブジェクトを作成します。
下記のヒエラルキー画像を見ていただくとわかりますが、Content ゲームオブジェクトの子オブジェクトとして5つのボタンのゲームオブジェクトがあります。
これらはすべて同じゲームオブジェクトですが、ゲーム画面では異なるボタンのようにふるまっています。

 こちらの処理を実装するために、まずはボタンのゲームオブジェクトと制御用のスクリプトの作成を行います。


ヒエラルキー画像



目標画面



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

手順20 ーキャラ選択用のボタン型ゲームオブジェクトの作成ー
35.キャラ選択用のボタン型ゲームオブジェクトとして SelectCharaDetail を作成する
36.SelectCharaDetail スクリプトを作成する



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

 ・振る舞いを変える前提のゲームオブジェクトのプレファブの作成



35.キャラ選択用のボタン型ゲームオブジェクトとして SelectCharaDetail を作成する

1.設計


 ポップアップの中には配置可能なキャラをボタン表示して、選択できる状態にします。
このボタンとなるゲームオブジェクトの作成を行っていきます。

 この手順で作成するボタンは1つだけです。
このボタンに、異なる情報を与えることにより、1つのゲームオブジェクトを異なるゲームオブジェクトのように振る舞いを変更する前提で設計を行います。

 具体的には、複数のキャラのボタンが必要になる際に、そのキャラの分だけゲームオブジェクトを作成しておくのではなく、
1つのゲームオブジェクトの振る舞いを変えることによって、異なるボタンとすることができます。

 これは、ボタンとして同じ機能を有するゲームオブジェクトを複数個作成するという手間を省くだけではなく、
キャラの情報が増えても、その情報を反映することによって自動的に処理を行えるようにもすることが出来ます。

<振る舞いの変更を利用しない場合の考え方>
 ・キャラ1のボタンのゲームオブジェクト
 ・キャラ2のボタンのゲームオブジェクト
 ・キャラ3のボタンのゲームオブジェクト
    ↓
  問題点 .ャラが増えるたびに、同じ構成のゲームオブジェクトを作り足す必要がある
      ⊇だ気必要な場合、それぞれのゲームオブジェクトに1つずつ修正を行う必要がある
      キャラの情報以外はすべて同じ内容(コンポーネント)で作られているので、非常に無駄が多い
   

<振る舞いの変更を利用する場合の考え方>
 ・キャラ用のボタンのゲームオブジェクト
    ↓
  問題点の解消 .ャラが増えてもゲームオブジェクトを増やす必要がない
         ⊇だ気必要な場合にも1つだけ修正すればいい 
         キャラの情報だけ差し替えているので、ゲームオブジェクトの本質は変わらないので、非常に無駄がない

 ゲームオブジェクトの振る舞いを変更することにより、これだけの差が生じます。
上手く活用して、ゲーム製作の設計を柔軟かつ、簡便なものにしていくようにしましょう。


2.SelectCharaDetail ゲームオブジェクトを作成する

 それでは、キャラのボタン用のゲームオブジェクトを作成します。
このゲームオブジェクトの振る舞いを変更してボタンの情報を変更します。

 作成場所は、Content ゲームオブジェクトの子オブジェクトとして作成を行います。
何故ならば、この場所にボタンとして複数自動生成を行うように処理を設計していくためです。


ヒエラルキー画像



Gameビュー画像



インスペクター画像



 プレファブのゲームオブジェクト内にプラスアイコン付きで表示されているゲームオブジェクトは、元のプレファブのとの差分のゲームオブジェクトであることを示しています。
今回の場合であれば、プレファブ本体には SelectCharaDetail というゲームオブジェクトが存在していないため、元のプレファブと異なる部分の目印となっています。

 ボタンのゲームオブジェクトの作成方法については、いままの学習した内容を元に挑戦してみてください。


36.SelectCharaDetail スクリプトを作成する

1.設計


 ゲームオブジェクトの振る舞いを変更するためには、情報が必要になります。
現在作成してあるボタン用のゲームオブジェクトは、いずれのキャラの情報もありませんので、情報を持たないボタンに過ぎません。

 こちらに対して、キャラの情報を与えることにより、その情報を元に、ボタンとしても振る舞いを変更するように設計を行います。
キャラの情報は、事前にインスペクターで設定しておく方法と、外部からメソッドの引数を通じて受け取って利用する方法があります。
今回は特に振る舞いを変える前提で設計を行っていますので、事前に登録しておいたのでは単一の情報しか利用できず、振る舞いを変えられません。

 専用の引数を持つメソッドを準備しておいて、そちらにキャラの情報を受け取ることで、その情報に合わせて振る舞いを変更することで
同じゲームオブジェクトながら、異なるキャラのボタンとして振る舞うように処理を施します。

 そのためのクラスを作成し、このクラスが振る舞いを変更し、ボタンの情報を管理する役割を担当します。


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

 ボタンのゲームオブジェクトのためのキャラの情報を管理し、その情報に合わせて振る舞いを変更させたり、
ボタンとしての機能を制御するためのクラスになります。

 TODO の処理にも注視しながら、どういった役割を持っているクラスなのかを理解しながら実装を進めていきましょう。


SelectCharaDetail.cs


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


3.SelectCharaDetail ゲームオブジェクトに SelectCharaDetail スクリプトをアタッチし、設定を行う


 先ほど作成したボタンのゲームオブジェクトに、同名のスクリプトをドラッグアンドドロップしてアタッチしてください。
アサイン情報が表示されますので、同名のゲームオブジェクトをドラッグアンドドロップしてアサインしておきます。


インスペクター画像



 以上で完成です。


4.SelectCharaDetail ゲームオブジェクトをプレファブにする

 完成したゲームオブジェクトをプレファブにしておきます。
Prefabs フォルダに SelectCharaDetail ゲームオブジェクトのみをドラッグアンドドロップしてプレファブにしてください。
プレファブになったら、ヒエラルキーにあるゲームオブジェクトは削除しておきます。

 このような設計にすることで、PlacementCharaPopUp ゲームオブジェクトと SelectCharaDetail ゲームオブジェクトとはそれぞれの役割を持って異なるタイミングで生成を行うように出来ます。



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

 次は 手順21 −キャラ選択用のボタン型ゲームオブジェクトの生成とポップアップ内の表示切り替え処理の実装− です。

コメントをかく


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

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

Menu



プログラムの基礎学習

コード練習

技術/知識(実装例)

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

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

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

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

レースゲーム(抜粋)

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

3D脱出ゲーム(抜粋)

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

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

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

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

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

VideoPlayer イベント連動の実装例

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

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

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

private



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

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