예제 #1
0
        /// <summary>
        /// Draw the Image preview.
        /// </summary>
        public override void OnPreviewGUI(Rect drawArea, GUIStyle background)
        {
            DisplayUGUI rawImage = target as DisplayUGUI;
            Texture     tex      = rawImage.mainTexture;

            if (tex == null)
            {
                return;
            }

            // Create the texture rectangle that is centered inside rect.
            Rect outerRect = drawArea;

            Matrix4x4 m = GUI.matrix;

            // Flip the image vertically
            if (rawImage.HasValidTexture())
            {
                if (rawImage.Player.TextureProducer.RequiresVerticalFlip())
                {
                    GUIUtility.ScaleAroundPivot(new Vector2(1f, -1f), new Vector2(0f, outerRect.y + (outerRect.height / 2f)));
                }
            }

            EditorGUI.DrawTextureTransparent(outerRect, tex, ScaleMode.ScaleToFit);            //, outer.width / outer.height);
            //SpriteDrawUtility.DrawSprite(tex, rect, outer, rawImage.uvRect, rawImage.canvasRenderer.GetColor());

            GUI.matrix = m;
        }
예제 #2
0
    void InitUI()
    {
        disPlayUGUI = transform.Find("AVPro Video").GetComponent <DisplayUGUI>();
        loadPlayer  = GameObject.Find("MediaPlayer").GetComponent <MediaPlayer>();
        disPlayUGUI._mediaPlayer = loadPlayer;

        Button[] btns = transform.GetComponentsInChildren <Button>();
        for (int i = 0; i < btns.Length; i++)
        {
            BtnArgs args = new BtnArgs(i + 1, btns[i].gameObject);
            btns[i].onClick.AddListener(() => { OnClickBtn(args); });
        }

        audioSlider       = transform.Find("audioSlider").GetComponent <Slider>();
        audioSlider.value = 1;
        audioSlider.onValueChanged.AddListener(delegate
        {
            loadPlayer.Control.SetVolume(audioSlider.value);
        });

        _videoSeekSlider = transform.Find("VideoSeekSlider").GetComponent <Slider>();

        _bufferedSliderRect  = _videoSeekSlider.transform.Find("Buffered Area/Fill").GetComponent <RectTransform>();
        _bufferedSliderImage = _bufferedSliderRect.GetComponent <Image>();
    }
예제 #3
0
        private void InitDisplayPnl()
        {
            if (displayPnl == null)
            {
                if (displayCanvas == null)
                {
                    displayCanvas            = new GameObject("VideoDisplayCanvas").AddComponent <Canvas>();
                    displayCanvas.renderMode = RenderMode.ScreenSpaceCamera;

                    var scale = displayCanvas.gameObject.AddComponent <CanvasScaler>();
                    scale.matchWidthOrHeight  = Framework.UIModule.DefaultMatchRatio(false);
                    scale.uiScaleMode         = CanvasScaler.ScaleMode.ScaleWithScreenSize;
                    scale.referenceResolution = Framework.Driver.Instance.Config._uiResolution;

                    LayerTools.SetLayer(displayCanvas.gameObject, (int)canvasLayer);
                }

                displayPnl = new GameObject("VideoDisplayPnl").AddComponent <DisplayUGUI>();
                displayPnl.transform.SetParent(displayCanvas.transform, false);
                LayerTools.SetLayer(displayPnl.gameObject, (int)canvasLayer);

                ResetDisplayPnl();
                displayPnl.raycastTarget = false;
                displayPnl._scaleMode    = ScaleMode.ScaleAndCrop;

                displayPnl._noDefaultDisplay = defaultTexture == null;
                if (defaultTexture != null)
                {
                    displayPnl._defaultTexture = defaultTexture;
                    displayPnl.enabled         = false;
                }
            }

            displayPnl._mediaPlayer = CurMediaPlayer;
        }
