Unityに関連する記事です

設計に基づいて実装していく手順を考える


 設計については検討しましたので、次は、それをどの順番で、そのように実装していくかを考えていきます。
また詳細な仕様についても一緒に考えていきます。

 ゲームシーンが複数ある場合には、それらのシーンごとに実装していく順番を考えましょう。

<基礎編>


 基礎編はすべてBattleシーンで実装を行っていきます。

<アクションゲームのベース部分を作成>


手順1 −Battleシーンを作成−
 1.新しいプロジェクトを作成する
 2.ゲームシーン(Battle)を作成する



手順2 ーCanvasを作成ー
 3.ヒエラルキー上にCanvasを設置する
 4.Canvas内にUI部品を作成する 淵▲ション画面イメージ。背景画像入手、設置。見えない壁設置。親子関係や配置する位置も含めて設置する)

手順3 −手球を実装−
 5.Canvas内に手球(キャラ)ゲームオブジェクトを配置する
 6.手球用スクリプトを作成する



手順4 −手球の挙動制御を実装−
 7.PhysicsMaterial2Dを作成して、手球と壁に反発設定をする
 8.手球用スクリプトを修正する(反発設定をし、手球が壁に接触して跳ね返る)


<スワイプ処理を作成。手球を弾けるようにする>


手順5 −パーティクルを作成−
 9.キューライン用ゲームオブジェクト CueLine を作成する
10.CueLineゲームオブジェクトをプレファブにし、Tag と Layer を設定する



手順6 −スワイプ処理を実装−
11.スワイプ用スクリプトを作成する
12.手球用スクリプトを修正する(スワイプで生成されたCueLineゲームオブジェクトとの接触判定を追加する)


<的球を作成。手球や壁と接触して弾かれるようにする>


手順7 −的球を実装−
13.Canvas内に的球(敵キャラ)ゲームオブジェクトを配置し設定する
14.的球用スクリプトを作成し、Physics2Dの設定を行う



手順8 −DoTweenの処理を実装−
15.DoTweenをインポートして設定する
16.的球スクリプトを修正し、ゲーム開始時にアニメ表示させる



手順9 −的球との接触処理を実装−
17.手球スクリプトと的球スクリプトをそれぞれ修正し、ダメージ処理を追加する
18.的球スクリプトを修正し、体力が0になったときにアニメしながら消える処理を追加する



手順10 −的球に体力ゲージを実装−
19.的球ゲームオブジェクトの頭上に体力ゲージを作成して表示する
20.的球スクリプトを修正して、体力の数値と体力ゲージをリンクさせてアニメ表示する(SliderとDotween)


<UIを追加する 


手順11 −GameDataクラスを作成−
21.ゲームデータを管理するGameDataスクリプトをシングルトンとして作成する(最初に手球の残数を管理する)



手順12 ーゲーム画面の上下部分にUIを作成ー
22.Canvas内にUI部品を作成する◆焚萍名緝瑤伐蕊瑤縫好據璽垢鰺儖奸2萍眠蕊瑤房蟲紊了朕瑤鬟▲ぅ灰鵑鰺儖佞垢襦



手順13 ーゲーム管理用クラスとUIとの連動を実装ー
23.UI管理用のBattleUIManagerスクリプトを作成する(手球の残数アイコンの生成・管理を行う)
24.バトルシーン管理用のBattleManagerスクリプトを作成する


<障害物を追加する>


手順14 ー障害物を実装ー
25.Canvas内に障害物(穴)ゲームオブジェクトを設置する
26.障害物用スクリプトを親子クラスで作成する



手順15 ー手球と障害物との接触処理を実装ー
27.手球用スクリプトを修正し、障害物に接触した際に手球の残数が減るようにする。手球ゲームオブジェクトをプレファブにする
28.BattleManagerを修正し、手球の生成処理と手球が障害物に接触した際の制御処理を追加する



手順16 ー的球と障害物との接触処理を実装ー
29.障害物(的球)用スクリプトを修正する(的球が接触した際に1回で消える処理を追加する) 
30.的球用スクリプトを修正し、的球ゲームオブジェクトをプレファブにする


<的球をランダムな位置に自動生成する>


手順17 ー的球の自動生成処理を実装ー
31.Canvas内に生成位置設定用のゲームオブジェクトを設置する
32.BattleManagerスクリプトを修正する(的球をランダムな位置に自動生成する)


<UIを追加する◆


手順18 ー残り時間を実装ー
33.Canvas内にUI部品を作成する(画面上部に残り時間表示)
34.GameDataスクリプトを修正する (残り時間を登録して管理できるようにする)
35.UIManagerスクリプトを修正する(残り時間表示の更新)
36.BattleManagerスクリプトを修正する(時間経過、敵の倒した数、出現数などを管理) 



手順19 ースコアを実装ー
37.Canvas内にUI部品を作成するぁ淵好灰表示部分)
38.GameDataスクリプトを修正する(スコアを登録して管理できるようにする)
39.UI管理を行うUIManagerスクリプトを修正する(スコア表示の更新)
40.BattleManagerスクリプトを修正する◆淵好灰△魏短擦垢觸萢を追加する)
41.EnemyBallスクリプトを修正して、Moneyを設定する


