Weed.nagoya - 挑戦&物欲プログラマー

HoloLensの出張授業をする会社で、教材を開発しています

HoloToolkit.Unity.Singleton という【変数準備不要+初期化不要】な便利ヘルパークラスを今さら知った

f:id:weed_7777:20180322190405p:plain

このヘルパークラスを使うとシングルトンをあらわす以下のコードが…

    public class MyCursorManager : MonoBehaviour
    {
        /// <summary>
        /// シングルトン化するための変数
        /// </summary>
        public static MyCursorManager Instance;

        ...

        /// <summary>
        /// 本クラスをシングルトン化する
        /// </summary>
        private void Awake()
        {
            Instance = this;
        }

        ...

こうなります!

using HoloToolkit.Unity;

    public class MyCursorManager : Singleton<MyCursorManager>
    {
        // 変数準備不要!

        ...

        // 初期化不要!

        ...

ひえー、知らなかった!ちなみに MonoBehaviour クラスを継承しているので、関係するメソッドや変数は全部使えます。Awake() で自動初期化されます。ひえー!

MRTK のソースコードを読んでいて気づきました。やはり勉強は下から、基礎から、原理から、ソースコードから、やるべきだなあと思いました。