HUDMessageManager UI表示のためのコンポーネント
公開日:
更新日:
Unityでゲーム制作もしくはツール制作においてちょっとしたUIを表示したい時があります. HUDMessageManagerはその時のために製作されたものです.
HUDMessageManagerはちょっとしたUIの表示に最適です. 特徴は以下のとおりです.
- 固定されないUIの表示場所
- フェードイン, フェードアウトエフェクト
- 表示時間設定
Unity 2018.2.5f1で動作確認済みです.
WARNING
このページで書かれている書かれている内容が実際のスクリプトと異なる可能性があります.
もともと, このコンポーネントはUIMessageManager
でしたが, HUDMesageManager
に改名されています
ダウンロード
使い方
インポート
ダウンロードページからダウンロードしたスクリプトをUnityにインポートします. UIMessageManager
というフォルダをそのままUnityEditorにドラック&ドロップします.
CanvasにUIMessageManagerコンポーネントを追加
Textを追加
ここでは, CenterとRightを用意してみましょう. またそれぞれに対して, UIMessageArea
をAddComponentします.
このように, 表示したい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コンポーネントの色と連動しています.