1225 タイトルを作ろう! - mishimatsu/AdventCalendar2014 GitHub Wiki

前回は、SEを鳴らしてみました。 今回で、最終回となります。 今回は、タイトル画面を作って、今まで作ったゲーム画面を呼び出したいと思います。 いつものようにUnityを起動します。 タイトル画面を作る前に、シーンに影を落としてみましょう。 HierarchyにあるDirectional Lightを選択します。 InspectorのShadow TypeをSoft Shadowに変更します。 Soft Shadowを選択すると柔らかい表現の影が表示されます。 光源の角度を変えて、光源の方向によって、影の方向も変化することを確認しましょう。 タイトル画面を作ろう! タイトル画面用のシーンを新しく作ります。 メニュー→File→New Sceneを選択 シーンをセーブしますかのダイアログが表示されると思うので、Saveを選択して、セーブしておきます。 セーブの必要がなければDon't Saveを選択。 新しいシーンが作成されました。 このシーンにタイトル画面に必要なものを追加していきます。 タイトル画面に必要なものを考えよう 1.ゲームのタイトル表示 2.ゲームスタートボタンの表示 3.ゲームシーンの呼び出し 4.決定音再生 欲を出せばほかにもたくさんありますがまずは、この4つを実装してみましょう。 ゲームのタイトルを決めよう! まずは、表示するゲームのタイトルを決めましょう。 Ballにしておきましょうか。 これを画面中央に表示するようにします。 ゲームを呼びだそう! ProjectをAssetsのフォルダを選択して、この位置に新しいスクリプトを作成します。 スクリプトの名前は、Titleにしておきましょう。 スクリプトをカメラに追加する。 HierarchyのMain Cameraを選択して、さっき作成したTitleスクリプトをInspectorへドロップします。 もしくは、Main CameraのInspectorの下にあるAdd Componetをクリックして、Script→TitleでもOKです。 Titleスクリプトをダブルクリックして、MonoDevelopを起動します。 16行目 void startGame() スタートのボタンが押されたら呼び出される関数です。 18行目 Application.LoadLevel("Ball"); Ballのシーンを呼び出します。 これは、やり直しボタンを押された時の処理で使いましたね。 タイトルを表示しよう! Unity 4.6から追加された新しいGUIを使って、タイトルを表示しようと思います。 メニュー→Game Object→UI→Textを選択。 Hierarchyに3つGame Objectが追加されています。 Canvas、Text、EventSystem Canvasは、GUIのパーツを配置できる枠になります。 Textは、文字列を表示するためのGUIパーツです。 EventSystemは、GUIのイベントを処理するためのGame Objectです。 タイトルを変更しよう。 HierarchyのTextをクリック。 InspectorのTextにある、New TextをBallに変えてみましょう。 画面のNew TextがBallに変わりました。 文字の色が黒なので、少し見えづらいですね。 文字の色を好みの色に、変えてみましょう。 一度実行して、現状を確認してみましょう。 ちょっと文字が小さくですね。 あと、画面の中央にセンタリングされるように、パラメータを変更しましょう。 PosX、PosYを0へ変更 Width 400 Height 120 Font Sizeを100へ変更します。 ParagraphのAlignmentをセンタリングに変更します。 これで、大きな文字で画面の中央に表示されます。 スタートボタンの追加しよう! メニュー→GameObject→UI→Buttonを選択。 スタートボタンの位置を調整。 ButtonのInspectorのPosXを0、PosYを-112へ変更します。 スタートボタンのテキストを変更 HierarchyのButton横にある▶をクリックします。 するとTextの項目が表示されます。 このTextの項目がボタンに表示される文字列になります。 タイトルと同様に、テキストをスタートへ変更してみましょう。 ?? どうやら日本語の入力ができないようです。 スタートボタンのテキストを予めコピーしておいてからTextの項目へペーストしましょう。 現在、使用しているUniytのバージョンは、4.6.0f3です。 将来的に、この不具合は修正されると思います。 実行してみましょう。 スタートボタンを押しても何も起こりません。 次に、ボタンが押された際のイベントを定義します。 ボタンのイベントを定義しよう! HierarchyのButtonを選択します。 Inspectorの下の方にあるOn Click()の部分にある+をクリックします。 追加された項目のボタンを押して、Select Objectのダイアログを開きます。 Main Cameraを選択します。 なぜ、Main Cameraを選択するかというと、画面のスタートボタンが押された場合に呼び出す関数がMain Cameraのスクリプトにあるからです。 No Functionの項目をクリックして、Title→SendMassage(String)を選択 これは、TitleへSendMessage()を実行するという意味になります。 startGameを入力 このstartGameは、Titleスクリプトの16行目に記述した関数の名前を書きます。 これで、スタートボタンが押された時の設定は、終了です。 スタートボタンが押されると、設定したTitleへSendMessage("startGame")が呼び出されて、Titleスクリプトに記述したstartGameの関数が呼び出されるということになります。 ※大文字小文字に注意してください。 StartGameなど、スクリプトに書かれている関数名と異なる場合には、関数の呼び出しに失敗します。 実行して、スタートボタンを押してみましょう。 ボタンを押したら無事にゲームがスタートされましたね。 ゲーム画面に移動できなかった場合、エラーが出ているかもしれません。 エラーメッセージを確認しましょう。 練習問題 1.スタートボタンが押されたら決定音がなるようにしてください。 2.ステージ2を作成してください。 3.Ballシーンに次のステージへのボタン追加して、ステージ2へ行けるようにしてください。 基本的な作り方を紹介してきました。 皆さん、どうでしたか? わかりやすかったでしょうか? 途中で、わからなくなったら分かるところまで、戻って何度も繰り返しましょう。 わかりにくかったところなどありましたらフィードバックをいただけると幸いです。 今後の参考にさせていただいき、記事に反映させていきたいと思います。 ここまで、理解できたなら市販されている本やWeb上の記事を読んでも意味がわかるようになっていると思います。 少しずつ新しいことに挑戦していってください。 はじめからUnityの全部を知る必要はありません、必要なところを調べて使えるようになればいいのです。 いつも使っている日本語も全部知らなくても使うことはできているし、わからないことはその都度調べると思います。 それと同じです。 Unityに興味を持って、もっと知りたいということであれば公式のチュートリアルなどを見ると良いかも知れません。 UNITY - Developer - チュートリアル それでは、楽しいUnity Lifeを! もしかしたら補習があるかも・・・