Unity 初心者向けノンフィールドRPGの作り方2 タイトルとゲームマネージャーを作る | Unity入門の森 ゲームの作り方

Unity 初心者向けノンフィールドRPGの作り方2 タイトルとゲームマネージャーを作る

Unity 初心者向けノンフィールドRPGの作り方 (スマホ化対応)

現場レベルのゲーム制作が、すべてここで学べます。

【永久会員チケット】

永久会員チケット|Unity入門の森

全講座を見放題で学ぶ

ソースコード・素材・プロジェクトすべて公開。
Unityの基礎から応用まで、一生使えるスキルを体系的に習得。

この講座はUnity 初心者向けノンフィールドRPGの作り方講座の第2回です。

前回はプロジェクトの作成と画像素材のインポート、TextMeshProの準備を行いました。

前回の記事:

Unity 初心者向けノンフィールドRPGの作り方1 プロジェクトの作成と素材のインポート
この講座では全14回でUnityを使って「ノンフィールドRPG」を作成していきます。UnityとC#を使って解説を丁寧に行っていきます。プログラミングにはまだ不慣れという初心者でも最後まで完成できるようになっています。今回はその第1回目です...

第2回では各シーン、中でもタイトルシーンを制作し、ゲーム進行を管理するマネージャーオブジェクトやスクリプトを作成していきます。

【ゲームの作り方講座プレゼント中!】

シーンファイルを作成する

まずはUnityでゲームの舞台を表すシーンを制作していきます。

このゲームは以下の4つのシーンで構成されます。

  • タイトル[Title]
  • ダンジョン[Dungeon]
  • バトル[Battle]
  • リザルト[Result]

まずは[Assets/Scenes]フォルダにある「SampleScene」ファイルを右クリックし、[Rename]をクリックしてファイルの名前を「Title」に変更します。

さらに[Assets/Scenes]フォルダを右クリックし、[Create]→[Scene]→[Scene]の順でクリックしてシーンファイルを追加し名前を「Dungeon」とします。

同じ方法で「Battle」と「Result」シーンファイルも作成し、全部で4つのシーンファイルを用意します。

シーンをScene Listに登録する

次に作成したシーンをScene Listに登録します。これはUnityでどのシーンをゲーム中に実際に読み込んで使えるようにするかを設定する操作です。Scene Listに登録していないシーンはゲーム中で使えません。

Unityエディターのメニュー左上にある[File]→[Build Profiles]の順でクリックしてBuild Profilesを開きます。

左の[Scene List]をクリックして、右に表示されるScene Listに先ほど作成した4つのシーンファイルをドラッグアンドドロップしてシーンを登録します。

ゲームを起動した時最初に開かれるシーンは0番のシーンです。今回はTitleシーンなのでこのシーンをドラッグして一番上に移動させておきました。

タイトルシーンを作成する

[Assets/Scenes]フォルダにある[Title]をダブルクリックしてタイトルシーンを開きます(既に開いている場合はそのままで)。

Unityエディターのメニューから[Window]→[Rendering]→[Lighting]の順でクリックして、Lightingを開きます。

上画像のように[Environment]をクリックしてEnvironmentを表示します。

Environmentの一番上にある[Skybox Material]の右にあるオブジェクトピッカーをクリックして、[None]を選択します。

これで背景の空模様を消すことができました。

カメラの設定

背景を黒くするために次はカメラの設定を変更します。

Hierarchyビューにある[Main Camera]をクリックしてInspectorビューを表示します。

Cameraコンポーネントの[Clear Flags]を「Solid Color」に変更し、Backgroundの色を黒に変更します。

Clear Flagsは、Unityのカメラ(Camera)がシーンを描画する際に、フレームの最初にどのように背景をクリア(初期化)するかを指定する設定です。Solid Colorにするとカメラの視界の背景を単色で塗りつぶすようになります。

BackGroundはその塗りつぶす色を指定しています。

Gameビューを開いて背景が黒色になっていることを確認します。

