Unity 之 使用后处理的方式实现暗角效果

这篇具有很好参考价值的文章主要介绍了Unity 之 使用后处理的方式实现暗角效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一,URP工程配置

  1. 在Hierarchy界面,创建空物体 GameObject,右键选择Volume菜单下的Global Volume
    Unity 之 使用后处理的方式实现暗角效果
    创建后的结果:
    Unity 之 使用后处理的方式实现暗角效果

  2. 设置Volume的Profile,点击右侧的New新创建一个配置文件,或者新建文件夹右键选择Create -> Volume Profile
    Unity 之 使用后处理的方式实现暗角效果
    创建完成后赋值过去:
    Unity 之 使用后处理的方式实现暗角效果

  3. 添加边角压暗效果:Vignette组件,Add Override -> Post- processing -> Vignette:
    Unity 之 使用后处理的方式实现暗角效果
    Unity 之 使用后处理的方式实现暗角效果

  4. 组件内容,从上到下依次是:颜色,中心点,强度,平滑度,圆
    Unity 之 使用后处理的方式实现暗角效果

  5. 开启摄像机的Post Processing选项:
    Unity 之 使用后处理的方式实现暗角效果

  6. 运行看下效果:
    Unity 之 使用后处理的方式实现暗角效果


二,代码调用

创建代码命名为PostProcessingProfile,并挂载到Global Volume 物体上如下图:

Unity 之 使用后处理的方式实现暗角效果

代码内容如下:
测试用例:按下A设置强度为1显示效果,按下S设置强度为0关闭效果:

using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;

public class PostProcessingProfile : MonoBehaviour
{    
    // 后处理的配置容器
    private Volume _volume;
    // 根据Inspector面板上的组件创建对应类型变量
    private Vignette _vignette;
    
    void Start()
    {
        // 获取容器
        _volume = GetComponent<Volume>();
        // 获取此容器下添加的组件
        _volume.profile.TryGet(out _vignette);
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.A))
        {
            SetIntensity(1);
        }
        if (Input.GetKeyDown(KeyCode.S))
        {
            SetIntensity(0);
        }
    }

    // 设置颜色
    void SetIntensity(Color color)
    {  
        _vignette.color.Override(color);
    }
    
    // 设置中心点
    void SetIntensity(Vector2 vector2)
    {  
        _vignette.center.Override(vector2);
    }
    
    // 设置强度 x:0~1
    void SetIntensity(float x)
    {  
        _vignette.intensity.Override(x);
    }
    
    // 设置平滑度 x:0~1
    void SetSmoothness(float x)
    {  
        _vignette.smoothness.Override(x);
    }
    
    // 是否是正圆
    void SetRounded(bool isRound)
    {  
        _vignette.rounded.Override(isRound);
    }
}

三,实现原理

相关推荐:Unity 之 Post Processing后处理不同项目配置(URP项目配置)

Post Processing
后期处理是指在摄影机绘制场景之后但在屏幕上渲染场景之前出现的全屏图像处理效果的通用术语。后期处理可以大大提高产品的视觉效果,只需很少的设置时间。

Post Processing 官方文档: https://docs.unity3d.com/Packages/com.unity.postprocessing@3.2/manual/index.html文章来源地址https://www.toymoban.com/news/detail-487275.html

