当前位置: 首页 > news >正文

【Unity】免费的高亮插件——QuickOutline

除了常见的HighLightSystem来实现的高亮功能,其实还有很多的方法实现物体的高亮。
在 Unity资源商店 搜索OutLine,就会有很多免费好用的高亮插件。
在这里插入图片描述

下面介绍一下 QuickOutline这个插件,在 Unity资源商店 搜索到后,点击进去就可以看到 QuickOutline 的相关信息。
在这里插入图片描述

点击 在Unity中打开,将插件导入到工程里边。查看Demo你会发现有五种高亮模式。
在这里插入图片描述
依次分别是:

  1. Silhouette Only:模型被遮挡的部分整体高亮;

  2. Outline Hidden:模型被遮挡的部分轮廓高亮;

  3. Outline All:整个模型的轮廓高亮;

  4. Outline And Silhouette:整个模型轮廓高亮+被遮挡的部分整体高亮;

  5. Outline Visible:模型未被遮挡的部分轮廓高亮;

用法很简单,只需要给你想要高亮的模型挂上Outline这个脚本就可以

在这里插入图片描述

  1. OutLine Mode:选择高亮类型:
    (1)Silhouette Only:模型被遮挡的部分整体高亮;
    (2)Outline Hidden:模型被遮挡的部分轮廓高亮;
    (3)Outline All:整个模型的轮廓高亮;
    (4)Outline And Silhouette:整个模型轮廓高亮+被遮挡的部分整体高亮;
    (5)Outline Visible:模型未被遮挡的部分轮廓高亮;
  2. OutLine Color:选择高亮的颜色;
  3. OutLint Width :高亮轮廓的宽度;(调节这个值可以实现闪烁高亮的效果)
  4. Precompute OutLine:启用预计算:按顶点计算在编辑器中执行,并与对象序列化。 + "禁用预计算:在Awake()运行时执行逐顶点计算。 这可能会导致大网格的暂停。

小球被大球挡住时的高亮效果:
在这里插入图片描述

可以根据个人需求修改Outline脚本
修改代码部分:

case Mode.OutlineAndSilhouette:/*outlineMaskMaterial.SetFloat("_ZTest", (float)UnityEngine.Rendering.CompareFunction.LessEqual);outlineFillMaterial.SetFloat("_ZTest", (float)UnityEngine.Rendering.CompareFunction.Always);outlineFillMaterial.SetFloat("_OutlineWidth", outlineWidth);*/outlineMaskMaterial.SetFloat("_ZTest", outlineWidth);outlineFillMaterial.SetFloat("_ZTest", 0);outlineFillMaterial.SetFloat("_OutlineWidth", outlineWidth);break;

这里把整体高亮:
在这里插入图片描述

通过鼠标控制物体的高亮:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class MouseController : MonoBehaviour
{//鼠标选中的物体private GameObject selectedObj;void Update(){if (Input.GetMouseButtonDown(0)){if (selectedObj == null){RaycastHit hit = this.CastRay();if (!hit.collider.gameObject){return;}else{if (hit.collider.gameObject.GetComponent<Outline>()){selectedObj = hit.collider.gameObject;selectedObj.GetComponent<Outline>().enabled = true;}return;}}else{selectedObj.GetComponent<Outline>().enabled = false;selectedObj = null;}}}//创建射线检测private RaycastHit CastRay(){Vector3 screenFar = new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.farClipPlane);Vector3 screenNear = new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.nearClipPlane);Vector3 far = Camera.main.ScreenToWorldPoint(screenFar);Vector3 near = Camera.main.ScreenToWorldPoint(screenNear);RaycastHit hit;Physics.Raycast(near, far - near, out hit);return hit;}}

相关文章:

  • 【全开源】JAVA同城搬家系统源码小程序APP源码
  • Scrapy框架简单介绍及Scrapy项目编写详细步骤(Scrapy框架爬取豆瓣网站示例)
  • 在Ubuntu系统中使用Systemctl添加启动项的详细指南
  • Mybatis入门——其他查询操作和数据库连接池(4)
  • 【oracle】Oracle RAC中的GNS到底是什么?
  • ctfshow web入门 黑盒测试
  • linux input 驱动
  • 持续总结中!2024年面试必问 20 道 Rocket MQ面试题(二)
  • 语言模型的发展
  • 磁盘管理以及文件系统08
  • Python二叉树遍历算法
  • 防御恶意爬虫攻击
  • 学习Java的日子 Day49 函数,DOM
  • aws glue配置读取本地kafka数据源
  • 【Linux】关于获取进程退出状态中的core dump标志补充
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【css3】浏览器内核及其兼容性
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 2017年终总结、随想
  • 345-反转字符串中的元音字母
  • Angular Elements 及其运作原理
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • JDK 6和JDK 7中的substring()方法
  • Linux链接文件
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • vue的全局变量和全局拦截请求器
  • 汉诺塔算法
  • 聊聊sentinel的DegradeSlot
  • 那些被忽略的 JavaScript 数组方法细节
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • #pragam once 和 #ifndef 预编译头
  • (003)SlickEdit Unity的补全
  • (10)STL算法之搜索(二) 二分查找
  • (12)Hive调优——count distinct去重优化
  • (第61天)多租户架构(CDB/PDB)
  • (定时器/计数器)中断系统(详解与使用)
  • (接口封装)
  • (离散数学)逻辑连接词
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转)3D模板阴影原理
  • (自用)交互协议设计——protobuf序列化
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET中统一的存储过程调用方法(收藏)
  • [ 数据结构 - C++] AVL树原理及实现
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [100天算法】-x 的平方根(day 61)
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [Algorithm][动态规划][简单多状态DP问题][按摩师][打家劫舍Ⅱ][删除并获得点数][粉刷房子]详细讲解
  • [Android] Binder 里的 Service 和 Interface 分别是什么