Unityに関連する記事です

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


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

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

<基礎編>


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


<ゲームのベース部分を作成>


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



手順2 ーアセットのインポートー
 3.アセットをダウンロードしてインポートする



手順3 ーCanvasを作成ー
 4.ヒエラルキー上にCanvasを設置する
 5.Canvas内にゲームの舞台(背景)用のゲームオブジェクトを設置し、設定する



手順4 −プレイヤーの作成−
 6.Canvas内にプレイヤー用のゲームオブジェクトを配置し、設定する
 7.3Dモデルを Canvas 上に表示させる(応用課題)



手順5 −バレットの作成−
 8.Canvas内にバレット用ゲームオブジェクトを作成して設定を行う



手順6 −バレットの基本制御の実装−
 9.Bullet スクリプトを作成し、ゲーム実行時にバレットを発射する
10.Bullet スクリプトを修正し、左クリックしたときにバレットを発射し、5秒後にはバレットを破壊する。成功したらバレットをプレファブ化する



手順7 −スクリプト同士の繋がりを実装−
11.PlayerController スクリプトを作成し、マウスの左クリック(タップ)をしたらバレットを上方向に発射させる制御を追加する
12.Bullet スクリプトを修正して、外部のスクリプト(PlayerController スクリプト)から ShotBullet メソッドへの命令を受けられるようにする
13.PlayerController スクリプトを修正して、生成したバレットの情報を取得して ShotBullet メソッドを実行するように命令する



手順8 −タップした位置情報をゲーム内に反映する処理を実装−
14.PlayerController スクリプトを修正し、マウスの左クリック(タップ)をした時の位置情報を取得できる処理を追加する
15.PlayerController スクリプトを修正し、タップの位置情報とキャラの位置から方向を計算する処理を追加する
16.Bullet スクリプトと PlayerController スクリプトを修正し、バレットに方向の情報を利用して移動するように制御を修正する
17.PlayerController スクリプトを修正し、方向の情報を正規化処理して、画面をタップした位置による速度差を修正する



手順9 −エネミーの作成と制御−
18.Canvas内にエネミー用ゲームオブジェクトを配置し、設定する
19.EnemyController スクリプトを作成し、エネミーの制御を行う



手順10 −コライダー同士の侵入判定の実装−
20.EnemyController スクリプトを修正し、エネミーのコライダーに対しての侵入判定処理を追加する
21.EnemyController スクリプトを修正し、侵入判定の際にエネミーとバレット両方を破壊する処理を追加する



手順11 −バレットの情報を利用してエネミーを破壊する制御を実装−
22.EnemyController スクリプトを修正し、エネミーのHP(体力)の値を設定し、エネミーを破壊する時の条件を HP が 0 の時に変更する
23.Bullet スクリプトと EnemyController スクリプトを修正し、エネミーのHP(体力)の値をバレットの攻撃力分だけ減算し、0 になったら破壊する処理に書き換える
24.処理を簡潔に書く方法を考える



手順12 ープレイヤーの拠点の実装ー
25.Canvas内にプレイヤーの拠点用のゲームオブジェクトを配置し、設定する
26.DefenseBase スクリプトを作成し、エネミーが侵入した際にエネミーを破壊する処理を実装する



手順13 ーエネミーの情報を利用してプレイヤーの拠点の耐久力を減算する制御の実装ー
27.EnemyController スクリプトを修正し、エネミーに攻撃力を設定する
28.DefenseBase スクリプトを修正し、耐久力の値をエネミーの攻撃力分だけ減算する処理に書き換える


<スクリプトによるUIの制御 


手順14 ー耐久力用のゲージと数字表示の作成と、スクリプトによる制御処理の実装ー
29.Canvas内に BottomUI ゲームオブジェクトと GaugeSet ゲームオブジェクト群を作成し、ゲーム画面に耐久力を表すゲージと数字を表示できるようにする



手順15 ースクリプトによる耐久力の数字表示の制御処理の実装ー
30.DefenseBaseスクリプトを修正し、ゲーム画面に拠点の耐久力の値を表示・更新する処理を実装する
31.問題点を見つけ、改善方法を考える



手順16 ースクリプトによる耐久力用ゲージの制御処理の実装ー
32.DOTweenをインポートして設定する
33.DefenseBase スクリプトを修正し、耐久力のゲージをアニメ演出しながら徐々に増減させる制御処理を実装する