到了这里,关于Unity 之 使用后处理的方式实现暗角效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity】两种方式实现弹跳平台/反弹玩家(玩家触发与物体自身触发事件实现蹦床的物理效果)

    只实现物理反弹的效果,不实现蹦床会有的视觉拉伸效果,请自行找相关代码 经过我的实践,我发现要想实现一个平台反弹的效果,要么就选择给player添加一个物理材质(平台加了没用), 但是这样会造成一个问题,如果我们要弄一个3d控制器的游戏,那么没理由让玩家什么

    2024年02月07日
    浏览(36)
  • 使用Unity里的ShaderGraph实现物体边框呼吸灯效果

    提前声明一下,以下效果需要在hdrp项目中进行。 首先创建好我们的正方体: 用来接下来的边框显示。 这里需要创建两个材质球,一个用于显示方块的材质,另一个用于边框的显示。 (Material用于方块材质,OutlineMat用于边框线) 为了更好地突出边框的视觉效果我这里给它加

    2024年04月22日
    浏览(53)
  • 在unity中使用EasyAR插件实现AR效果

    1.在EasyAR官网注册账号:https://www.easyar.cn/,然后进入自己的账号,去获取一个密钥 2.填写一些必要信息,点击确认即可获取密钥,然后查看自己新建的密钥 查看密钥 注:如果要将自己做的AR项目打包成安卓的apk,那么下面的Package Name要和密钥中的Package Name一致 3.下载EasyAR的插

    2024年02月10日
    浏览(55)
  • Unity实现杀戮尖塔出牌效果( 三. 贝塞尔曲线引导箭头绘制,卡牌使用效果制作)

    1. 攻击类型卡牌 ①拖拽超过一定高度之后卡牌会移动到手牌中心位置 ②出现攻击引导箭头 (塞贝尔曲线) ③成功指向目标怪物后打出 2. 技能能力类型卡牌 ①可自由拖动 ②脱离手牌高度后打出 这里只展示此效果核心代码内容,重复代码不做赘述,上期(二.鼠标指向卡牌时,

    2024年04月12日
    浏览(64)
  • Unity 引擎做残影效果——3、顶点偏移方式

    Unity实现残影效果   大家好,我是阿赵。   继续讲Unity引擎的残影做法。这次的残影效果和之前两种不太一样,是通过顶点偏移来实现的。   具体的效果是这样:   与其说是残影,这种效果更像是移动速度很快时造成的速度线,所以在移动过程中的效果还是非常好

    2024年02月14日
    浏览(34)
  • 【工具篇】Unity翻书效果的三种方式

    目录 一.工具介绍 1.基础说明 2.使用说明 二.模式一手动翻页(UGUI)

    2023年04月08日
    浏览(98)
  • Unity自定义后处理——模糊效果

      大家好,我是阿赵。   继续介绍后处理的做法,这一期介绍的是模糊效果的做法。 我们还是用这个角色作为背景来实现模糊效果 这是模糊后的效果 根据不同的参数,可以调整不同的模糊程度。   在介绍做法之前,首先要明确一个基本的认知,模糊效果是非常消耗

    2024年02月03日
    浏览(44)
  • 【unity实战】使用shader和shader Graph实现2d图片描边效果(附源码)

    最近在学习shader Graph相关内容,其实关于实现2d图片描边效果,网上可以看到很多教程,但是我发现大多数都是基于比较老旧的2018unity版本,可是我们实际开发使用可能是比较新的2021及以上版本,差别还是有的,实际在升级或者使用过程中,会遇到诸多问题,而且也很少有人

    2024年02月16日
    浏览(56)
  • Unity3D 基础——使用 Vector3.Lerp 实现缓动效果

     让一个物体从当前位置移动到另一个位置   Vector3-Lerp - Unity 脚本 API https://docs.unity.cn/cn/current/ScriptReference/Vector3.Lerp.html 1.在场景中新建两个 Cube 立方体,在 Scene 视图中将两个 Cude的位置错开。  2.新建 C# 脚本 MoveToTarget.cs(写完记得保存) 3.将脚本绑定到 Cude 上,然后将其

    2024年02月06日
    浏览(50)
  • 【实现100个unity特效之2】使用shader和shader Graph实现2d图片描边效果(附源码)

    最近在学习shader Graph相关内容,其实关于实现2d图片描边效果,网上可以看到很多教程,但是我发现大多数都是基于比较老旧的2018unity版本,可是我们实际开发使用可能是比较新的2021及以上版本,差别还是有的,实际在升级或者使用过程中,会遇到诸多问题,而且也很少有人

    2024年01月21日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包