Beispiel #1
0
        /// <summary>
        /// 開始処理
        /// </summary>
        /// <param name="type">Type.</param>
        public void Start(TScene scene, T type, PhaseArgBase arg = null)
        {
            _scene = scene;

            foreach (var elm in _dict)
            {
                elm.Value.PhaseScene  = this;
                elm.Value.DiContainer = _scene.DiContainer;
                elm.Value.Scene       = scene;
                elm.Value.Awake();
            }

            Change(type, arg);
        }
Beispiel #2
0
        /// <summary>
        /// 入れ替える
        /// </summary>
        /// <param name="type">Type.</param>
        public void Change(T type, PhaseArgBase arg)
        {
            Base next = null;

            if (!_dict.TryGetValue(type, out next))
            {
                return;
            }

            if (_current != null)
            {
                _current.Term();
            }

            next.Arg = arg;

            _current = next;

            // 最後にInitすることでInit内でCurrentが入れ替わっても問題ないようにする
            next.Init();
        }
Beispiel #3
0
 public void Change(T type, PhaseArgBase arg)
 {
     PhaseScene.Change(type, arg);
 }