@umm/setting_core
v1.1.0
Published
Core module for ***Setting.asset
Downloads
7
Keywords
Readme
What?
***Setting.asset的な設定を管理するためのアセットの基底クラスです。
Why?
- 結構な頻度で使うクラスなので、共通化して切り出したくなりました。
Install
$ npm install github:umm-projects/setting_core.gitUsage
using UnityEngine;
using UnityModule.Settings;
class HogeSetting : Setting<HogeSetting> {
public string Fuga;
#if UNITY_EDITOR
[UnityEditor.MenuItem("Assets/Create/Setting/Create HogeSetting")]
public static void CreateHogeSetting() {
CreateAsset();
}
#endif
}
class PiyoSetting : PrioritizeSetting<PiyoSetting> {
public float Ponyo;
#if UNITY_EDITOR
[UnityEditor.MenuItem("Assets/Create/Setting/Create PiyoSetting")]
public static void CreatePiyoSetting() {
CreateAsset();
}
#endif
}
class Sample : MonoBehaviour {
void Start() {
Debug.Log(HogeSetting.Instance.Fuga);
Debug.Log(PiyoSetting.Instance.Ponyo);
}
}
Setting<T>は基本的な設定クラスの基底クラスです。.Instanceという Singleton Getter を提供します。
PrioritizeSetting<T>はSetting<T>の機能に加えて、プロジェクト内に複数の設定アセットがあった場合でも、優先度を付けて一元化出来るようにしたクラスです。- 現在の所、値の継承は実装しておりません。
Setting<T>.CreateAsset()を呼ぶことで、空の***Setting.assetがAssets/Resources/Settings/以下に生成されます。- メニューに表示させるために、
UnityEditor.MenuItemAttributeを用いると良いでしょう。 #if UNITY_EDITOR ... #endifで囲まないと実機ビルドした際にコンパイルエラーになります。
- メニューに表示させるために、
License
Copyright (c) 2017 Tetsuya Mori
Released under the MIT license, see LICENSE.txt
