/// <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); }
/// <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(); }
public void Change(T type, PhaseArgBase arg) { PhaseScene.Change(type, arg); }