Esempio n. 1
0
 public IEnumerator DestroyRoom(RoomInstance room, ExitRoomType type)
 {
     if (room != null && m_Rooms.Remove(room))
     {
         yield return(room.DestroyRoom(this, type));
     }
 }
Esempio n. 2
0
    /// <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);
    }
Esempio n. 3
0
    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);
        }
    }
Esempio n. 4
0
    public IEnumerator EixtRoom(ExitRoomType type)
    {
        yield return(curRoom.Exit(type));

        curRoom = null;
    }
Esempio n. 5
0
 public static void FireOnExitRoom(RoomInstance room, ExitRoomType type)
 {
     Debug.Log("onExitRoom");
     onExitRoom.Invoke(room, type);
 }