public IEnumerator DestroyRoom(RoomInstance room, ExitRoomType type) { if (room != null && m_Rooms.Remove(room)) { yield return(room.DestroyRoom(this, type)); } }
/// <summary> /// 只能由Area调用 /// </summary> /// <returns></returns> public IEnumerator DestroyRoom(AreaInstance area, ExitRoomType type) { if (isEnterRoom) { Debug.LogError("区域还没有退出,不能直接销毁"); } GameEvent.RoomEvent.FireOnBeginDestroyRoom(this); yield return(null); GameEvent.RoomEvent.FireOnDestroyRoomComplete(this); m_Data = null; area = null; m_Script = null; hexRoom = null; DestroyImmediate(gameObject); }
public IEnumerator Exit(ExitRoomType type) { if (isEnterRoom) { GameEvent.RoomEvent.FireOnBeforeExitRoom(this, type); isEnterRoom = false; if (m_Script != null) { yield return(m_Script.UnloadContent()); m_Script.ExitRoom(); } if (type == ExitRoomType.ExitRoom) { PlayerManager.instance.DestoryPlayer(); } yield return(null); GameEvent.RoomEvent.FireOnExitRoom(this, type); } }
public IEnumerator EixtRoom(ExitRoomType type) { yield return(curRoom.Exit(type)); curRoom = null; }
public static void FireOnExitRoom(RoomInstance room, ExitRoomType type) { Debug.Log("onExitRoom"); onExitRoom.Invoke(room, type); }