示例#1
0
 // 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 });
     }
 }
示例#2
0
    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>());
    }
示例#3
0
 public void Add(UhpPin pin)
 {
     //Debug.Log("Name: " + pin.name + " " + pin == null);
     lock (_lock)
     {
         pins[pin.name] = pin;
     }
 }