예제 #4
0
        private void UpdateVideosLayout()
        {
            GameObject    canvasPanel         = GameObject.Find("Canvas/Panel");
            RectTransform canvasRectTransform = (canvasPanel) ? canvasPanel.GetComponent <RectTransform>() : null;

            if (canvasRectTransform)
            {
                Vector2 canvasSize     = canvasRectTransform.sizeDelta;
                Vector2 halfCanvasSize = new Vector2(canvasSize.x * 0.5f, canvasSize.y * 0.5f);

                int iNumMovies  = m_aAddedVideos.Count;
                int iNumColRows = Mathf.CeilToInt(Mathf.Sqrt(iNumMovies));

                float fWidth  = (1.0f / iNumColRows) * canvasSize.x;
                float fHeight = (1.0f / iNumColRows) * canvasSize.y;

                for (int i = 0; i < iNumMovies; ++i)
                {
                    DisplayUGUI gui = m_aAddedVideos[i];

                    int x = i % iNumColRows;
                    int y = i / iNumColRows;

                    gui.rectTransform.anchoredPosition = new Vector2(((fWidth * x) - halfCanvasSize.x), ((fHeight * -y) + halfCanvasSize.y));
                    gui.rectTransform.sizeDelta        = new Vector2(fWidth, fHeight);
                }
            }
        }
예제 #5
0
    void Start()
    {
        vPlayer = gameObject.GetComponentInChildren <DisplayUGUI>();
        vPlayer._mediaPlayer = MediaPlayerMgr;

        PicturePlayer = transform.Find("PicturePlayer").gameObject.GetComponent <RawImage>();
    }
예제 #6
0
    protected override void OnInitSkinDone()
    {
        base.OnInitSkinDone();
        vPlayer = gameObject.GetComponentInChildren <DisplayUGUI>();
        vPlayer._mediaPlayer = MediaPlayerMgr;

        PicturePlayer = skinTransform.Find("VideoPlayer/PicturePlayer").gameObject.GetComponent <RawImage>();
    }
예제 #7
0
 public void SetupTarget(DisplayUGUI target, Image background)
 {
     if (VideoComp != null)
     {
         VideoComp.MediaDisplay    = target;
         VideoComp.MediaBackground = background;
     }
 }
예제 #8
0
    //public string VideoPath;
    // Use this for initialization
    void Start()
    {
        if (playugui == null)
        {
            playugui = FindObjectOfType <DisplayUGUI>();

            playcotorl = playugui._mediaPlayer;
            //  playcotorl.OpenVideoFromFile(MediaPlayer.FileLocation.RelativeToStreamingAssetsFolder, VideoPath);
        }
    }
예제 #9
0
    public void getTime()
    {
        if (playugui == null)
        {
            playugui = GetComponent <DisplayUGUI>();

            playcotorl         = playugui._mediaPlayer;
            playcotorl.m_Muted = true;
            playcotorl.OpenVideoFromFile(MediaPlayer.FileLocation.RelativeToStreamingAssetsFolder, VideoPath, false);

            playcotorl.Play();
        }
    }
예제 #10
0
    protected override void OnInitDone()
    {
        base.OnInitDone();
        MediaPlayerMgr.m_Loop = true;

        vPlayer = gameObject.GetComponentInChildren <DisplayUGUI>();
        vPlayer._mediaPlayer = MediaPlayerMgr;

        vPlayer._mediaPlayer = MediaPlayerMgr;
        MediaPlayerMgr.Events.AddListener(FinishVideo);

        VideoPlay(videoName);
    }
