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

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相关的代码中)。
时间: 2024-07-31 21:15:46

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

《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 在不同摄像机之间

css实现鼠标悬停时滑出层提示的方法

 本文实例讲述了css实现鼠标悬停时滑出层提示的方法.分享给大家供大家参考.具体分析如下: 这是一个简单的鼠标悬停提示特效,类似于alt标签,不过这一种是用纯CSS实现,扩展性好,而且在提示的层里可以加入图片或其它布局,这个要根据你的需要了.   代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tran

jQuery当鼠标悬停时放大图片的效果实例

这个效果最初源于小敏同志的一个想法,刚开始做的时候只能实现弹出的图片是固定的,不能随鼠标移动,最后加以改善,终于实现了比较理想的效果.今天就把制作该效果的经验与大家一同分享.先看看最终效果演示: HTML结构部分: 先编写一个无序列表的结构,a标签中的img标签用来存放小图片,a标签添加一个rel属性,用来存放大图片的路径. 复制代码 代码如下: <UL id=gallery sizcache="6" sizset="7">  <LI sizcac

jQuery当鼠标悬停时放大图片的效果实例_jquery

这个效果最初源于小敏同志的一个想法,刚开始做的时候只能实现弹出的图片是固定的,不能随鼠标移动,最后加以改善,终于实现了比较理想的效果.今天就把制作该效果的经验与大家一同分享.先看看最终效果演示: HTML结构部分:先编写一个无序列表的结构,a标签中的img标签用来存放小图片,a标签添加一个rel属性,用来存放大图片的路径. 复制代码 代码如下: <UL id=gallery sizcache="6" sizset="7">  <LI sizcach

jQuery实现列表自动循环滚动鼠标悬停时停止滚动_jquery

需要在页面中一个小的区域循环滚动展示新闻(公告.活动.图片等等),并且,鼠标悬停时停止滚动并提示,离开后,继续滚动. 效果图:  上干货 html: 复制代码 代码如下: <div id="news"> <ul> <li><a href="#" title="aaaaaaaaaaaaaaa">aaaaaaaaaaaaaaa</a></li> <li><a h

jQuery的鼠标悬停时放大图片的效果制作

效果如下图所示 我们先看完整的代码  代码如下 复制代码 <!DOCTYPE html> <html> <head> <meta charset="gb2312" /> <title>基于jQuery的鼠标悬停时放大图片的效果制作</title> <style> * { margin:0; padding:0; } img { vertical-align:bottom; border:none; }

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

3.4 创建高光纹理贴图有些表面可能既有光滑的区域,又有粗糙的区域,为了达到这个效果,可以使用高光贴图(specular maps). 3.4.1 准备工作为了便于讲解,本节将创建一个生锈的金属材质来演示specular属性如何增强现实.如果读者还没有用于生成高光材质的基础纹理,示例代码中名为"0423_03_03"的文件夹中有本节需要用到的素材. 3.4.2 操作步骤请按照下面的步骤创建高光材质:1)创建一个新的材质,命名为:rustyMetalMaterial.2)选择此材质.在I

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

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

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

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