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

简介:

本节书摘来自华章社区《Unity开发实战》一书中的第3章,第3.8节通过GUI实时组合纹理,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云栖社区“华章社区”公众号查看

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 的贴图,如下图所示:


6455ad464eef711435fba1b4ce2f02e5e2fb2654


a473e52c6b51e5bea2376c8417695ad21e6e44de

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


7d79bacb7c31e98c02e99b9762647aeaec32f6d3

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。

相关文章
|
4天前
|
数据可视化 C# 图形学
【Unity 3D】图形界面GUI的讲解及在C#中实现用户登录界面的实战(附源码)
【Unity 3D】图形界面GUI的讲解及在C#中实现用户登录界面的实战(附源码)
78 0
|
11月前
|
API 图形学
【unity专题篇】—GUI(IMGUI)思维导图详解
【unity专题篇】—GUI(IMGUI)思维导图详解
219 0
|
图形学
【Unity3D Shader】学习笔记-纹理采样②
前言 上一篇对同一纹理进行多次采样混合,本篇则是通过不同的纹理采样进行混合产生一些效果。 一、简单贴花 贴花简单来说就是在原贴图上面贴上细节贴图,就像墙面上的喷绘一样。下面这个只是最简单的例子,也就是只能在一张图(一个模型)上面贴其他细节。
231 0
【Unity3D Shader】学习笔记-纹理采样②
|
图形学
【Unity3D Shader】学习笔记-纹理采样①
前言 纹理采样属于在片段着色器中进行,通过提供的贴图和uv坐标使用tex2D进行采样。本篇主要介绍对同一纹理多次采样然后进行混合来获得不同的效果。 [声明:本笔记系列文章的图片资源都源自百度图片搜索,如有问题联系我] 一、简单重影 对同一纹理进行两次采样,采样时的UV两次坐标不一样,然后将采样的结果进行取平均得到最终的结果。
491 0
【Unity3D Shader】学习笔记-纹理采样①
|
图形学 异构计算
Unity 之 纹理类型导入设置和压缩格式介绍
你知道纹理导入正确设置和各平台压缩格式吗?本文教你如何将纹理资源导入到Unity并为其设置为对应平台需要使用的压缩格式,一起来看看吧~
813 0
Unity 之 纹理类型导入设置和压缩格式介绍
|
图形学 机器人
带你读《Unity游戏开发(原书第3版)》之三:模型、材质和纹理
本书主要介绍Unity2018的使用和游戏开发流程中涉及的各种知识。每一章的结构特别清晰,先综述该章要介绍的内容,然后一步步深入讲解,中间穿插着很多动手做的实践操作,可以让读者加深对某个概念、方法的理解,每章的最后还有一个小测验和一个稍微大一点的实践练习,用于巩固该章的学习内容。
|
图形学
Unity教程:GUI 界面开发
UI概述: UI永远是显示在屏幕的最前面上,不受变形、碰撞、光照的影响GUI概述:GUI是Graphical User Interface的缩写。Unity的图形界面系统能容易和快速创建出各种交互界面。
2286 0
|
图形学
【Unity Shader】(八) ------ 高级纹理之立方体纹理及光线反射、折射的实现
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37027464/article/details/83511904 笔者使用的是 Unity 2018.2.0f2 + VS2017,建议读者使用与 Unity 2018 相近的版本,避免一些因为版本不一致而出现的问题。
2156 0
|
存储 图形学
【Unity Shader】(四) ------ 纹理之法线纹理、单张纹理及遮罩纹理的实现
笔者使用的是 Unity 2018.2.0f2 + VS2017,建议读者使用与 Unity 2018 相近的版本,避免一些因为版本不一致而出现的问题。 【Unity Shader】(三) ------ 光照模型原理及漫反射和高光反射的实现 【Unity Shader】(五) ------ 透明效果之半透明效果的实现及原理   在游戏中,我们除了能看到游戏物体的形体轮廓,还能看到物体的一些具体外观,包括颜色,凹凸等。
1820 0