привет мне нужно добавить проверку подключен ли к COM порту девайс если нет то надо отправить ивент false и не нужно открывать порт если подключен то отправляем ивет с true 
public class SerialCommunication : MonoBehaviour
{
    private SerialPort serialPort;
    private string portName = "COM3"; // Укажите ваш COM-порт
    private int baudRate = 115200; // Укажите скорость передачи
    private Thread readThread;
    private bool isReading;
    private SynchronizationContext syncContext;

    public void Initialize()
    {
        syncContext = SynchronizationContext.Current; // Получаем контекст синхронизации основного потока
        OpenPort();
        StartReading();
    }

    private void OpenPort()
    {
        try
        {
            serialPort = new SerialPort
            {
                PortName = portName,
                BaudRate = baudRate,
                Parity = Parity.None,
                StopBits = StopBits.One,
                DataBits = 8,
                Handshake = Handshake.None,

                ReadTimeout = 50,
                WriteTimeout = 50
            };

            
            //serialPort.ReadTimeout = 1000; // Установите тайм-аут при чтении
            Debug.Log("Serial port opened: " + portName);
        }
        catch (Exception ex)
        {
            Debug.LogError("Error opening serial port: " + ex.Message);
        }
    }

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.P))
        {
            SendMessage("1");
        }
    }

    private void StartReading()
    {
        isReading = true;
        readThread = new Thread(ReadSerialPort);
        serialPort.Open();
        SendMessage("SERVICE_INFO"); // Замените на ваш формат
        readThread.IsBackground = true; // Убедитесь, что поток завершится при закрытии приложения
        readThread.Start();
        Debug.Log("isReading");
    }

    private void ReadSerialPort()
    {
        while (isReading)
        {
            if (serialPort != null && serialPort.IsOpen)
            {
                try
                {
                    // Чтение данных из порта
                    string data = serialPort.ReadLine();
                    // Передаем данные в основной поток Unity
                    syncContext.Post(DisplayData, data);
                }
                catch (TimeoutException ex)
                {
                    Debug.LogError($"{ex.Message}: {ex.StackTrace}");
                }
                catch (IOException ex)
                {
                    Debug.LogError($"{ex.Message}: {ex.StackTrace}");
                }
                catch (Exception ex)
                {
                    Debug.LogError("Error reading from serial port: " + ex.Message);
                }
            }
        }
    }

    private void DisplayData(object data)
    {
        // Выводим данные в Debug.Log в основном потоке
        Debug.Log("Received data: " + data);
    }

    private void OnApplicationQuit()
    {
        isReading = false;
        if (readThread != null && readThread.IsAlive)
        {
            readThread.Join(); // Ждем завершения потока
        }

        if (serialPort != null && serialPort.IsOpen)
        {
            serialPort.Close();
            Debug.Log("Serial port closed.");
        }
    }

    public void SendMessage(string message)
    {
        if (serialPort != null && serialPort.IsOpen)
        {
            serialPort.WriteLine(message);
            Debug.Log("Sent: " + message);
        }
    }
}