Exemple #1
0
    void SetupRightController()
    {
        // Search right hand controller
        // https://docs.unity3d.com/ja/2019.4/Manual/xr_input.html
        var devices = new List <InputDevice>();

        InputDevices.GetDevicesWithCharacteristics(
            InputDeviceCharacteristics.Controller | InputDeviceCharacteristics.Right,
            devices
            );
        if (devices.Count >= 1)
        {
            rightController = devices[0];
        }
        else
        {
            return;     // fail
        }
        // button setting
        // trigger
        rightTriggerDetector             = new ButtonDetector(rightController.Value, CommonUsages.triggerButton);
        rightTriggerDetector.ButtonDown += (bd) => StartClickingByHand(rightHandGameObj);
        rightTriggerDetector.ButtonUp   += (bd) => EndClicking(rightHandObj);
        // grab-related
        rightGripDetector             = new ButtonDetector(rightController.Value, CommonUsages.gripButton);
        rightGripDetector.ButtonDown += (bd) => StartClickingByHand(rightHandGameObj, "grab", rightGrabbedObjects);
        rightGripDetector.ButtonUp   += (bd) => EndClicking(rightHandObj, "ungrab", rightGrabbedObjects);
    }
    void Start()
    {
        GameObject obj = GameObject.Find("ButtonImage");

        buttonImage = obj.GetComponent <ButtonDetector>();
    }