public void DelStateItem(BaseStateItem stateItem) { StateItemType type = stateItem.stateItemType; List <BaseStateItem> items = mStateItems[(int)StateItemType.Count]; if (items == null) { return; } if (items.Count == 0) { return; } BaseStateItem lastItem = items[items.Count - 1]; items.Remove(stateItem); lastItem.Exit(); if (lastItem == stateItem && items.Count > 0) { lastItem = items[items.Count - 1]; lastItem.OnOverlay(); } }
public void AddStateItem(BaseStateItem stateItem) { StateItemType type = stateItem.stateItemType; List <BaseStateItem> items = mStateItems[(int)StateItemType.Count]; if (items == null) { items = new List <BaseStateItem>(); mStateItems[(int)type] = items; } stateItem.Enter(); items.Add(stateItem); stateItem.OnOverlay(); }