// Enqueues pin event to be processed at Unity thread. private void OnPinChanged(UhpPin pin, object newValue) { lock (_pin_lock) { pinQueue.Enqueue(new PinEvent { pin = pin, newValue = newValue }); } }
void Start() { if (instance == this) { // Starts uOS. PinDriver is declared at uOS settings menu on the editor. uOS.Init(this, this); } // Declares the game input pins and registers for change events. var punchPin = new UhpPin(); punchPin.name = "punch"; punchPin.type = UhpType.Continuous(0, 1); // [-1, 1) PinDriver.instance.Add(punchPin); var recPin = new UhpPin(); recPin.name = "rec"; recPin.type = UhpType.Discrete(0, 2); PinDriver.instance.Add(recPin); PinDriver.instance.PinChanged += OnPinChanged; registeredEvents.Add(punchPin.name, new List<EventHandler>()); registeredEvents.Add(recPin.name , new List<EventHandler>()); }
public void Add(UhpPin pin) { //Debug.Log("Name: " + pin.name + " " + pin == null); lock (_lock) { pins[pin.name] = pin; } }