plugin解码视频,提供图片纹理给unity渲染的方式。而在unity中使用的是rendertexture来保存解码的视频图片。为了方面调试,需要保存某一些时刻的图片数据到本地,可以采用下面的函数实现:
[csharp]
view
plain
copy
[contextmenu("save
png")]
private
void
savetexturetofile()
{
if
(outputtexture
!=
null)
{
rendertexture
prev
=
rendertexture.active
rendertexture.active
=
target
texture2d
png
=
new
texture2d(outputtexture.width,
outputtexture.height,
textureformat.argb32,
false)
png.readpixels(new
rect(0,
0,
outputtexture.width,
outputtexture.height),
0,
0)
byte[]
bytes
=
png.encodetopng()
string
path
=
string.format("dump/raw
{0}.png",
random.range(0,
65536).tostring("x"))
filestream
file
=
file.open(path,
filemode.create)
binarywriter
writer
=
new
binarywriter(file)
writer.write(bytes)
file.close()
texture2d.destroy(png)
png
=
null
rendertexture.active
=
prev
}
}
方法/步骤1、Unity支持三种汇编语言,分别是JS、c#和Boo。创建脚本的方法主要有三种,首先启动Unity,单机菜单栏中的Assets->Create来添加脚本。
2、第二种是启动Unity后,单击Project视图中的Create按钮创建脚本,如图所示。
3、启动Unity应用程序,在Project视图中的assets文件夹内通过右击d出的列表框创建脚本,如图所示。
4、添加完脚本后就可以在Project视图中看到。
5、双击脚本文件就可以将其打开进行编辑。
代码有细节错误,调整如下:#pragma strict
private var defaultFog = RenderSettings.fog
private var defaultFogColor = RenderSettings.fogColor
private var defaultFogDensity = RenderSettings.fogDensity
private var defaultSkybox = RenderSettings.skybox
var noSkybox : Material
function OnTriggerStay (hit : Collider) {
if (hit.gameObject.tag=="WaterColler")
{
RenderSettings.fog = true
RenderSettings.fogColor = Color (0, 0.4, 0.7, 0.6)
RenderSettings.fogDensity = 0.04
RenderSettings.skybox = noSkybox
}
}
function OnTriggerExit (hit : Collider) {
if (hit.gameObject.tag=="WaterColler")
{
RenderSettings.fog = defaultFog
RenderSettings.fogColor = defaultFogColor
RenderSettings.fogDensity = defaultFogDensity
RenderSettings.skybox = defaultSkybox
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)