Unity, Vr, Vive - Контроллеры для воспроизведения / паузы видео? - PullRequest
0 голосов
/ 18 декабря 2018

Я новичок и в настоящее время пытаюсь заставить мои Vive Controllers поставить на паузу / Play Unity.До сих пор я могу видеть свои «руки», и он распознает мои триггеры, и это все, что нужно.

Кто-нибудь знает, как заставить его сделать паузу, когда я нажимаю триггер, а затем начать, когда я нажимаю его снова?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Valve.VR;

public class Viveinput : MonoBehaviour
{
[SteamVR_DefaultAction("Squeeze")]
public SteamVR_Action_Single squeezeAction;
public bool paused;

void Update () {
    if (SteamVR_Input._default.inActions.GrabPinch.GetLastStateUp(SteamVR_Input_Sources.Any))
    {
        print(" Grab Pinch Up");
    }
    float triggerValue = squeezeAction.GetAxis(SteamVR_Input_Sources.Any);

    if (triggerValue > 00f)
    {
        print(triggerValue);
    }

}
}

Это то, что я использую для соединения между контроллером и Unity..

1 Ответ

0 голосов
/ 18 декабря 2018

Я предполагаю, что ваше видео воспроизводится на VideoPlayer MonoBehaviour:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Valve.VR;

public class Viveinput : MonoBehaviour
{
public VideoPlayer video;

[SteamVR_DefaultAction("Squeeze")]
public SteamVR_Action_Single squeezeAction;
private bool _triggered = false;

void Update () {
    if (SteamVR_Input._default.inActions.GrabPinch.GetLastStateUp(SteamVR_Input_Sources.Any))
    {
        print(" Grab Pinch Up");
    }
    float triggerValue = squeezeAction.GetAxis(SteamVR_Input_Sources.Any);

    if (triggerValue > 0f && !_triggered)
    {
        _triggered = true; // This will prevent the following code to be executed each frames when pressing the trigger.
        if(!video.isPlaying) { // You dont need a paused boolean as the videoplayer has a property for that.
            video.Play();
        } else {
            video.Pause();
        }
    } else {
         _triggered = false;
    }    
}
}

Вам нужно перетащить VideoPlayer в редактор, и оно должно быть.

...