unity勉強日記プログラミング素人、ブルーノの自主勉強ノートです。他のプログラミングを勉強したい方の助けになれば幸いです。-アメリカ-みなさんこんにちは🌚GWは魔の1日バイト9連勤を果たしたブルーノです。今回はタイトルにもある通りゼルダっぽいゲームのタイトル画面を実装してみたいと思います。ちなみにこんな感じwww.youtube.com特徴としては実際のマップを読み込んでおり、その上にタイトルメニューがあることですね。この形式の良いところは最初にマップデータを読み込むのでそこからゲームシーンに移ればマップのオブジェクトを隠したり一度消したりしなくて良いところだと思います。私からしてもこれは簡単だと思い、今回つくろうと思いました。タイトルのUIの実装タイトルとゲームスタートのボタンを作りたいと思います。例によってかめくめさんのサイトに良い記事があったのでこれを真似させていただきます。gametukurikata.com地味にこのサイトに貼ってある無料日本語フォントサイトのリンクが嬉しかったです。AssetStore有料だし日本語フォント少ないし🌝こんな感じにしました!!タイトルはどーしよーかなーそしてGameStart()メソッドを持ったTitleSystemスクリプトを空のゲームオブジェクトにアタッチし、StartButtonに指定しますこのスクリプトを適当なオブジェクトにアタッチし....StartButtonから呼び出す!ただこれだけでは暗転するアニメーションだけでシーンが変わったりする機能は持っていません。そこで今度はシーン遷移の機能も実装します。今回のゼルダっぽいシーン遷移の方法の利点である先に建物等のロードを済ませるという作業は次のシーンにロードした建物たちを引き継ぐことでそのメリットを活かせます。いうことで今のTitleスクリプトにその作業も追加しなければなりません。そこで、またかめくめ氏のこのページを参考にしました。gametukurikata.comデータを残す方法としてシングルトンという方法を昔少し使ったのですが、いまいち覚えてなかったのでまた勉強です。シングルトンの中身はい、というわけで10行目およびAwakeメソッドの中身がシングルトンの実装になります。10行目で自身のスクリプトをstaticな形で宣言し、共用で使うオブジェクトを12行目のShareObjectに格納しておきます。最初にテストシーンから起動すると10行目のシングルトンインスタンスには何も入っていないのでこのスクリプトが割り当てられ、25行目にあるように決められたオブジェクトたちをDontDestroyOnLoad()メソッドで壊されなくします。この状態でこのスクリプトをもつテストシーンから同じくこのスクリプトを持ったオブジェクトがあるゲームシーンに遷移すると、staticな変数にもうインスタンスが割り当てられているということで23行目にあるように新しくAwake()を通ったゲームシーンの方のスクリプトは格納されている同じオブジェクトたちを削除し始めるんですね。おかげで各シーンに同じオブジェクトがあっても共存することなく、かつどのシーンからプレイしても同じ状況でプレイできるということですね。要はこの唯一無二のインスタンスを保持するためのデザインパターンがシングルトンというようですね。個人的に一つ気になったのは、ゲームシーンには一応全てのマップ用のオブジェクトが配置してあるわけですがAwake()メソッドを通る前に結局同じオブジェクトたちを一度シーンに作り出すのではないか?ということです。Awake()以前ならレンダリングもされていないから負荷はかからないのでしょうか。ここだけ少し疑問が残りました。タイトル画面で動く背景では最後に、タイトル画面のカメラワークを作りたいと思います。「時のオカリナ」から続く3Dゼルダはみんなタイトル画面で実際のマップを使っているのが特徴ですよね。時にRTAやTASでそれが悪用されることもありますが...カメラワークの作り方はこちらのサイトを参考にしました。sirohood.exp.jp動画付きでわかりやすい!!シロフードさんありがとう!!😽こうして...できた!!画像なのでわかりにくいですが、ちゃんとタイトルメニューの後ろでカメラが町中を飛んでいます!!成功です!今回はここまでにしておきます。ヶ月)プログラミングド素人、ブルーノの勉強報告、兼好きなゲームの雑談のブログです。(4)はてなブログをはじめよう!covory10101101276さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。