目前通过两种方式实现该功能:
1、在3D物体上播放视频:
首先去创建一个对应的不规则3d物体(Max),Fbx导入Unity,Mesh如下:
然后在此物体上播放视频:
using UnityEngine;
namespace LastZero
{
public class Test: MonoBehaviour {
public MovieTexture mt;
private void Awake()
{
GetComponent<Renderer>().material.mainTexture = mt;
mt.Play();
}
}
}
2、在UI上播放视频:
UI播放的话,考虑到的是使用遮罩,首先P了一张带有透明通道的图片
透明部分是不想要显示视频的部分,其他地方不透明即可
UI设置如下:
3、关于新版本问题:
这里是以5.3.6为例做的实验,所以当遇到VideoPlayer时出了问题
首先是可以修改为MovieTexture
但是视频部分格式可能不支持,所以还是采取了更有效的方法:
以RenderTexture作为中介,来播放视频
首先,将VideoPlayer的TargetTexture设置为新建的RenderTexture
然后,将RawImage的Texture设置为该RenderTexture
这样就可以播放视频了。