// Update is called once per frame
    void Update()
    {
        timeSinceLastSpawn += Time.deltaTime;

        time -= Time.deltaTime;

        timeUpdate.Invoke(time);

        if (timeSinceLastSpawn > spawnInterval)
        {
            SpawnAttachment();

            timeSinceLastSpawn = 0.0f;
        }
    }
        void Update()
        {
            //выполняем действия в зависимости от состояния игры
            switch (State)
            {
            case MultiplayerState.WAIT:
                //если всё участники подтвердили участие,
                //делаем рассылку о подключении	(GM обрабатывает)
                CheckConfirmationParticipants();
                break;

            case MultiplayerState.PLAY:
                if (Time.time >= currentMultiplayerGameTime + 1f)                         //проверка раз в секунду
                {
                    currentMultiplayerGameTime = Time.time;

                    if (MultiplayerInfo.timer > 0)
                    {
                        var curTime = --MultiplayerInfo.timer;
                        var maxTime = dataMultiplayer.multiplayerLevel[indexLevel].time;

                        //рассылка события о изменении времени (curTime, maxTime)
                        TimeUpdateEvent?.Invoke(curTime, maxTime);
                    }
                    else
                    {
                        MultiplayerGameResult();
                    }
                }
                break;

            case MultiplayerState.PREPARATION:
                //игра остановлена
                break;

            case MultiplayerState.READY:
                //ира на старте, ждёт начала
                break;
            }
        }