<ベースのゲームサイクルを作る>


手順20 −ゲームの進行管理を実装−
42.BattleManagerスクリプトを修正する(ゲームの進行状況を管理するenumを作成して管理を行う)
43.CueLinerスクリプトを修正して、ゲーム開始前まではキューラインを生成できないように制御する



手順21 −ステージクリア表示を実装−
44.Canvas内にUI部品を作成するァ.押璽爐両態を表示するStageInfoゲームオブジェクトを追加する
45.UIManagerスクリプトを修正する
46.BattleManagerスクリプトを修正する



手順22 −ゲームオーバー表示を実装−
47.UIManagerスクリプトを修正する
48.BattleManagerスクリプトを修正する
49.CharaBallスクリプトを修正する


 
手順23 −リザルト用ゲームオブジェクトを作成−
50.Canvas内にResultPopUpゲームオブジェクト(リザルト表示用のUI部品群)を作成し、プレファブにする



手順24 −リザルトポップアップ生成処理を実装−
51.ResultPopUp スクリプトを作成する
52.BattleManager スクリプトを修正する


<発展編>

<ゲームを面白くする、遊びたくなるロジックを考える>


発展1 −フェイズ制を実装−
 1.Canvas 内の Top_UI ゲームオブジェクトの子オブジェクトとして PhasePlace を作成する
 2.UIManager スクリプトを修正する
 3.BattleManager スクリプトを修正する


ー時間の経過に合わせてアイテムを生成する処理を実装ー
 アイテム用ゲームオブジェクトを作成する
 アイテム用スクリプトをItemBaseとして作成する
 BattleManagerクリアを修正し、時間の経過に合わせて自動生成する処理を追加する



発展2 −障害物の追加−
 ObstacleBaseクラスを継承し、他の障害物用スクリプトを作成する(クラスの継承)



発展3 ー的球の追加ー
 新しい的球を追加する
 プレファブ化し、生成時にふるまいを変えるようにする



発展4 ーアイテムの追加、ランダムで生成するー
 アイテム用ゲームオブジェクトを作成する
 ItemBaseクラスを継承し、他のアイテム用スクリプトを作成する(クラスの継承)
 BattleManagerクリアを修正し、ランダムなアイテムを生成するようにする



発展5 ー的球用のデータベースを作成ー
 スクリプタブル・オブジェクトを作成する
 Excel、あるいは手動にてデータベースを入力する



発展6 −的球の生成時と消えるときにアニメ演出を追加−
 的球用スクリプトを修正し、生成時と消えるときにアニメ演出をDotweenを使用して追加



発展7 −発展6を利用して、障害物や手球にもアニメ演出を追加−
 手球用スクリプト、障害物用スクリプト(ObstacleBase)を修正してアニメ演出をDotweenを使用して追加



発展8 



発展9 −スキルを実装−
 特定の条件を満たす(敵を倒したり、アイテムをとる、など)によってスキルに必要なポイントが加算されるようにする
 スキルの発動に必要なポイントがたまったら、手球をアニメさせて、タップすることでスキルを使用できるようにする
 スキルのポイントは手球の足元にゲージを用意して、グラフィカルにわかるようにする 
 スキル使用後はポイントが0に戻り、ゲージも連動して初期位置に戻る



発展10 −プレイヤーデータの保存を実装−
 スコアを保存する
 他にも保存しておきたいデータを保存する


<ステージ選択シーンを作成する>


発展11
 ステージ選択シーンを新しく作成する
 StageSelectManagerスクリプトを作成する
 ステージを用意し、プレファブ化する
 ステージのデータはスクリプタブル・オブジェクトに設定する



発展12 −シーン遷移処理を実装−
 シーンの遷移処理を追加する(SceneTypeとSceneStateManagerスクリプトを作成する)


<準備シーンを作成する>


発展13 −キャラ選択ポップアップを実装する−
 手球の種類を増やす
 手球のデータはスクリプタブル・オブジェクトに設定する
 手球のデータをゲーム内に反映する
 スコアで獲得したコインを消費して新しい手球を使えるようにする(保存機能を活用していく)
 レベルなどがあるなら、それも用意する



発展14
ゲーム画面内の遷移時にトランジション(切り替え・フェイドアウト/フェイドイン)処理を追加する
 1.トランジション用の処理を行うためのTransitionCanvasゲームオブジェクトを作成する
 2.新しくTransitionManagerスクリプトを作成する
 3.TransitionCanvasゲームオブジェクトにTransitionManagerスクリプトをアタッチする
 4.TransitionCanvasゲームオブジェクトを利用して、ゲーム開始時とゲーム終了時にフェイド処理を追加する
 5.ゲームを実行して動作を確認する



発展15
BGMとSEを設定する(SoundManagerを作成して使用する)



 以上のような実装工程を行います。

コメントをかく


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

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

Menu



プログラムの基礎学習

コード練習

技術/知識(実装例)

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

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

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

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

レースゲーム(抜粋)

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

3D脱出ゲーム(抜粋)

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

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

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

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

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

VideoPlayer イベント連動の実装例

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

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

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

private



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

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