はじめに
ゲームの UI を作成していると、たくさんの UI オブジェクトをシーンに配置する必要が出てきます
スマホゲームだと 100 を超える画面を作成することもあるため、
後からスプライトやラベルのレギュレーションを変えようとすると、
作業に大量の時間を要するだけでなく、UI オブジェクトの設定を変更し忘れてしまい、
統一感の無い画面ができあがってしまうことがあります
そのため、僕は Unity で UI を実装する時に、
UI のレギュレーションを管理する機能を作成してゲーム開発で使用しています
今回は、ラベルの UI のレギュレーションを管理する機能を紹介していきます
検証環境
- Unity 5.6.2f1
- NGUI 3.11.4
使い方
上記ページに「UILabelRule.unitypackage」という Unity パッケージを公開しました
こちらを Unity プロジェクトにインポートしていただくことで使用可能となります
※NGUI が必要になります
「UILabelRule.unitypackage」をインポートすると
上記のファイルが Unity プロジェクトに追加されます
そして、追加された「UILabelRuleSetting.asset」を編集して
ラベルのレギュレーションを登録していきます
デフォルトでは「UILabelRuleSetting.asset」にはレギュレーションが登録されていないため、
下記のように UILabel に関する設定を追加していきます
「UILabelRuleSetting.asset」では下記のレギュレーションが設定できます
項目 | 内容 |
---|---|
編集不可 | オンなら編集できなくなります |
英語名(大文字) | 列挙型の要素名 |
日本語名 | 列挙型の要素のコメント |
フォントサイズ適用 | オンなら UILabel.fontSize を変更 |
フォントサイズ | UILabel.fontSize の値 |
文字の色 | UILabel.color の値 |
文字効果の種類 | UILabel.effectStyle の値 |
文字効果の色 | UILabel.effectColor の値 |
文字効果の距離 | UILabel.effectDistance の値 |
設定を追加したら「反映」ボタンを押します
完了ダイアログが表示された後にコンパイルが走るので少し待ちます
そして、設定したレギュレーションを適用したい UI オブジェクトに
「UILabelRule」コンポーネントをアタッチします
その後、プルダウンメニューから適用したいレギュレーションを設定します
ラベルに反映したいレギュレーションはスクリプトから変更することも可能です
using UnityEngine; public class Example : MonoBehaviour { [SerializeField] private UILabelRule m_labelRule; private void Awake() { m_labelRule.SetType( UI_LABEL_COLOR_TYPE.YELLOW ); } }
以上が「UILabelRule.unitypackage」の基本的な使い方となります
まとめ
今回は NGUI のラベルのレギュレーションを管理するスクリプトを紹介させて頂きました
時間があればスプライトやテクスチャのレギュレーションを管理するスクリプトも
紹介していければなと考えてます
また、今のスマホゲーム開発では uGUI や TextMesh Pro がよく使われていると思うので
uGUI や TextMesh Pro 版の UILabelRule も余裕があれば作ってみます