i-school - 2D放置ゲーム 実装手順を考える

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


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

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

 重要なことは、手順通りに進めて実装を行うことではなく、処理の内容をしっかりと理解をしたうえで、この教材を活用できているか、という部分です。

 教材の内容通りに進めていければエラーは出たとしても実装を行うことはできます。
ですが、その実装内容を振り返って、自分の技術として覚えることが出来るかどうかは、処理の理解度によります。

 そのため、もしも実装する内容についてわからない部分があったり、実装を進めていく中で難しい部分がある場合には
しっかりと Unity の知識を深めてから再度挑戦していただくことをお勧めします。まったく問題ありません。

<基礎編>


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


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


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



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



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



手順4 −行き先の作成−
 6.Canvas内にタップできる地点として行き先用のゲームオブジェクトを配置し、設定する
 7.TapPointDetail スクリプトを作成し、Debug を利用してタップを感知する機能を追加する



手順5 −ボタンのタップ演出の追加−
 8.DOTweenをインポートして設定する
 9.TapPointDetail スクリプトを修正し、DOTween を利用してタップ時にボタンのアニメ演出を追加する



手順6 −行き先確認ポップアップの作成と生成制御の実装−
10.行き先確認ポップアップの作成
11.TapPointDetail スクリプトを修正し、タップ時に行き先確認ポップアップの生成処理を追加する



手順7 −行き先にお使いの情報を登録する−
12.JobType (お使いの種類)と JobData(お使いの内容)を登録するためのスクリプトをそれぞれ作成する
13.TapPointDetail スクリプトを修正し、行き先に JobData(お使いの情報)を登録できるようにする



手順8 −行き先確認ポップアップに行き先ごとのお使いの情報を表示する機能を実装−
14.JobsConfirmPopUp スクリプトを修正し、タップした行き先に応じたお使いの情報を、行き先確認ポップアップに自動的に反映して表示する
15.TapPointDetail スクリプトを修正し、行き先確認ポップアップでお使いするを選択した場合、行き先の画像をお使い中の画像に変更する処理を実装する



手順9 −行き先確認ポップアップでお使いを開始する処理と一定時間後にお使いを完了する処理を実装−
16.TapPointDetail スクリプトを修正し、お使い中の状態とお使いの経過時間を制御する処理を追加する
17.JobsConfirmPopUp スクリプトを修正し、お使いを開始するボタンを押したら、実際にお使いが開始されるように処理を追加する



手順10 −お使い完了時の処理を実装し、ゲームの基本サイクルを作成する−
18.お使い完了用の Chara ゲームオブジェクトと CharaController スクリプトを作成する
19.TapPointDetail スクリプトを修正し、お使い完了状態になった際に、Chara ゲームオブジェクトを生成する処理を追加する


<ゲームの進行管理に関する機能の実装>


手順11 −ヘルパークラスの作成−
20.PlayerPrefsHelper スクリプトを作成する



手順12 ーゲーム開始時間と差分値の取得処理の実装ー
21.OfflineTimeManager スクリプトを作成する



手順13 ーゲーム管理クラスの実装ー
22.GameManager スクリプトを作成する
23.TapPointDetail スクリプトと JobsConfirmPopUp スクリプトと CharaDetail スクリプトをそれぞれ修正して、GameManager クラスを経由して処理を実行するように修正する


<お使い時間の管理機能の実装>


手順14 ーお使いの時間の経過を管理する処理の実装ー
24.OfflineTimeManager スクリプト、GameManager スクリプト、TapPointDetail スクリプトを修正し、お使いの時間データを OfflineTimeManager スクリプトにて管理できるようにする



手順15 ーお使いの時間データをセーブする処理の実装ー
25.OfflineTimeManager スクリプトと GameManager スクリプトを修正して、お使いの残り時間をセーブできる機能を追加する



手順16 ーお使いの時間データをロードしてお使いの完了を判定する処理の実装ー
26.OfflineTimeManager スクリプトを修正する


