本节书摘来自华章社区《Unity开发实战》一书中的第3章,第3.9节鼠标悬停时高亮显示材质,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云栖社区“华章社区”公众号查看

3.9 鼠标悬停时高亮显示材质
高亮对象是让玩家知道这个对象可以交互的最有效的方式。在拼图游戏和点击式冒险游戏中很有用,3D用户界面中也可以用。

3.9.1 准备工作
本节中需要一个 3D 模型和一个 2D 纹理贴图,也可以直接导入0423_03_08文件夹中名为highlight的包。

3.9.2 操作步骤
请按照下面的步骤实现鼠标悬停时高亮材质:
1)导入包,并打开highlightScene 场景。
2)在Hierarchy 视图中,选择 3D 对象让其高亮(名为highlightCube)。
3)在 Inspector 视图中,应该会显示这个对象的材质,使用Shader的下拉菜单把值从Diffuse修改成VertexLit。
4)把baseBox 纹理应用到材质的Base纹理。
5)注意 VertexLit 着色器有一个属性叫做Emissive Color,默认是black。如果想预览其变化,可以修改成green(但要记得改回来)。
6)在Project视图中,通过下拉菜单创建一个C#脚本,命名为HighlightObject 然后打开。
7)替换成下面的代码:



10)通过Component | Physics | Box Collider 添加一个盒子碰撞器(box collider )到 highlightCube对象上。
11)测试场景。盒子应该会在鼠标悬停时高亮(点击时更亮)。

3.9.3 实现原理
box collider 通过盒子探测鼠标指针,像改变发光色值的触发器一样工作。mouseon 布尔变量用于探测鼠标按钮在box collider上是否松开,并相应地修改其颜色。

3.9.4 更多内容
可以用其他shaders实现更多有意思的东西,但是一定要修改特定的材质属性。

  1. 高亮自发光着色器
    如果在脚本中把_Emission 替换成 _Color自发光着色器就会工作了。
  2. 使用透明着色器
    透明着色器(Transparent shaders)也是一个有意思的东西。可以通过修改main color的Alpha值而达到修改透明度的目的(应该在脚本中的_Color相关的代码中)。

《Unity开发实战》——3.9节鼠标悬停时高亮显示材质相关推荐

  1. unity 通过OnMouseEnter(),OnMouseExit()实现鼠标悬停时各种效果(UI+3D物体)

    OnMouseEnter()   鼠标进入 OnMouseExit()   鼠标离开 一.3D物体 OnMouseEnter(),OnMouseExit()都是通过collider触发的,且碰撞器不能 ...

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

    本节书摘来自华章社区<Unity开发实战>一书中的第2章,第2.4节自定义镜头光晕效果,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云栖社 ...

  3. 《Unity开发实战》——2.2节创建画中画效果

    本节书摘来自华章社区<Unity开发实战>一书中的第2章,第2.2节创建画中画效果,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云栖社区& ...

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

    本节书摘来自华章社区<Unity开发实战>一书中的第1章,第1.3节设置首选项,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云栖社区&qu ...

  5. 《Unity开发实战》——3.4节创建高光纹理贴图

    本节书摘来自华章社区<Unity开发实战>一书中的第3章,第3.4节创建高光纹理贴图,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云栖社区 ...

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

    本节书摘来自华章社区<Unity开发实战>一书中的第2章,第2.9节显示迷你地图,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云栖社区&q ...

  7. css 缩放_【开发小技巧】06—如何使用CSS在鼠标悬停时缩放图像?

    英文 | https://www.geeksforgeeks.org/how-to-zoom-an-image-on-mouse-hover-using-css/?ref=rp翻译 | web前端开发 ...

  8. Leap Motion 之Unity 开发实战(一. 制作手的HandController)

    Leap Motion 之Unity开发实战 (一) 制作手的HandController 一. Unity官方包介绍 到如下链接下载 https://developer.leapmotion.com ...

  9. 《Unity开发实战》——2.8节用Shuriken制作粒子效果

    本节书摘来自华章社区<Unity开发实战>一书中的第2章,第2.8节用Shuriken制作粒子效果,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可 ...

最新文章

  1. SharePoint2013自定义登录页面
  2. [转]汇编语言的准备知识--给初次接触汇编者 2
  3. 在i386平台Linux 2.6 上实现一个系统调用
  4. python之tkinter图形界面
  5. OpenCV使用pointPolygonTest的实例(附完整代码)
  6. 李智:用数学来理解世界
  7. 计算机供用户使用的内存区域,操作系统期末考试试卷三)
  8. c语言中输入字符用什么作用是什么意思,C语言编程问题
  9. 水文勘测工比赛计算机基本应用,第四届全国水文勘测工大赛内业操作试题A卷.doc...
  10. 简单的故事品味生活,
  11. 【算法】剑指 Offer 56 - I. 数组中数字出现的次数 【重刷】太难了
  12. php yaf 教程,干货:PHP YAF框架实践教程——配置与多模块
  13. 数据结构之基于Java的链接队列实现
  14. 简便无刷新文件上传系统
  15. 备份及恢复计算机名及tcp-ip配置,tcp,ip协议,修复.docx
  16. [iOS] HealthKit 睡眠分析
  17. 如何利用PDF格式转换器在手机上完成PDF格式转换
  18. 关于Linux mint更换中文字体后全局楷体修改办法
  19. 从0到N建立高性价比的大数据平台
  20. oracle解锁账户以及修改密码

热门文章

  1. pycharm 皮肤主题及个性化设置
  2. Hadoop自带WordCount.java程序
  3. 神经网络中的激活函数的作用和选择
  4. [开发笔记]-页面切图、CSS前端设计、JS
  5. Openswan企业实战之ipsec ***加速ERP系统
  6. 复习笔记--计算机网络
  7. 10个最佳Node.js企业应用案例:从Uber到LinkedIn
  8. Create Custom Instruments
  9. Docker - 手动迁移镜像
  10. expdp / impdp 用法详解(Oracle)