private void Init()
        {
            gate = environment.GetGateById(gateId);
            BaseGateBehaviour gateBehaviour = gate.GetComponent <BaseGateBehaviour>();

            gateBehaviour?.SetEnvironment(environment);
        }
        private void ProcessClose()
        {
            SetState(State.Closing);
            // GameObject gate = environment.GetGateById(gateId);
            BaseGateBehaviour gateBehaviour = gate.GetComponent <BaseGateBehaviour>();

            if (gateBehaviour == null)
            {
                SetState(State.Closed);
                PlayFxClose(gate);
            }
            else
            {
                gateBehaviour.Close(() =>
                {
                    SetState(State.Closed);
                });
            }
        }