天天看点

《Unity开发实战》——2.5节从屏幕内容制作纹理

本节书摘来自华章社区《unity开发实战》一书中的第2章,第2.5节从屏幕内容制作纹理,作者 (爱尔兰)matt smith (巴西)chico queiroz,更多章节内容可以访问云栖社区“华章社区”公众号查看

2.5 从屏幕内容制作纹理

本节会介绍如何从屏幕内容制作纹理。想在游戏中实现图片库或在场景的最后显示重要时刻的快照时,该功能则非常有用(竞速游戏和特技游戏中用得比较多)。

2.5.1 准备工作

示例代码中名为“0423_02_04_05”的文件夹中有一个名为basicterrain的包需要导入,此包中有一个基础地形和一个可以用鼠标旋转的摄像机。

2.5.2 操作步骤

请按照下面的步骤从屏幕内容创建纹理:

1)将上面提到的包导入到unity中,打开02_04_05场景。

2)在project视图中创建脚本,点击create下拉菜单,选择c# script,命名为screen-texture,在代码编辑器中打开。

3)把脚本替换成下面的代码:

《Unity开发实战》——2.5节从屏幕内容制作纹理
《Unity开发实战》——2.5节从屏幕内容制作纹理

6)播放场景,就可以通过点击鼠标按钮取得快照了(并显示在左上角)。

《Unity开发实战》——2.5节从屏幕内容制作纹理

2.5.3 实现原理

点击鼠标触发了一个功能:从指定矩形中读取像素,并把这些像素应用于纹理,让gui绘制出来。

2.5.4 更多内容

除了把纹理作为gui显示的元素外,它还可以用作其他用途。

把纹理作为材质

将代码gameobject.find("myobject").renderer.material.maintexture= texture;放在capture-screen函数的最后即可把纹理作为已知对象的材质。

把纹理作为截屏