《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)把脚本替换成下面的代码:


c101da648a9eaa212b957e69dad38758978a7b31


c98b5680191d0aefe6d8966d596802ba36539e54

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


b8eaa820facba33db789a5db6d6d90cfe3f8560d

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

2.5.4 更多内容
除了把纹理作为GUI显示的元素外,它还可以用作其他用途。

  1. 把纹理作为材质
    将代码GameObject.Find("MyObject").renderer.material.mainTexture= texture;放在Capture-Screen函数的最后即可把纹理作为已知对象的材质。
  2. 把纹理作为截屏
    可以把纹理解码成PNG图片然后保存,具体请参考Unity的文档:http://docs.unity3d.com/Documentation/ScriptReference/Texture2D.EncodeToPNG.html
相关文章
|
4月前
|
缓存 图形学
Unity3D学习笔记12——渲染纹理
Unity3D学习笔记12——渲染纹理
41 2
|
4月前
|
API C# 图形学
Unity3D学习笔记9——加载纹理
Unity3D学习笔记9——加载纹理
46 2
|
3月前
|
图形学 开发者
【独家揭秘】Unity游戏开发秘籍:从基础到进阶,掌握材质与纹理的艺术,打造超现实游戏视效的全过程剖析——案例教你如何让每一面墙都会“说话”
【8月更文挑战第31天】Unity 是全球领先的跨平台游戏开发引擎,以其高效性能和丰富的工具集著称,尤其在提升游戏视觉效果方面表现突出。本文通过具体案例分析,介绍如何利用 Unity 中的材质与纹理技术打造逼真且具艺术感的游戏世界。材质定义物体表面属性,如颜色、光滑度等;纹理则用于模拟真实细节。结合使用两者可显著增强场景真实感。以 FPS 游戏为例,通过调整材质参数和编写脚本动态改变属性,可实现自然视觉效果。此外,Unity 还提供了多种高级技术和优化方法供开发者探索。
57 0
|
4月前
|
测试技术 C# 图形学
Unity3D学习笔记10——纹理数组
Unity3D学习笔记10——纹理数组
52 0
|
4月前
|
存储 算法 C#
Unity3D学习笔记2——绘制一个带纹理的面
Unity3D学习笔记2——绘制一个带纹理的面
33 0
|
6月前
|
图形学
【unity小技巧】受伤屏幕闪红、死亡动画、死亡黑屏效果
【unity小技巧】受伤屏幕闪红、死亡动画、死亡黑屏效果
207 2
|
6月前
|
存储 图形学
【unity小技巧】unity中导入下载的3D模型及albedo/baseColor、normal 、AO/Occlus、metallic、roughness贴图纹理设置
【unity小技巧】unity中导入下载的3D模型及albedo/baseColor、normal 、AO/Occlus、metallic、roughness贴图纹理设置
123 0
|
数据采集 开发工具 图形学
Windows平台实现Unity下窗体|摄像头|屏幕采集推送
随着Unity3D的应用范围越来越广,越来越多的行业开始基于Unity3D开发产品,如传统行业中虚拟仿真教育、航空工业、室内设计、城市规划、工业仿真等领域。
111 0