《Unity开发实战》——3.8节通过GUI实时组合纹理

3.8 通过GUI实时组合纹理
avatar的自定义往往包括选择一个或多个纹理来定义外观。本节中将实现一个GUI,此GUI通过组合两个纹理通道让玩家创建自己的avatar。

3.8.1 准备工作
本节需要的3D对象和图片文件在0423_03_07 文件夹的selectTexture 包中。

3.8.2 操作步骤
请按照下面的步骤叠加纹理:
1)把为名selectTexture 的包导入到项目中。
2)打开名为 selTextScene的场景。
3)创建基础纹理:在Project 视图中,用下拉菜单创建一个材质,命名为selectable-Material。
4)把selectableMaterial材质的Shader 选项修改成 Decal。然后把名为 face1 和prop1的纹理贴图作为 Decal 的贴图,如下图所示:

8)保存脚本,并附加到Avatar 游戏对象上。
9)在Inspector 视图中,把 Faces 和 Props的Size 值都修改成 2。
10)把Faces的 Element 0 和 Element 1 分别修改成face1 和 face2。Props的Element 0 和 Element 1 也做同样的操作 (修改成prop1和prop2):

11)播放场景,可以通过点击按钮选择组合的纹理:
3.8.3 实现原理
脚本让用户创建两组纹理:一个作为基础纹理(名为Faces),另一个作为Decal Map(贴图)(名为Props)。当场景播放时,纹理显示在GUI的按钮中,此按钮通过调用ChangeMaterial函数修改Avatar材质中的纹理。ChangeMaterial函数的参数接收分类(Face 或 Prop)和图片的索引,然后把相应的纹理贴图指定到纹理通道。

3.8.4 更多内容
本节简单地修改了不同的材质着色器的参数。可以查看Unity在线文档学习更多关于其他纹理的知识: http://unity3d.com/support/documentation/ScriptReference/Material.Set-Texture.html。另外,如果想学习shaders,可以查看文档: http://unity3d.com/support/resources/ assets/built-in-shaders。

时间: 2024-09-20 05:47:03

《Unity开发实战》——3.8节通过GUI实时组合纹理的相关文章

《Unity开发实战》——导读

目 录 前 言 第1章 Unity 4.X 入门1.1 引言1.2 安装Unity 4.X1.3 设置首选项1.4 了解和优化用户界面1.5 把Unity中创建的资源另存为Prefab1.6 了解Unity中的Content1.7 导入自己的Content1.8 导入Unity的包到项目中1.9 导入自定义包到项目中1.10 从项目中导出自定义包1.11 添加自定义包到Unity的包快捷列表中1.12 使用项目浏览视图 第2章 使用摄像机2.1 引言2.2 创建画中画效果2.3 在不同摄像机之间

《Unity开发实战》——3.2节创建反射材质

3.2 创建反射材质金属.车漆,以及光滑的塑料表面都是一些很常见的需要反射的材质的例子.幸运的是,Unity内置了反射着色器(reflective shader),配置好以后就可以帮我们实现想要的效果了. 3.2.1 准备工作本节需要准备两个纹理贴图:Base Map(底图)和Reflection Cubemap(反射立方图).底图得是一张RGBA的图片,alpha通道可以把反射级别指定成从完全不透明(黑色)到完全反射(白色).反射立方体贴图可能是由六块纹理组成,或者像本节教程这样,只有一个单独

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

2.5 从屏幕内容制作纹理本节会介绍如何从屏幕内容制作纹理.想在游戏中实现图片库或在场景的最后显示重要时刻的快照时,该功能则非常有用(竞速游戏和特技游戏中用得比较多). 2.5.1 准备工作示例代码中名为"0423_02_04_05"的文件夹中有一个名为basicTerrain的包需要导入,此包中有一个基础地形和一个可以用鼠标旋转的摄像机. 2.5.2 操作步骤请按照下面的步骤从屏幕内容创建纹理:1)将上面提到的包导入到Unity中,打开02_04_05场景.2)在Project视图中

