Пример #1
0
    public void OnReceived(EBEvent e)
    {
        switch (e.type)
        {
        case EBEventType.RoomSpawningTrigger:
            RoomSpawningTriggerEvent rstee = (e as RoomSpawningTriggerEvent);
            if (rstee.action == TriggerAction.Enter)
            {
                if ((rstee.roomEntryId == id) && spawningEnabled)
                {
                    roomsManager.DisableAllRoomScenes();
                    RoomScene room = roomsManager.GetRandomRoomScene();
                    AttachRoom(room);
                    SetSpawningEnabled(false);

                    room.ClearCollectibles();
                    Transform itemPlace = room.GetCollectiblePlaceholder();
                    if (itemPlace != null)
                    {
                        CollectibleItem item = itemsManager.GetItem();
                        if (item != null)
                        {
                            item.transform.parent   = itemPlace;
                            item.transform.position = itemPlace.position;
                            item.transform.rotation = itemPlace.rotation;
                            item.SetRoomScene(room);
                            item.gameObject.SetActive(true);
                        }
                    }
                }

                if (rstee.roomEntryId != id)
                {
                    SetSpawningEnabled(true);
                }
            }
            break;

        case EBEventType.DoorClosingTrigger:
            DoorClosingTriggerEvent dcte = (e as DoorClosingTriggerEvent);
            if ((dcte.roomEntryId == id) && (dcte.action == TriggerAction.Exit))
            {
                CloseDoor();
            }
            break;

        case EBEventType.HallMovingTriggerEntered:
            CloseDoor();
            break;
        }
    }
 public void OnReceived(EBEvent e)
 {
     if (e.type == EBEventType.RoomSpawningTrigger)
     {
         RoomSpawningTriggerEvent rste = e as RoomSpawningTriggerEvent;
         if (rste.roomEntryId != roomEntry.GetId())
         {
             door.Unlock();
             roomEntry.SetSpawningEnabled(true);
             RoomsManager manager = RoomsManager.GetManager();
             manager.UnloadPrologue();
             StartCoroutine(UnsubscribeOnNextUpdate());
         }
     }
 }