예제 #11
0
        //----------------------------------
        //  LoadUIImages
        //----------------------------------
        public void LoadUIMovies()
        {
            if (uiMovies.Length == 0)
            {
                return;
            }

            GameObject parentObj = new GameObject("Mediaplayers");

            for (int i = 0; i < uiMovies.Length; i++)
            {
                if (uiMovies[i].fileName != "")
                {
                    // create mediaplayer
                    GameObject obj = new GameObject("mediaplayer_" + uiMovies[i].fileName);
                    obj.transform.SetParent(parentObj.transform);
                    MediaPlayer player = obj.AddComponent <MediaPlayer>();
                    player.m_Loop = uiMovies[i].loop;


                    player.OpenVideoFromFile(
                        MediaPlayer.FileLocation.AbsolutePathOrURL,
                        rootDataPath + movieDirPath + uiMovies[i].fileName,
                        false
                        );
                    player.Events.AddListener(OnVideoEvent);

                    // create displayui
                    DisplayUGUI movie = uiMovies[i].obj.GetComponent <DisplayUGUI>();
                    if (movie == null)
                    {
                        movie = uiMovies[i].obj.AddComponent <DisplayUGUI>();
                        movie._noDefaultDisplay = false;
                        movie._displayInEditor  = false;
                        movie.color             = new Color(0, 0, 0, 0);
                        movie._mediaPlayer      = player;
                    }
                    else
                    {
                        movie._mediaPlayer = player;
                    }
                    mediaPlayer.Add(player);
                }
            }
        }
예제 #12
0
	    /// <summary>
	    /// Info String drawn at the bottom of the Preview
	    /// </summary>
	    public override string GetInfoString()
	    {
			DisplayUGUI rawImage = target as DisplayUGUI;

			string text = string.Empty;
			if (rawImage.HasValidTexture())
			{
				text += string.Format("Video Size: {0}x{1}\n",
				                        Mathf.RoundToInt(Mathf.Abs(rawImage.mainTexture.width)),
				                        Mathf.RoundToInt(Mathf.Abs(rawImage.mainTexture.height)));
			}

	        // Image size Text
			text += string.Format("Display Size: {0}x{1}",
	                Mathf.RoundToInt(Mathf.Abs(rawImage.rectTransform.rect.width)),
	                Mathf.RoundToInt(Mathf.Abs(rawImage.rectTransform.rect.height)));

	        return text;
	    }
예제 #13
0
        public void AddVideoClicked()
        {
            ++m_NumVideosAdded;

            // New media player
            GameObject  newMediaPlayerGameObject = new GameObject("AVPro MediaPlayer " + m_NumVideosAdded.ToString());
            MediaPlayer newMediaPlayer           = newMediaPlayerGameObject.AddComponent <MediaPlayer>();

            newMediaPlayer.m_VideoPath = m_videoPath;
            newMediaPlayer.m_AutoStart = true;
            newMediaPlayer.m_Loop      = true;
            newMediaPlayer.SetGuiPositionFromVideoIndex(m_NumVideosAdded - 1);
            newMediaPlayer.SetDebugGuiEnabled(m_NumVideosAdded < 5);

            // New uGUI object
            GameObject canvasPanel = GameObject.Find("Canvas/Panel");

            if (canvasPanel != null)
            {
                // New game object, and make it a child of the canvas panel
                GameObject newGuiGameObject = new GameObject("AVPro Video uGUI " + m_NumVideosAdded.ToString());
                newGuiGameObject.transform.parent = canvasPanel.transform;
                newGuiGameObject.SetActive(false);

                // Add the components
                newGuiGameObject.AddComponent <RectTransform>();
                newGuiGameObject.AddComponent <CanvasRenderer>();

                // Add the DisplayUGUI;
                DisplayUGUI newGuiObject = newGuiGameObject.AddComponent <DisplayUGUI>();
                newGuiObject._mediaPlayer             = newMediaPlayer;
                newGuiObject._keepAspectRatio         = false;
                newGuiObject.rectTransform.localScale = Vector3.one;
                newGuiObject.rectTransform.pivot      = new Vector2(0.0f, 1.0f);
                m_aAddedVideos.Add(newGuiObject);

                // Update layout
                UpdateVideosLayout();
            }
        }