《Unity开发实战》——1.3节设置首选项

1.3 设置首选项对有些人来说,将编辑器设置成自己喜欢的样子可能没必要.但是这样能加快开发速度,并且能让Unity用起来更顺手.本节将介绍如何将某些设置项调整成自己的首选项. 1.3.1 操作步骤请按照下面的步骤设置首选项:1)在Unity编辑器中,在菜单上选择Edit(编辑)| Preference(首选项设置)(如果你用的是Mac系统,则是Unity | Preference(首选项设置)).2)当Preference 窗口显示出来后,注意窗口中有几部分:General(通用).Extern

《Unity开发实战》——1.4节了解和优化用户界面

1.4 了解和优化用户界面游戏引擎,尤其是3D游戏引擎,用户在第一次使用时都会难于上手.尽管Unity已经清晰直观,界面友好,文档齐全,还是用本节来介绍一下如何操作用户界面(User Interface,UI)吧. 1.4.1 操作步骤先看一下Unity的用户界面:1)运行Unity.除非之前修改过,否则布局应该是宽模式(Wide Mode).通过菜单Window(窗口)| Layouts(布局)选择其他布局视图,例如 4 Split(4分窗口)或 2 by 3(两行三列),注意Views(视图

《Unity开发实战》——1.5节把Unity中创建的资源另存为Prefab

1.5 把Unity中创建的资源另存为Prefab在Unity中很容易就能创建基础几何对象,本节中,使用Unity的资源创建一个游戏对象(GameObject)然后将其在项目中另存为Prefab(预设). 1.5.1 操作步骤请按照下面的步骤创建Prefab(预设):1)在Unity编辑器中,依次打开 GameObject(游戏对象)| Create Other(创建其他)| Sphere(球体).2)在Hierarchy视图中,右击Sphere,在弹出菜单中选择rename(重命名)改名为"C

《Unity开发实战》——2.9节显示迷你地图

2.9 显示迷你地图在很多游戏中,给场景提供更宽的视角对于导航和信息来说,其好处是无法估量的.在第一人称或第三人称模式下,迷你地图非常适合作为玩家的额外视角. 2.9.1 准备工作示例代码中名为"0423_02_08"的文件夹中有一个名为miniMap的包需要导入,此包中有一个在简单迷宫中的第三人称控制器,以及一个名为marker的纹理. 2.9.2 操作步骤请按照下面的步骤创建迷你地图:1)导入miniMap Unity包,打开02_08文件夹中名为thirdPerson的场景.2)

《Unity开发实战》——3.6节使用cookie纹理模拟多云的户外环境

3.6 使用cookie纹理模拟多云的户外环境 在很多第一人称射击和恐怖逃生游戏中,光照和阴影可以使场影变得很复杂,有助于营造游戏气氛.本节中,将使用cookie纹理创建多云的户外环境. 3.6.1 准备工作 如果没有图片编辑器软件,或者想跳过自己制作图片的步骤,而把精力放在实现上,可以直接用0423_03_05文件夹中cloudCookie.tga图片. 3.6.2 操作步骤 请按照下面的步骤模拟多云的户外环境: 1)在图片编辑器中,创建一张512×512的图片. 2)使用黑色作为前景色,白色

《Unity开发实战》——2.4节自定义镜头光晕效果

2.4 自定义镜头光晕效果 过去15年里,在户外环境玩过游戏的任何玩家都知道:镜头光晕(lens flare)效果用于模拟明亮的光照穿透玩家的视野.虽然这个技术现在已经用滥了,但仍然出现在各类游戏中.本节将练习创建镜头光晕效果. 2.4.1 准备工作 强烈建议读者用图片编辑器(Adobe Photoshop或GIMP)打开图片.示例代码中的0423_02_03文件夹中有本节需要用到的镜头纹理(lens texture)的源代码. 2.4.2 操作步骤 请按照下面的步骤创建一个新的镜头光晕纹理并应