天津23维预案
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

82 lines
2.0 KiB

using UnityEngine;
using System.Collections;
//-----------------------------------------------------------------------------
// Copyright 2015-2016 RenderHeads Ltd. All rights reserverd.
//-----------------------------------------------------------------------------
namespace RenderHeads.Media.AVProVideo
{
[AddComponentMenu("AVPro Video/Display IMGUI")]
[ExecuteInEditMode]
public class DisplayIMGUI : MonoBehaviour
{
public MediaPlayer _mediaPlayer;
public bool _displayInEditor = true;
public ScaleMode _scaleMode = ScaleMode.ScaleToFit;
public Color _color = Color.white;
public bool _alphaBlend = false;
public bool _fullScreen = true;
public int _depth = 0;
public float _x = 0.0f;
public float _y = 0.0f;
public float _width = 1.0f;
public float _height = 1.0f;
public void OnGUI()
{
if (_mediaPlayer == null || !_displayInEditor)
{
return;
}
bool requiresVerticalFlip = false;
Texture texture = Texture2D.whiteTexture;
if (_mediaPlayer.Info != null && !_mediaPlayer.Info.HasVideo())
{
texture = null;
}
if (_mediaPlayer.TextureProducer != null)
{
if (_mediaPlayer.TextureProducer.GetTexture() != null)
{
texture = _mediaPlayer.TextureProducer.GetTexture();
requiresVerticalFlip = _mediaPlayer.TextureProducer.RequiresVerticalFlip();
}
}
if (texture != null)
{
if (!_alphaBlend || _color.a > 0)
{
GUI.depth = _depth;
GUI.color = _color;
Rect rect = GetRect();
if (requiresVerticalFlip)
{
GUIUtility.ScaleAroundPivot(new Vector2(1f, -1f), new Vector2(0, rect.y + (rect.height / 2)));
}
GUI.DrawTexture(rect, texture, _scaleMode, _alphaBlend);
}
}
}
public Rect GetRect()
{
Rect rect;
if (_fullScreen)
rect = new Rect(0.0f, 0.0f, Screen.width, Screen.height);
else
rect = new Rect(_x * (Screen.width-1), _y * (Screen.height-1), _width * Screen.width, _height * Screen.height);
return rect;
}
}
}