<褒賞機能の実装>


手順17 ーお使いの結果の褒賞表示用のポップアップとスクリプトの作成と生成処理の実装ー
27.RewardPopUp ゲームオブジェクトと RewardPopUp スクリプトを作成する
28.GameManager スクリプトを修正して、キャラをタップした際に RewardPopUp ゲームオブジェクトを生成する処理を実装する



手順18 −褒賞用のデータベースの作成−
29.褒賞用のデータベースとして利用するスクリプタブル・オブジェクトを作成するための準備を行う −RewardType スクリプトと RewardData スクリプトと RewardDataSO スクリプトを作成するー
30.RewardDataSO スクリプトを利用して RewardDataSO スクリプタブル・オブジェクトを作成し、褒賞のデータを登録する



手順19 −お使いの難易度に応じた褒賞のデータをランダムで抽出する機能の実装−
31.お使いの難易度をデータベースとして登録するためのスクリプタブル・オブジェクトを作成するための準備を行う −JobTypeRewardRatesData スクリプトと JobTypeRewardRatesDataSO スクリプトを作成するー
32.JobTypeRewardRatesDataSO スクリプトを利用して JobTypeRewardRatesDataSO スクリプタブル・オブジェクトを作成し、データを登録する
33.GameManager スクリプトを修正し、2つのスクリプタブル・オブジェクトを運用して、お使いの難易度に応じた褒賞のデータをランダムで抽出する機能を実装する



手順20 −ランダムで抽出した褒賞のデータを褒賞表示ポップアップに反映する処理の実装−
34.RewardPopUp スクリプトと OfflineTimeManager スクリプトを修正し、褒賞のデータを受け取ってポップアップ内に反映する処理と、完了したお使いのデータを削除する処理をそれぞれに実装する
35.GameManager スクリプトを修正し、抽出した褒賞のデータを褒賞確認ポップアップに渡す処理と、完了したお使いのデータを削除する処理を実行する処理を実装する


<プレイデータのセーブ・ロード機能の実装>


手順21 −ユーザーのプレイデータをゲーム中に記録する機能の実装−
36.GameData スクリプトを作成する
37.GameManager スクリプトを修正し、獲得した褒賞のデータを GameData に追加する処理を実装する



手順22 −ユーザーのプレイデータをセーブする機能の実装−
38.GameData スクリプトを修正する
39.GameManager スクリプトを修正し、獲得した褒賞のデータを PlayerPrefsHelper クラスを利用してセーブする処理を実装する



手順23 −ユーザーのプレイデータをロードしてゲーム内に反映する機能の実装−
40.GameData スクリプトを修正する
41.GameManager スクリプトを修正し、獲得した褒賞のデータを PlayerPrefsHelper クラスを利用してロードし、ゲーム内に反映する処理を実装する


<アルバム機能の実装>


手順24 −アルバム機能のポップアップとスクリプトの作成−
42.AlbumPopUp ゲームオブジェクトと AlbumPopUp スクリプトを作成する
43.アルバム用ボタンを作成する。GameManager スクリプトを修正して、アルバムボタンを押すとアルバムポップアップを生成する処理を追加する



手順25 −アルバム機能のポップアップの生成に合わせて獲得している褒賞をサムネイル表示する機能の実装−
44.サムネイル用の btnRewardDetail ゲームオブジェクトと RewardDetail スクリプトを作成する
45.AlbumPopUp スクリプトを修正し、アルバム機能のポップアップの生成に合わせて獲得している褒賞をサムネイル表示する処理を実装する


<デバッグ機能の実装>


手順26 −デバッグ機能の実装−
46.デバッグ機能用のゲームオブジェクトを作成する
47.DebugManager スクリプトを作成し、デバッグ用の機能を実装する


<自分で処理を考えてロジックを組み立てる>


手順27 −自分で処理を組み立てる−
48.課題に沿った実装を組み立てる


<完成>


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



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

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