예제 #1
0
    /// <summary>
    /// Animating the changes of alpha value.
    /// The position and scale is changed by the parent object.
    /// </summary>
    /// <param name="videoPlayerObj"></param>
    /// <param name="status"></param>
    /// <param name="videoID"></param>
    /// <returns></returns>
    public IEnumerator VideoFade(GameObject videoPlayerObj, ChildObjFadeStatus status, string videoID = "")
    {
        HighQualityPlayback videoPlayer     = videoPlayerObj.GetComponent <HighQualityPlayback>();
        VideoController     videoController = videoPlayerObj.GetComponent <VideoController>();
        MeshRenderer        videoRenderer   = videoPlayerObj.GetComponent <MeshRenderer>();
        Material            videoMaterial   = videoRenderer.material;

        Debug.Log(string.Format("Video Event:{0}, {1}", videoPlayerObj.name, status));

        if (status == ChildObjFadeStatus.CLOSE)
        {
            videoController.Stop();

            for (float i = CANVAS_CLOSE_TIME; i >= 0; i -= Time.deltaTime)
            {
                float percentage = i / CANVAS_CLOSE_TIME;
                //videoPlayerObj.transform.localScale = VIDEO_SCALE * percentage;
                videoMaterial.color = new Color(videoMaterial.color.r, videoMaterial.color.g, videoMaterial.color.b, percentage);
                yield return(null);
            }
            videoPlayerObj.SetActive(false);
        }
        else if (status == ChildObjFadeStatus.OPEN && videoID.Length > 0)
        {
            videoPlayerObj.SetActive(true);

            for (float i = 0; i <= CANVAS_OPEN_TIME; i += Time.deltaTime)
            {
                float percentage = i / CANVAS_OPEN_TIME;
                //videoPlayerObj.transform.localScale = VIDEO_SCALE * percentage;
                videoMaterial.color = new Color(videoMaterial.color.r, videoMaterial.color.g, videoMaterial.color.b, percentage);
                yield return(null);
            }
            videoPlayer.PlayYoutubeVideo(videoID);
        }
        else if (status == ChildObjFadeStatus.CLOSE_AND_OPEN && videoID.Length > 0)
        {
            videoController.Stop();

            videoPlayer.PlayYoutubeVideo(videoID);
        }
    }
    /// <summary>
    /// Play a video on the screen
    /// </summary>
    /// <param name="url">the url of the video on youtube or the file path</param>
    /// <param name="frontscreen">true if the video should be played on the front screen (element 0 in camras array), false to show it on the floor screen (element 1 in camras array)</param>
    public void PlayFromInput(string url, bool frontscreen)
    {
        if (frontscreen)
        {
            player.targetCamera = cameras[0];
        }
        else
        {
            player.targetCamera = cameras[1];
        }

        if (url != null && url != "")
        {
            path = url;
        }
        else
        {
            return;
        }
        //search for the low quality if not find search for highquality
        if (playersimpleFront != null)
        {
            player.targetCameraAlpha = 1;
            playersimpleFront.PlayYoutubeVideo(path);
            playersimpleFront.unityVideoPlayer.loopPointReached += OnVideoFinished;
        }
        else if (playerhighquality != null)
        {
            player.targetCameraAlpha = 1;
            playerhighquality.PlayYoutubeVideo(path);
            playerhighquality.unityVideoPlayer.loopPointReached += OnVideoFinished;
        }


        if (frontscreen)
        {
            canvases[0].SetActive(false);
        }
        else
        {
            canvases[1].SetActive(false);
        }
    }