(実は先ほどSkybox設定をNoneにしたので背景色を黒色にするだけでも画面は真っ黒になりますが、Skyboxを使わないなら軽量なSolid Color設定を使います)

UIの作成

ここではとりあえず「TOUCH START」の文字と、画面をタッチしたときのボタンを作成します。

Hierarchyビューを右クリックし、[UI]→[Text – TextMeshPro]をクリックします。

[Canvas]とその下に[Text(TMP)]そして、[EventSystem]というオブジェクトが作成されます

Text(TMP)には実際のテキスト情報を設定します。

EventSystemはCanvasの機能などを動かすためのオブジェクトなので誤って消さないようにしましょう。

それでは、Canvasオブジェクトを選択してInspectorビューを開きます。

Canvas Scalerコンポーネントの[UI Scale Mode]を[Scale With Screen Size]に変更します。

[Reference Resolution]のXを1080Yを1920に変更します。

[Screen Match Mode]を[Expand]に変更します。

UI文字を表示する

Text(TMP)オブジェクトを選択してInspectorビューを開きます。

次に、Rect Transformで四角形で描かれているAnchor Presetの設定をStretch-Bottomに変更しておきます。これはどの位置を基準にしてオブジェクトの座標や幅を設定するかを決めるものです。

↑Shiftキーを押しながらStretch-Bottomを選択。

RectTransformコンポーネントの設定を上の画像のとおり変更します。

TextMeshProコンポーネントの

[Tex Input]に「TOUCH START」と入力します。

[Font Asset]のオブジェクトピッカーをクリックして前回の講座で作成した「Mplus1-Regular SDK」というFont Assetを選択します。

[Font Size]を80に変更します。

[Vertex Color]を黄色に変更します。

インスペクターを少しスクロールしたところに出てくる[Alignment]を真ん中、中央寄せに変更します。

Gameビューを開いて上の画像と同じように文字が表示されているか確認します。

タッチ用のボタンを作成する

ここからはタイトル画面をタッチした際にゲームスタートできるボタンを作っていきます。

まずはHierarchyビューにあるCanvasオブジェクトを右クリックし、[UI]→[Panel]をクリックします。

Panelオブジェクトは必ずText(TMP)オブジェクトの下に置いてください。

Hierarchyビューのオブジェクトの上下関係はどちらがゲーム画面の前面にくるかを指定しています。下側にあるオブジェクトがゲーム画面の前面に表示されます。
今回はこのPanelオブジェクトをタッチ用ボタンにしていくので先ほどのTMPオブジェクトの背面に配置されると文字列が表示部分をタッチしても動かなくなる恐れが出てきます。

次にPanelオブジェクトを選択してInspectorビューを開きます。

ImageコンポーネントのColorをクリックします。

A値(アルファ値)を0にして透明にします。

Imageのアルファ値を0にしたので視認できなくなりましたが、UnityではBottonコンポーネントを使う際にImageなどのGraphic系オブジェクトを必要とするのでImageコンポーネントを消したりしてはいけません。
続いて、Button機能をPanelオブジェクトに追加します。

Inspectorビューの下にある[Add Component]をクリックして、検索バーに「Button」と入力します。

一覧に[Button]が表示されるのでクリックして、[Button]コンポーネントを追加します。

実際にタッチして動作させるためにはButtonコンポーネントのOnClickイベントに処理を登録する必要がありますが、後の回で行います。

一旦ここまででUI部分の作成を終えます。

ゲームマネージャー系オブジェクトとC#スクリプトを準備する 

このゲームの管理を行うC#スクリプトをアタッチするための空のオブジェクトをまずは3つ作成します。

Hierarchyビューを右クリックして、[Create Empty]をクリックして空のオブジェクトを作成しましょう。オブジェクトの名前は

  • GameManager
  • SoundManager
  • Director

とします。

Unityゲーム開発におけるゲームマネージャーの役割

