赞
踩
插件的说明文档、安装方式:
Installation | Post Processing | 3.2.2
资源备份:
新建一个profile
Add effect添加需要的效果。
将这个对象的Layer设置为特定的层,这里我命名为Post-process。
一些Effect:
原始画面:
更高饱和度: Hue Vs Sat
改变色相:Hue Vs Hue
去色/保留:Hue Vs Sat
用于颜色替换的初始图片:
using UnityEngine.Rendering.PostProcessing;
[
public PostProcessVolume QuickVolume(int layer, float priority, params PostProcessEffectSettings[] settings)
]
示例:动态创建一个Bloom。并在Update中控制其亮度变化。
- using UnityEngine;
- using UnityEngine.Rendering.PostProcessing;
-
- public class Test : MonoBehaviour
- {
- PostProcessVolume m_Volume;
- Bloom m_bloom;
- float startValue = 12.68f;
-
- void Start()
- {
- // Create an instance of a Bloom
- m_bloom = ScriptableObject.CreateInstance<Bloom>();
- m_bloom.enabled.Override(true);
- m_bloom.intensity.Override(startValue);
- // Use the QuickVolume method to create a volume with a priority of 100, and assign the bloom to this volume
- m_Volume = PostProcessManager.instance.QuickVolume(gameObject.layer, 100f, m_bloom);
- }
- void Update()
- {
- // Change intensity using a sinus curve
- m_bloom.intensity.value = startValue + Mathf.Sin(Time.realtimeSinceStartup)*6f;
- }
- void OnDestroy()
- {
- RuntimeUtilities.DestroyVolume(m_Volume, true);
- }
- }
这段代码创建一个新的Bloom效果并将其分配给新生成的Volume。然后,在每一帧改变泛光的强度。为避免内存泄漏,请在不再需要时销毁Volume和附加的Profile。
您也可以手动编辑一个或多个Volume使用的现有配置文件(profile)。为此,您可以使用PostProcessVolume
. 每个字段的效果略有不同:
PostProcessProfile
类
包含以下实用方法:
实用方法 | 描述 |
---|---|
T AddSettings() | 为profile创建、添加且返回一个T类型的新effect。如果已经存在则抛出异常 |
PostProcessEffectSettings AddSettings(PostProcessEffectSettings effect) | 将您创建的effect添加到profile,并返回该effect。 |
void RemoveSettings() | 从profile中删除effect。如果不存在则抛出异常。 |
bool TryGetSettings(out T outSetting) | 从profile中获取effect。如果找到 profile,则返回 true,反之返回 false |
/PostProcessing/Runtime/PostProcessProfile.cs
您可以在源文件中找到更多方法。
重要提示:您必须销毁任何手动创建的 profile 或 effect 。
如果需要在运行中实例化PostProcessLayer
,必须将PostProcessResources
文件绑定到它。
AddComponent之后,调用PostProcessLayer
的Init()
,将PostProcessResources
文件作为参数使用。
例:
- var postProcessLayer = gameObject.AddComponent<PostProcessLayer>();
- postProcessLayer.Init(resources);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。