コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity 入門】全方位シューティングを作る 第22回 レベルの表示

目次

前回のチュートリアル

はじめに

前回は、HP ゲージと経験値ゲージを作成しました
今回は、レベルを表示していきます

フォントの導入

今回は、ゲーム画面に文字を表示するために、
あらかじめ用意したフォントデータを使用します

https://github.com/baba-s/unity-shooting-tutorial/blob/master/font-20x20.unitypackage?raw=true

上記のページにアクセスして「font-20x20.unitypackage」をダウンロードします

Unity メニューの「Assets/Import Package/Custom Package...」を選択して、
ダウンロードした「font-20x20.unitypackage」を選択します

Import Unity Package ウィンドウが表示されたら「Import」ボタンを押します

これで、フォントデータの導入が完了しました

テキストの作成

プレイヤーのレベルを表示するオブジェクトを作成していきます

「Canvas」オブジェクトを右クリックして「UI>Legacy>Text」を選択します

作成した「Text (Legacy)」オブジェクトを選択して、名前に「LevelTitle」に変更し、
「Pos X」に「42」、「Pos Y」に「184」、「Text」に「LEVEL:」と入力し、
「font-20x20-export」を「Font」の欄にドラッグして設定し、
「Color」を白色に変更します

これで、「LEVEL:」というテキストを画面に表示できました

次に、作成した「LevelTitle」オブジェクトを選択した状態で Ctrl + D を押して、

複製した「LevelTitle (1)」を選択した状態で、名前を「Level」に変更し、
「Pos X」に「128」、「Text」に「10」と入力します

これで、レベルを表すテキストを画面に表示できました

レベルの表示を更新するコードの実装

レベルを表示するオブジェクトの配置が完了したので、
レベルの表示を更新するコードを作成していきます

「Hud」スクリプトをコードエディタで開き、
変数の定義に下記のコードを追加します

public Text m_levelText;// レベルのテキスト

次に、Update 関数の最後に下記のコードを追加します

// レベルのテキストの表示を更新する
m_levelText.text = player.m_level.ToString();

そして、Unity に戻り、「Canvas」オブジェクトを選択した状態で
「Level」オブジェクトを「Level Text」の欄にドラッグして設定します

これで Unity を再生すると、プレイヤーのレベルが常に表示されるようになります

次回は、ゲームオーバーの表示を作成していきます

次のチュートリアル

チュートリアル一覧