예제 #14
0
        public void RemoveVideoClicked()
        {
            if (m_aAddedVideos.Count > 0)
            {
                // Pick a random element to remove
                int         index = Random.Range(0, m_aAddedVideos.Count);
                DisplayUGUI gui   = m_aAddedVideos[index];

                // Stop and destroy the MediaPlayer
                if (gui._mediaPlayer != null)
                {
                    gui._mediaPlayer.CloseVideo();
                    GameObject.Destroy(gui._mediaPlayer.gameObject);
                    gui._mediaPlayer = null;
                }
                // Destroy the Display object
                GameObject.Destroy(gui.gameObject);

                // Update variables
                m_aAddedVideos.RemoveAt(index);
                m_NumVideosAdded--;
            }
        }
예제 #15
0
        public void AddVideoClicked()
        {
            ++m_NumVideosAdded;

            // New media player
            GameObject  newMediaPlayerGameObject = new GameObject("AVPro MediaPlayer " + m_NumVideosAdded.ToString());
            MediaPlayer newMediaPlayer           = newMediaPlayerGameObject.AddComponent <MediaPlayer>();

            newMediaPlayer.m_Loop = true;
            newMediaPlayer.OpenVideoFromFile(m_videoLocation, m_videoPath, true);

            // New uGUI object
            GameObject canvasPanel = GameObject.Find("Canvas/Panel");

            if (canvasPanel != null)
            {
                // New game object, and make it a child of the canvas panel
                GameObject newGuiGameObject = new GameObject("AVPro Video uGUI " + m_NumVideosAdded.ToString());
                newGuiGameObject.transform.parent = canvasPanel.transform;
                newGuiGameObject.SetActive(false);

                // Add the components
                newGuiGameObject.AddComponent <RectTransform>();
                newGuiGameObject.AddComponent <CanvasRenderer>();

                // Add the DisplayUGUI;
                DisplayUGUI newGuiObject = newGuiGameObject.AddComponent <DisplayUGUI>();
                newGuiObject._mediaPlayer             = newMediaPlayer;
                newGuiObject._scaleMode               = ScaleMode.StretchToFill;
                newGuiObject.rectTransform.localScale = Vector3.one;
                newGuiObject.rectTransform.pivot      = new Vector2(0.0f, 1.0f);
                m_aAddedVideos.Add(newGuiObject);

                // Update layout
                UpdateVideosLayout();
            }
        }
예제 #16
0
		public override bool RequiresConstantRepaint()
		{
			DisplayUGUI rawImage = target as DisplayUGUI;
			return (rawImage != null && rawImage.HasValidTexture());
		}
예제 #17
0
	    /// <summary>
	    /// Allow the texture to be previewed.
	    /// </summary>

	    public override bool HasPreviewGUI()
	    {
			DisplayUGUI rawImage = target as DisplayUGUI;
	        return rawImage != null;
	    }
예제 #18
0
 public void SetDisplayPnl(DisplayUGUI displayPnl)
 {
     this.displayPnl = displayPnl;
     InitDisplayPnl();
 }
예제 #19
0
 private void Awake()
 {
     player       = new GameObject("MediaPlyaer").AddComponent <MediaPlayer>();
     _displayUgui = GameObject.Find("AVPro Video").GetComponent <DisplayUGUI>();
 }
예제 #20
0
        public override bool RequiresConstantRepaint()
        {
            DisplayUGUI displayComponent = target as DisplayUGUI;

            return(displayComponent != null && displayComponent.HasValidTexture());
        }
예제 #21
0
 public virtual void initialization()
 {
     animator    = this.GetComponent <Animator>();
     displayUGUI = GetComponentInChildren <DisplayUGUI>();
     displayUGUI._mediaPlayer = FindObjectOfType <MediaPlayer>();
 }
예제 #22
0
 private void Awake()
 {
     videoPath = Application.dataPath + "/StreamingAssets/Videos/";
     display   = GetComponent <DisplayUGUI>();
 }