【推荐100个unity插件】3D物品描边效果——Quick Outline免费插件

发布时间:2024年01月24日

前言

关于3D描边,其实之前有用shader弄过一个:【实现100个unity特效】shader实现3D物品闪光和描边效果

但是很遗憾的是他不支持URP项目,所以现在推荐这款插件,他能很好的支持URP,对于HDRP我没有试过,官方也没有说明,需要的可以去试试看

地址

https://assetstore.unity.com/packages/tools/particles-effects/quick-outline-115488#reviews
在这里插入图片描述

介绍

快速轮廓是一个世界空间轮廓工具,可为任何对象添加实心轮廓。

它非常适合 VR。

许多轮廓着色器在屏幕空间中工作,这使得它们的速度很慢,而且它们不支持 MSAA。如果他们确实在世界空间中工作,那么他们在硬角落里有“间隙”。快速大纲解决了这些问题。

Quick Outline 最初是为 VR 设计的,因此它支持实例化立体渲染和 MSAA。它在任何 HMD 中看起来都很棒,并且不会影响帧速率。

  • 专为 VR 设计(包括单次通过)
  • 支持 MSAA
  • 与后处理堆栈
    兼容 - 多种轮廓模式
  • 轻巧且高性能

使用例子

预制体挂载脚本
在这里插入图片描述

效果
在这里插入图片描述
代码控制轮廓显示隐藏

private void Update()
{
    // 发射一条从相机视口中心向屏幕内部发出的射线
    Ray ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0));
    RaycastHit hit;

    // 检测射线是否击中物体
    if (Physics.Raycast(ray, out hit))
    {
        GameObject objectHitByRaycast = hit.transform.gameObject;

        // 如果被射线击中的物体有 Weapon 组件
        if (objectHitByRaycast.GetComponent<Weapon>())
        {
            // 获取 Weapon 组件并启用 outline
            Weapon hoveredWeapon = objectHitByRaycast.GetComponent<Weapon>();
            hoveredWeapon.GetComponent<Outline>().enabled = true;
        }
        else
        {
            // 如果被射线击中的物体没有 Weapon 组件,或者没有 Outline 组件,则禁用 outline
            if (hoveredWeapon != null)
            {
                hoveredWeapon.GetComponent<Outline>().enabled = false;
            }
        }
    }
}

完结

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,以便我第一时间收到反馈,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!

好了,我是向宇https://xiangyu.blog.csdn.net

一位在小公司默默奋斗的开发者,出于兴趣爱好,最近开始自学unity,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!php是工作,unity是生活!如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~

在这里插入图片描述

文章来源:https://blog.csdn.net/qq_36303853/article/details/135534120
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。