1
0
mirror of synced 2024-12-20 18:25:54 +01:00
WACVR/Assets/Script/ColliderToSerial.cs

40 lines
1.1 KiB
C#

using UnityEngine;
using System.IO.Ports;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Collections;
public class ColliderToSerial : MonoBehaviour
{
public GameObject LightManager;
private LightManager lightManager;
private int _insideColliderCount = 0;
public static event Action touchDidChange;
private int Area;
private void Start()
{
Area = Convert.ToInt32(gameObject.name);
lightManager = LightManager.GetComponent<LightManager>();
}
private void OnTriggerEnter(Collider other)
{
_insideColliderCount += 1;
Serial.SetTouch(Area, true);
touchDidChange?.Invoke();
lightManager.UpdateLight(Area, true);
}
private void OnTriggerExit(Collider other)
{
_insideColliderCount -= 1;
_insideColliderCount = Mathf.Max(0, _insideColliderCount);
if (_insideColliderCount == 0)
{
Serial.SetTouch(Area, false);
touchDidChange?.Invoke();
lightManager.UpdateLight(Area, false);
}
}
}