Идея состоит в том, чтобы взять 360-градусное видео и отобразить его на скайбокс, используя «Образец видео Unity Interactive 360» из сцены хранилища ресурсов. Камера прошла через торговый центр во время записи.
Мы хотим, чтобы зритель видео мог «идти вперед», «идти назад», «стоять на месте» в торговом центре в VR в Unity во время выполнения.
Для этого мы хотим использовать джойстик oculus, чтобы перемещать плеер по видео. То есть, прокручивая текущее время видеоклипа вперед и назад во время выполнения, используя значение от Input.GetAxis("Vertical")
.
Работает: движение вперед работает как шарм.
Не работает: перемещение назад не работает, поскольку скорость воспроизведения не может быть отрицательной.
Это текущий скрипт:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Video;
public class OculusInput_VideoControl : MonoBehaviour {
VideoPlayer videoPlayer = null;
// Use this for initialization
void Start () {
videoPlayer = (VideoPlayer)FindObjectOfType(typeof(VideoPlayer));
}
// Update is called once per frame
void Update () {
float joystickPosition_from_minusone_to_one = Input.GetAxis("Vertical");
videoPlayer.playbackSpeed = joystickPosition_from_minusone_to_one;
OVRDebugConsole.print(videoPlayer.playbackSpeed + " ### " + joystickPosition_from_minusone_to_one );
}
}
Это спецификации системы:

Как мы встраиваемся, идя назад?
if (joystickPosition_from_minusone_to_one < 0) videoPlayer.time -= (int) Mathf.Abs(joystickPosition_from_minusone_to_one);
отстает!
if (joystickPosition_from_minusone_to_one < 0) videoPlayer.frame -= (int) Mathf.Abs(joystickPosition_from_minusone_to_one * 10);
тоже отстает!