手順17 ーエネミーのHPゲージの作成とスクリプトによる制御の実装ー
34.エネミー用ゲームオブジェクトの頭上にHP用ゲージを作成して表示する
35.EnemyController スクリプトを修正して、バレットに接触した際に HP のゲージをアニメ演出しながら徐々に移動させる制御処理を実装する。成功したら EnemySet ゲームオブジェクトをプレファブ化する


<自動生成制御 


手順18 −エネミーの自動生成処理の実装−
36.EnemyGenerator ゲームオブジェクトを作成し、設定する
37.EnemyGenerator スクリプトを作成して、プレファブ化してあるエネミー用ゲームオブジェクトの自動生成処理を追加する
38.EnemyGenerator スクリプトと EnemyController スクリプトを修正し、エネミーの移動開始位置を X 軸だけランダムに変更し、左右の異なる位置から移動開始するように制御する


<ゲームの進行管理の実装>


手順19 −ゲーム終了判定の実装−
39.GameManager スクリプトを作成し、ゲーム終了/未終了の判定値を用意する
40.DefenseBase スクリプトを修正し、耐久力が 0 になった際にゲーム終了の判定を追加する



手順20 −ゲーム終了判定の値を利用した制御処理の実装−
41.GameManager スクリプトと、PlayerController スクリプトを修正して、ゲーム終了の判定に伴って、タップしてもバレットを生成できないようにする制御を追加する
42.GameManager スクリプトと、EnemyGenerator スクリプトを修正して、ゲーム終了判定に伴って、エネミーの自動生成処理を停止する制御を追加する


<演出の追加 


手順21 −バレットによるヒット・エフェクトの実装 
43.アセットを利用してバレットに接触した時用のヒット・エフェクトを作成する
44.EnemyController スクリプトを修正して、バレットとエネミーが接触した際に、バレットのぶつかった位置にヒット・エフェクトを生成する処理を追加する



手順22 −エネミーによるヒット・エフェクトの実装 
45.拠点とエネミーとが接触した時用の被ダメージ・エフェクトを作成する
46.DefenseBase スクリプトを修正して、拠点とエネミーが接触した際に、画面の中央位置に被ダメージ・エフェクトを生成する処理を追加する



手順23 −エネミーによるヒット・エフェクトの実装◆
47.Canvas 内にエフェクト等の一時オブジェクトの格納用ゲームオブジェクトである TemporaryObjectContainer ゲームオブジェクトを作成し、TransformHelper スクリプトを作成する。GameManager スクリプトを修正する
48.DefenseBase スクリプトを修正して、各エフェクトを生成後、 TemporaryObjectContainer ゲームオブジェクトと親子関係にする
49.TransformHelper スクリプトにプロパティを追加し、GameManager スクリプトと DefenseBase スクリプトを修正する


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


手順24 −エネミーの生成完了状態とボスの討伐状態の追加とゲーム終了判定の実装−
50.EnemyGenerator スクリプトを修正して、生成したエネミーが一定数に達したら生成を終了する制御を追加する
51.EnemyGenerator スクリプトを修正して、ボス討伐状態を追加し、ゲーム終了状態に切り替える制御を追加する



手順25 −ボスの作成と生成処理の実装−
52.ボスの情報を作成する
53.EnemyController を修正して、ボスの情報を利用してボスと通常のエネミーの振る舞いを変える制御する処理を追加する
54.EnemyGenerator スクリプトを修正して、エネミーの生成処理を修正し、ボスの生成処理にも対応できるように変更する



手順26 −ゲームクリア表示の作成と実装−
55.Canvas内に ゲームクリア表示を行う GameCrearSet ゲームオブジェクト群を作成する
56.UIManager スクリプトの作成する。GameManager スクリプトと EnemyGenerator スクリプトを修正し、ゲームクリア表示の制御処理を追加する



手順27 −ゲームオーバー表示の作成と実装−
57.Canvas内に ゲームオーバー表示を行う GameOverSet ゲームオブジェクト群を作成する
58.UIManager スクリプト、GameManager スクリプト、 DefenseBase スクリプトを修正し、ゲームオーバー表示の制御処理を追加する


<ゲームのベース部分の完成>


手順28 −実装全体の振り返り−
59.設計について考える
60.実装した処理の内容を読み返して理解を深める



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

 => 次は 手順1 −Main シーンを作成− です。

コメントをかく


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

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

Menu



プログラムの基礎学習

コード練習

技術/知識(実装例)

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

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

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

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

レースゲーム(抜粋)

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

3D脱出ゲーム(抜粋)

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

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

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

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

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

VideoPlayer イベント連動の実装例

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

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

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

private



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

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