【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;

    }


}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/633720.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络模型-Qinq配置与应用

Qinq配置与应用 通过配置Qinq来实现利用公网提供的VLAN100使企业1互通&#xff0c;利用公网提供的VLAN200使企业2互通不同企业之间互相隔离。并通过在连接其它厂商设备的接口上配置修改0in0外层VLAN Tag的TPID值&#xff0c;来实现与其它厂商设备的互通。 一、创建VLAN #在Swi…

薪资不公、晋升无望?动笔写一份申诉材料吧!

薪资不公、晋升无望&#xff1f;动笔写一份申诉材料吧&#xff01; 引言&#xff1a;每个努力工作的人都值得公平对待 在职场上&#xff0c;我们付出了汗水和智慧&#xff0c;期待着相应的回报——合理的工资和公正的晋升机会。然而&#xff0c;现实并不总是如此美好。当你感觉…

Thingsboard规则链:Entity Type Filter节点详解

在物联网&#xff08;IoT&#xff09;的世界里&#xff0c;数据的多样性与复杂性要求处理架构具备高度的灵活性和针对性。ThingsBoard作为一款强大的物联网平台&#xff0c;通过其规则链&#xff08;Rule Chains&#xff09;机制&#xff0c;让数据的自动化处理变得既强大又灵活…

谓词逻辑(一)

一、句子的谓词符号化 谓词逻辑&#xff0c;也叫一阶逻辑&#xff0c;它对每个最简单的命题尽一步进行分解。 1个体词&#xff1a;可以独立存在的客体。 2谓词&#xff1a;描述一个个体词的属性或多个个体词之间的关系&#xff08;可用一元函数和多元函数来理解&#xff09;…

18.SpringCloud Gateway

简介 SpringCloud Gateway是spingcloud家族的产品&#xff0c;使用netty实现的高性能服务网关&#xff0c;用于替换netflix公司的zuul网关实现。 参考地址&#xff1a; https://spring.io/projects/spring-cloud 术语 工作原理 Route Predicate Factories GatewayFilte…

降本增效!看TeeChart如何帮助实现海量「监测数据」可视化

“环境监测数据异常庞大&#xff0c;想要实现数据监测分析&#xff0c;除了要求控件具有良好的兼容性和稳定性&#xff0c;还对多样化、定制化的图表开发也有很高的要求” ——————— 项目负责工程师 王工 TeeChart Pro 最新版下载&#xff08;qun&#xff1a;740060302&…

C++初阶学习第十弹——探索STL奥秘(五)——深入讲解vector的迭代器失效问题

vector&#xff08;上&#xff09;&#xff1a;C初阶学习第八弹——探索STL奥秘&#xff08;三&#xff09;——深入刨析vector的使用-CSDN博客 vector&#xff08;中&#xff09;&#xff1a;C初阶学习第九弹——探索STL奥秘&#xff08;四&#xff09;——vector的深层挖掘和…

JVM学习-堆空间(一)

堆空间 每个进程&#xff08;JVM实例&#xff09;拥有唯一的方法区和堆空间&#xff0c;拥有唯一的Runtime实例(基于饿汉式方式)&#xff0c;线程共享进程的方法区和堆空间&#xff0c;每个线程拥有独立的程序计数器、本地方法栈和虚拟机栈。 一个JVM实例只存在一个堆内存&am…

windows docker desktop 更换镜像存储目录

windows docker desktop 更换镜像存储目录 方法&#xff1a;如图&#xff0c;Browse浏览一个新的目录并选中&#xff0c;确定后&#xff0c;程序会开始stop&#xff0c;在stop完成前&#xff0c;会持续迁移原有镜像到新的位置&#xff0c;你会发现目标位置的磁盘占用空间越来越…

内网穿透--Ngrok-入门-上线

