キャンディ落としゲームをつくってみる

ステージの作成

キューブを2つ追加(以下のようにくっつける)


StandRight > ボックスコリダーをwallと同じ高さへ調整


StandRightを複製(名前StandLeft)


【ヒエラルキ】空のオブジェクトを作成し4つのオブジェクトを同じ階層にまとめておく(名前Stage)


プロジェクト内にマテリアルを作成(名前base) > テクスチャをbaseマテリアルのアルベトに挿入


【ヒエラルキ】base > マテリアルにbaseマテリアルを挿入


プロジェクトのマテリアル内にマテリアル作成(名前wall) > テクスチャをwallマテリアルのアルベドに挿入


【ヒエラルキ】wall > マテリアルにwallマテリアルを挿入


【ヒエラルキ】StandRight > マテリアルを挿入


3Dモデルを挿入


【ヒエラルキ】オブジェクトを作成しその中に3Dモデルを6つ挿入下記のように配置


プロジェクト > マテリアル >マテリアル作成(名前logo) > 素材からLogoマテリアルをアルベドに挿入 > Renderingをカットモード


【ヒエラルキ】Logoにlogoマテリアルを挿入


【ヒエラルキ】Stage > クアッド作成(名前Flag)大きさと位置を調整


【ヒエラルキ】Flagを複製して位置を調整


【ヒエラルキ】Stage > クアッド作成(Cloth) > マテリアルを挿入


【ヒエラルキ】Clothを複製(名前:ClothFront)


カメラの調整

メインカメラの調整

画面サイズを縦長に変更


【ヒエラルキ】キューブ作成(名前Pusher)位置を調整


【スクリプト】Pusher.cs作成


【ヒエラルキ】Pusher > Pusherコンポーネントとリジッドボディを追加

Pusher Amplitude 2 リジッドボディ0.5

リジッドボディのキネマティックにチェック


#33 タイトル作成

タイトル画像

タイトル用のシーンを追加(名前:Title)


タイトルを開きUIオブジェクトからCanvas追加


Canvas > CanvasScaler > スケールモードを画面サイズに拡大に変更


Canvas > UIのイメージを追加

Asset内にフォルダを追加(名前:Sprite)

Spriteフォルダにタイトル画像を追加

タイトル画像のテクスチャタイプをsprite2Dに変更

【ヒエラルキ】image > ソース画像にタイトル画像を追加

image > アンカープリセットをストレッチに設定して画像を画面サイズに拡大


タイトルテキストとスタートボタン

【ヒエラルキ】Canvas > UIのテキストを追加(名前:TitleText)

テキストの位置と文字を調整

輪郭コンポーネント追加してタイトル文字に輪郭をつける


【ヒエラルキ】Canvas > UIのボタンを追加(名前:StartButton)

ボタンの大きさ調整(イメージは必要ないためチェックを外す)

ボタンの位置や文字を変更して輪郭もつける


【ヒエラルキ】空のオブジェクトを追加(名前:SystemManager)

【スクリプト】SystemManager.cs作成

【ヒエラルキ】SystemManager > SystemManagerコンポーネント追加

タイトル画面から遷移実装

【スクリプト】SystemManager.cs編集


ファイル>ビルド設定を開きシーンを追加

タイトルシーンが追加されたことを確認

TitleシーンをMainの上に移動(ゲーム開始時にTitleが読み込まれるようになる)

【ヒエラルキ】Canvas > StartButton > クリック時()追加 > SystemManager挿入 > GameStart()呼び出し


【スクリプト】FPSController.cs編集


再生でスタートボタンを押してメイン画面へ遷移することを確認

#32 ジャンプ実装

スペースキーでジャンプするようにする

【ヒエラルキ】Player選択 > オブジェクト追加(名前:GroundCheckPoint)

追加したオブジェクトをPlayerの足元へ移動


レイヤーを追加(名前:Ground)


【ヒエラルキ】TerrainのレイヤーをGroundに変更

【スクリプト】FPSController.cs編集


【ヒエラルキ】Player > FPSController > GroundLayersにGroundを設定, GroundCheckPointにGroundCheckPointオブジェクトを挿入




再生してジャンプすることを確認

ジャンプ時の音バグ修正

【スクリプト】FPSController.cs編集


以上でジャンプ実装完了

#31 UIの調整

【ヒエラルキ】Canvas > CanvasCcaler > UIスケールモードを画面サイズに拡大に変更

画面サイズを1920 * 1080に変更

【ヒエラルキ】AmmoTextとHPSliderのサイズ調整

【ヒエラルキ】GameOverText,GameClearTextにOutlineコンポーネント追加

文字に黒いふちが表示されていることを確認

#29 ポストプロセス実装

参考URL docs.unity3d.com/ja/2019.4/Manual/PostProcessingOverview.html

体力の低下とともに画面を赤黒くしていく処理

ウインドウ > パッケージマネージャからpostprocessingをインポート

【ヒエラルキ】ゲームオブジェクト > 3Dオブジェクト >Postprocess volumeを追加

ゲームオブジェクト > ボリューム > グローバルボリューム追加

グローバルボリューム > 新規を押すと自動的にグローバルボリュームが適用される

グローバルボリューム > addOverride > postprocessing > color adjustments, vignetteを追加

カラーと視界のぼかしを調整

【スクリプト】FPSController.cs編集

【ヒエラルキ】Player > ボリュームにGlobalVolumeを挿入

【ヒエラルキ】GlobalVolume > 優先度を1に設定

再生で操作確認

#28 アイテムSE実装

【ヒエラルキ】Player > AudioSourceコンポーネント追加(開始時に再生のチェックを外す)

【スクリプト】FPSController.cs編集

【ヒエラルキ】Player > FPSControllerのItemに追加したAudioSourceコンポーネントを挿入

HealItemSEにSoundフォルダ内のHealSE音を挿入

同様にAmmoSEにも音ファイルを挿入

#26 アイテム作成

アセットストアよりアイテムアセットをダウンロード

インポートしたアイテムアセットのPreafbを開く

色がついていない状態であれば 編集 > RenderPipeline > 下記の項目を選択

アイテムを適当に追加

【ヒエラルキ】Prefabを展開 > 既存のアニメーションコンポーネントを削除

タグを追加 弾薬回復用Ammoタグと体力回復用Medタグを作成

アイテム2つを選択してボックスコライダーを追加

トリガーにする にチェック

コライダーの編集で大きさを調整

リジッドボディコンポーネント追加

2つのアイテムをPrefab化

Prefab化できたら

ヒエラルキ上のアイテム2つを削除

【スクリプト】FPSController.cs編集

【ヒエラルキ】Player > AmmoBox(回復する玉数), medBox(HP回復数)を設定

再生でアイテム取得後、玉の数とHPが回復していることを確認

#25 敵モデルスポーンシステムを実装

【ヒエラルキ】空のオブジェクト追加(名前SpawrPoint)

追加したオブジェクトを任意の位置に配置

【ヒエラルキ】SpawrPoint > ボックスコライダー追加

トリガーにするにチェック

コライダーの編集でオブジェクトの大きさを調整

【スクリプト】Spawn.cs作成

【ヒエラルキ】SpawnPoint > Spawnコンポーネント追加

敵モデルを追加してパラメータ調整

【ヒエラルキ】SpawnPoint > Rigidbody追加

配置したSwarnPointを通過したときに敵モデルが出現することを再生して確認