これら3つのオブジェクトの役割は

  • GameManager:Unityでよくゲームマネージャーと呼ばれるオブジェクト。全てのシーンで存在し、ゲームの進行状態を管理するための役割を担います。
  • SoundManager:サウンドマネージャーと呼ばれるオブジェクト。全てのシーンで存在し、BGMや効果音などの音響管理の役割を担います。
  • Director現在のシーンだけで存在し、そのシーンの主要機能を管理するオブジェクト。今回の場合はタイトル画面管理の役割を担います。

このようになっています。

Unityを用いたゲーム開発では様々なシーンを行き来してゲームを進行・管理していきます。

そのため、各シーン間で様々なデータを共有したり使いまわしたりできると便利です。そうした役割を担うのがゲームマネージャーです。

サウンドマネージャーは音響に特化したものになっています。BGMや効果音の再生状態も引き継げると便利です。例えば、BGMや効果音を鳴らし続けたままシーン遷移させることが可能です。

ディレクターは全てのシーンには存在せず、そのシーンが終わるとオブジェクトが破棄されるものを管理します。つまり、各シーン間でデータ共有や使いまわしが不要な処理を持ちます。

ディレクターオブジェクトはあまり慣用的な名称ではないですが、ゲームマネージャーはUnity開発でよく出てきます。慣例的によく使われる名前なんだなと覚えておきましょう。

全てのシーンでオブジェクトを存在させる代表的手法としてstatic(静的)定義、シングルトンなどがよく使われます。この講座でも後ほどこれらの実装方法を扱います。

はじめてのUnity開発だとこのあたりはややこしいかもしれません。少しずつ慣れていけばOKです。

今は「よくわからない謎の言葉が出てきたな・・・」くらいの認識でも大丈夫です。

GameManagerオブジェクトを設定する

次に[Assets/Scripts]フォルダを選択して右クリックし、[Create]→[Scripting]→[MonoBehaviour Script]をクリックします。

フォルダ内にスクリプトファイルが作成されるので名前を「GameManager」とします。

同じように「SoundManager」と「TitleDirector」というスクリプトファイルも作成します。

次にHierarchyビューにあるGameManagerオブジェクトを選択してInspectorビューを表示します。

一番下にある[Add Component]をクリックし、検索バーにGameManagerと入力します。表示される一覧の中に「Game Manager」が表示されるのでクリックしてアタッチします(スクリプトファイルを直接オブジェクトにドラッグアンドドロップしてアタッチすることもできます)。

同じようにしてSoundManagerオブジェクトにSoundManagerスクリプトを、DirectorオブジェクトにTitleDirectorスクリプトをアタッチします。

SoundManagerオブジェクトを設定する

次はサウンドマネージャーを設定します。

続きを読む
このコンテンツはパスワードで保護されています。 コンテンツを読みたい方はUnity入門の森ショップ(https://unityforest.shop/)で講座閲覧権を取得してね。

まとめ

今回はゲームに使うシーンファイルの設定を行い、その中でタイトルシーンの制作を行いました。UI画面の構築を行い、今後使うゲームオブジェクトやスクリプトファイルを作成しました。

次回からC#でスクリプトを作っていきます。シーン間を遷移するコードとオーディオを再生するコードを作成していきます。

次の記事:

Unity ノンフィールドRPGの作り方3 シングルトンを使ってゲームマネージャーを実装/BGMと効果音を実装
この講座はUnity 初心者向けノンフィールドRPGの作り方講座の第3回です。前回はTextMeshProやButtonオブジェクトを配置してタイトルシーンを作成しました。前回の記事:第3回ではタイトルシーンから別のシーンに移行するためのス...

Unity ノンフィールドRPGの作り方講座に戻る>>

【ゲームの作り方講座もプレゼント中!】

現場レベルのゲーム制作が、すべてここで学べます。

【永久会員チケット】

永久会員チケット|Unity入門の森

全講座を見放題で学ぶ

ソースコード・素材・プロジェクトすべて公開。
Unityの基礎から応用まで、一生使えるスキルを体系的に習得。

コメント

タイトルとURLをコピーしました