免责声明:本文仅做技术交流与学习... 目录 Ngrok: 技术实现: 前提: 命令: 详细流程及图解: 平台Ngrok: Sunny-Ngrok内网转发内网穿透 - 国内内网映射服务器 支持的协议&#xff1a;tcp、http、https 支持的类型&#xff1a;正向代理、反向代理 --隧道开通免费的 --协议…

论文降重攻略!复盘降重至5.7%,aigc降到0%的经验!

论文降重攻略&#xff01;复盘降重至5.7%,aigc降到0%的经验&#xff01; 首先要提一个敲好用的论文降重软件-蝌蚪论文&#xff0c;当知网查重46%的时候有没有和我一样头都要炸的感觉&#xff0c;最关键的是自己改了几天还是没降下去。 索性删了好多标红的&#xff0c;但查重率…

别说废话!说话说到点上,项目高效沟通的底层逻辑揭秘

假设你下周要在领导和同事面前汇报项目进度&#xff0c;你会怎么做&#xff1f;很多人可能会去网上搜一个项目介绍模板&#xff0c;然后按照模板来填充内容。最后&#xff0c;汇报幻灯片做了 80 页&#xff0c;自己觉得非常充实&#xff0c;但是却被领导痛批了一顿。 这样的境…

四天学会JS高阶(学好vue的关键)——深入面向对象(理论+实战)(第三天)

***本章面试使用居多* 理论篇**一、编程思想 1.1 面向过程 JS 前端居多 按照步骤 性能高 适合跟硬件关系很紧密 没有面向对象易维护易复用易扩展 1.2 面向对象 java典型 按照功能&#xff0c;把事务分别成一个个对象&#xff0c;对象之间分工合作 比较灵活 适合多人合作的…

Java基础(三)- 多线程、网络通信、单元测试、反射、注解、动态代理

多线程基础 线程&#xff1a;一个程序内部的一条执行流程&#xff0c;只有一条执行流程就是单线程 java.lang.Thread代表线程 主线程退出&#xff0c;子线程存在&#xff0c;进程不会退出 可以使用jconsole查看 创建线程 有多个方法可以创建线程 继承Thread类 优点&#x…

MPLS VPN

不是公司的产品&#xff0c;是运营商对外提供的一种服务 没咋懂&#xff0c;oh my god

物体检测算法-R-CNN,SSD,YOLO

物体检测算法-R-CNN&#xff0c;SSD&#xff0c;YOLO 1 R-CNN2 SSD3 Yolo总结 1 R-CNN R-CNN&#xff08;Region-based Convolutional Neural Network&#xff09;是一种基于区域的卷积神经网络&#xff0c;是第一个成功将深度学习应用到目标检测上的算法。它主要由三个步骤组…

CSS学习笔记之中级教程(三)

14、CSS 下拉菜单 14.1 示例1&#xff1a;普通弹窗 思路&#xff1a;弹窗内容先隐藏display: none;&#xff0c;:hover时候修改弹窗部分的 display: block; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><me…

ROS2学习——节点话题通信(2)

目录 一、ROS2节点 1.概念 2.实例 &#xff08;1&#xff09;ros2 run &#xff08;2&#xff09;ros2 node list &#xff08;3&#xff09;remapping重映射 &#xff08;4&#xff09;ros2 node info 二、话题 &#xff08;1&#xff09; ros2 topic list &#xf…

Vue学习穿梭框Transfer组件

Vue学习Transfer组件 一、前言1、案例一2、案例二 一、前言 在 Vue 3 中使用 el-transfer 组件可以帮助你实现数据的穿梭功能&#xff0c;让用户可以将数据从一个列表转移到另一个列表。下面是一个简单示例&#xff0c;演示如何在 Vue 3 中使用 el-transfer 组件&#xff1a; …

ROS | 实现SLAM的功能

用launch文件启动Hector_Mapping的建图功能 1.引入launch文件 2.args是引入的设置好的rviz文件 Hector_Mapping建图的参数设置