Проблемы с воспроизведением видео ARCore - PullRequest
1 голос
/ 22 мая 2019

Я следовал коду примера, приведенному в AugmentedImageController для ARCore unity на github, по адресу: https://github.com/google-ar/arcore-unity-sdk/blob/master/Assets/GoogleARCore/Examples/AugmentedImage/Scripts/AugmentedImageExampleController.cs. Даже после того, как я следовал коду в этом примере, он не воспроизводит видео с видеопроигрывателя, как показано в коде AugmentedImageVisualizer ниже:

Видео воспроизводится, если я перетаскиваю AugmentedImageVirtulizer на сцену и помещаю playOnAwake. Однако он не воспроизводится, когда я отключаю playOnAwake, отправляю приложение на телефон, а затем указываю камеру на увеличенное изображение (в моем случае это пустая этикетка бутылки с молоком). Я хочу, чтобы из бутылки с молоком появлялся такой предмет, как призрак.

    using GoogleARCore;
    using UnityEngine;
    using UnityEngine.Video;

    public class AugmentedImageVisualizer : MonoBehaviour {

    private VideoPlayer vidPlayer;
    public VideoClip[] vidClips;
    public AugmentedImage Image;

// Use this for initialization
void Start () {
    vidPlayer = GetComponent<VideoPlayer>();
    vidPlayer.loopPointReached += OnStop;

}

   private void OnStop(VideoPlayer source)
   {
      gameObject.SetActive(false);
   }

   // Update is called once per frame
   void Update () {

    if (Image == null || Image.TrackingState != TrackingState.Tracking)
    {
        return;
    }

    if (!vidPlayer.isPlaying)
    {
        vidPlayer.clip = vidClips[Image.DatabaseIndex];
        vidPlayer.Play();
    }

    transform.localScale = new Vector3(Image.ExtentX, Image.ExtentZ, 
    1f);

  }
      }

не отображаются ошибки консоли, но нет видео, показывающих

1 Ответ

0 голосов
/ 23 мая 2019

Убедитесь, что ваша камера находится в исходном положении.Ваш видеоплеер активен?(videoplayer.setactive (true))

Мое рабочее решение:

public class AugmentedImageVisualizer : MonoBehaviour
{
    private const string TAG = "AugmentedImageVisualizer";
    public AugmentedImage image;

    public GameObject video;
    public VideoClip[] videoClips;

    private VideoPlayer videoPlayer;

    private void Start() {
        videoPlayer = video.GetComponent<VideoPlayer>();
    }

    private void Update() {
        if (Session.Status != SessionStatus.Tracking) return;

        if (image == null || image.TrackingState != TrackingState.Tracking) {
            videoplayer.SetActive(false);
            return;
        }

        UpdateVideo();

    private void UpdateVideo() {
        if (!videoPlayer.isPlaying) {
            videoPlayer.clip = videoClips[image.DatabaseIndex];
            videoPlayer.Play();
            video.SetActive(true);
        }

        transform.localScale = new Vector3(image.ExtentX, 1, image.ExtentZ);
    }
}

Не забудьте добавить компонент видеоплеера в ваш игровой объект.

...