目次 このページのソースコードを表示

HUDMessageManager UI表示のためのコンポーネント

公開日:
更新日:

Unityでゲーム制作もしくはツール制作においてちょっとしたUIを表示したい時があります. HUDMessageManagerはその時のために製作されたものです.

HUDMessageManagerはちょっとしたUIの表示に最適です. 特徴は以下のとおりです.

  • 固定されないUIの表示場所
  • フェードイン, フェードアウトエフェクト
  • 表示時間設定

Unity 2018.2.5f1で動作確認済みです.

WARNING

このページで書かれている書かれている内容が実際のスクリプトと異なる可能性があります.

もともと, このコンポーネントはUIMessageManagerでしたが, HUDMesageManagerに改名されています

ダウンロード

使い方

インポート

ダウンロードページからダウンロードしたスクリプトをUnityにインポートします. UIMessageManagerというフォルダをそのままUnityEditorにドラック&ドロップします.

CanvasにUIMessageManagerコンポーネントを追加

CanvasにUIMessageManagerコンポーネントを追加
CanvasにUIMessageManagerコンポーネントを追加

Textを追加

ここでは, CenterとRightを用意してみましょう. またそれぞれに対して, UIMessageAreaをAddComponentします.

CenterText
CenterText
RightText
RightText

このように, 表示したいTextコンポーネントを持つゲームオブジェクトにUIMessageAreaをAddComponentします. UIMessageAreaで設定した内容はそこに表示されるメッセージに反映されます.

表示用のスクリプトを用意

            using System.Collections;
            using System.Collections.Generic;
            using UnityEngine;
            
            using UIMessageManagement;
            
            
            public class Test : MonoBehaviour
            {
                // Messageの作成
                Message message = new Message("dont override.", "Right");
            
            
                void Start()
                {
            
                }
            
                void Update()
                {
                    if (Input.GetKeyDown(KeyCode.A))
                    {
                        UIMessageManager.Instance.ShowMessage(new Message("Hello world!", "Center"));
                    }
            
                    if (Input.GetKey(KeyCode.S))
                    {
                        UIMessageManager.Instance.ShowMessageDontOverride(message);
                    }
            
                }
            }

ShowMessageでMessageを表示します.

ShowMessageDontOverrideが呼び出されたときに, 画面にそのメッセージが残っている場合は, 重複して同一のメッセージを表示しません. メッセージが同じという判断はメッセージのインスタンスで行います. メッセージのインスタンスが異なるときは, 同一のメッセージと判断できません. そのため, あらかじめメッセージをループ外で作成しています.

実行

実行画面
実行画面
  • Aキーを押すとHello world!!が表示されます. 連打するとその分表示されます.
  • Sキーを押すとdont overrideが表示されます. 連打しても一つしか表示されません.

その他

  • 文字の色は, Textコンポーネントの色と連動しています.
「https://contentsviewer.work/Master/Unity/HUDMessageManager」から取得