在 ZEPETO 世界中应用 Post-Processing
如果你希望为你的世界添加炫酷的视觉效果,或是提升整体图形质量,可以尝试使用 Unity 的 Post-processing 功能。
通过添加多种视觉特效,你可以打造出更具沉浸感和完成度的世界。
开始使用 Post-processing
安装 Post Processing 包

在 Unity 中,打开 Window > Package Manager。将 Packages 选项设置为 Unity Registry,然后在列表中查找并安装 Post Processing 包。
复制 ZepetoCamera 预制体

在 Project 文件夹中,进入 Packages > ZEPETO.Character.Controller > Runtime > _Resources > Camera 找到 ZepetoCamera 预制体,将其复制并粘贴到 Assets 文件夹中。 然后将复制的预制体命名为 ZepetoCameraCopy。
连接 ZepetoCameraCopy

在 Hierarchy 中,选择 Managers > ZepetoPlayers 在 Inspector 中,将 ZepetoCameraCopy 拖放到 Prefab 字段中。
创建新 Layer

在 ZepetoCameraCopy 的 Inspector 中,点击 Layer > Add Layer 来添加一个新的 Layer 然后在 Layer 字段中选择你新创建的 Layer。
📘 备注
你只能使用 Layer 3 和 Layer 6 以上的图层
Layer 0~2 以及 Layer 4~5 是 Unity 的默认图层,无法修改。
应用 Post-processing
Post-processing 的主要应用方式有两种:
- Global:对整个世界应用效果
- Local:只在角色进入特定区域时应用效果
Global 应用方式
为 ZepetoCameraCopy 添加 Post-process Layer 和 Post-process Volume

在 Inspector 中点击 Add Component,分别添加 Post-process Layer 和 Post-process Volume 组件 在 Post-process Layer 的 Volume Blending > Layer 字段中选择新建的 Layer。
接着,在 Post-process Volume 中勾选 Is Global 选项 在 Profile 字段中设置包含你所需效果的 Post Process Profile
如果没有现成的 Profile,可以点击旁边的 New 按钮创建一个新的 Profile。
向 Post Process Profile 添加效果

如果你新建了一个 Profile,选中它后点击 Add Effect 添加你需要的效果,并根据需要调整参数。

在更改参数前,请先勾选每个字段左边的复选框。
✏️ 提示
即使在 Play Mode 下你也可以自由调整效果,而且这些更改在退出 Play Mode 后也会保留。
你可以在场景运行时在 Inspector 中实时调整设置,并观察效果的即时反馈,进行更精准的调整。
<效果示例>



Local 应用方式
为 ZepetoCameraCopy 添加 Post-process Layer

在 ZepetoCameraCopy 的 Inspector 中添加 Post-process Layer 组件 点击 This 按钮设置 Trigger,并在 Layer 字段中设置你创建的 Layer。
创建 Post-process Volume 对象

在 Hierarchy 中点击 + > 3D Object > Post-process Volume 创建新的 Volume 对象

将该对象的 Layer 设置为你新建的 Layer,并取消勾选 Is Global。
向 Post-process Volume 添加效果

点击 Add Effect 添加你需要的效果,并调整参数来实现你想要的视觉风格。
放置 Post-process Volume

将 Post-process Volume 放置在你希望效果生效的位置。
<Local 应用示例>

通过脚本控制 Post-process Volume
你也可以通过脚本来控制 Post-process Volume 的启用与禁用。 以下是使用 Toggle 控制开关效果的示例:
创建一个新的 GameObject
在 Hierarchy 中点击 + > Create Empty 创建一个新的 GameObject 将其命名为 PostProcessManager。
创建新的 Toggle UI
在 Hierarchy 中点击 + > UI > Toggle 创建一个新的 Toggle 元素。
创建新脚本
在 Project 窗口中点击 + > ZEPETO > TypeScript 创建一个新脚本
将其命名为 PostProcessScript,打开脚本并粘贴以下代码:
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { GameObject } from 'UnityEngine';
import { PostProcessVolume } from 'UnityEngine.Rendering.PostProcessing';
import { Toggle } from 'UnityEngine.UI';
export default class PostProcessScript extends ZepetoScriptBehaviour {
public onOffToggle: Toggle;
public postProcessObj: GameObject;
private _postProsessVolume: PostProcessVolume;
Start() {
this._postProsessVolume = this.postProcessObj.GetComponent<PostProcessVolume>();
this.onOffToggle.onValueChanged.AddListener(()=>{
this._postProsessVolume.profile.settings.ForEach(
// 현재 profile settings의 모든 설정을 on/off합니다.
(setting)=>{
setting.active = !setting.active;
}
);
});
}
}将脚本添加到 PostProcessManager

在 Hierarchy 中选中 PostProcessManager 在 Inspector 中点击 Add Component > Zepeto Script,然后将 PostProcessScript 拖到 Script 字段中。
然后将 Toggle 拖到 On Off Toggle 字段,将 Post-process Volume 拖到 Post Process Obj 字段。
<例子>

现在,当你在场景中点击 Toggle 按钮时,Post-processing 效果就会在对应区域启用或关闭。