ViveSoftware / ViveInputUtility-Unity

A toolkit that helps developing/prototyping VR apps.
http://u3d.as/uF7
Other
353 stars 82 forks source link

Method OnPointerClick only triggers when pad is being held down #48

Open munro-riley opened 6 years ago

munro-riley commented 6 years ago

For our project we have the basic teleport script added and working based off of the pad button. We also wrote a simple OnPointerClick script that just sends a message to the console and attached to a mesh.

using System.Collections;
using System.Collections.Generic;
using UnityEngine.EventSystems; 
using UnityEngine;
using UnityEngine; using HTC.UnityPlugin.Vive; 
using UnityEngine.UI;

public class Marker : MonoBehaviour , IPointerClickHandler {
        public void OnPointerClick(PointerEventData eventData) {
        if (eventData.IsViveButton(ControllerButton.Trigger)) {
            Debug.Log("worked");
        }
    }
}

The console only logs 'worked' when I'm holding the pad down as well as the trigger. It doesn't work on trigger only like it should.

lawwong commented 6 years ago

I assumed that you worked on the teleport scene?

In the ViveCurvePointers prefab, the curved pointer only enabled when trackpad button help down. This is controlled by ViveInputVirtualButton script, remove it and enable the pointer then it should stay appeared.

(Notice that pointer doesn't send any messages when it is disabled)

You can try adding your test script to the UIButton in example 0, and it should work as you expected.

BTW, send your scene if it is not the case I thought~

munro-riley commented 6 years ago

Solved, we ended up just writing our own controller manager based on the sample.