Question by
Nekroptosis · Mar 25, 2019 at 04:03 AM ·
inputcontrollerbinding
Vive input help
Ok so guys i have recently built a VR fly through and i have it all working on every headset except Vive and Rift. So all androids work fine now i have integrated everything needed and testing on my PC with a Vive is working showing controller tracking and everything it needs to do all i cannot seem to do i get any of the buttons working. All i want is the trigger to make the platform move when pressed. This is the code i have been using and i would appreciate if anybody could help me change the Fire1 button to the trigger on Vive controller that would be great.
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using Valve.VR;
public class PlatformController : MonoBehaviour {
public SteamVR_Action_Boolean grabPinch; //Grab Pinch is the trigger, select from inspecter
public SteamVR_Input_Sources inputSource = SteamVR_Input_Sources.Any;//which controller
//targets
public Transform[] targets;
//speed
public float speed = 1;
//moving or not
bool isMoving = false;
//destination index
int nextIndex;
void Start()
{
transform.position = targets[0].position;
nextIndex = 1;
}
// Update is called once per frame
void Update()
{
//check for input
HandleInput();
//move our platform
HandleMovement();
}
void HandleInput()
{
//check if input is used
if(SteamVR_Input._default.GrabPinch.GetStateDown(SteamVR_Input_Sources.Any))
{
isMoving = !isMoving;
}
}
//take care of movement
void HandleMovement()
{
//if not moving exit
if (!isMoving) return;
//calculate distance from the target point
float distance = Vector3.Distance(transform.position, targets[nextIndex].position);
//have we reached it?
if (distance > 0)
{
//calculate how much we need to move
float step = speed * Time.deltaTime;
//move to that step
transform.position = Vector3.MoveTowards(transform.position, targets[nextIndex].position, step);
}
else
{
nextIndex++;
//of end of targets will set back to zero
if(nextIndex == targets.Length)
{
nextIndex = 0;
}
isMoving = false;
}
}
}
Comment