8-1.存储点及画面效果

制作一个可以点亮的存储点

切图

第一张是存储点的基座,第二张是存储点上面的文字

将它们组合在一起就是存储点了

让存储点可交互

核心代码与宝箱的代码完全一致

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering.Universal;

public class SavePointRock : MonoBehaviour, IInteractable
{
    [Header("广播")]
    public VoidEventSO LoadGameDataEvent;

    [Header("变量参数")]
    public SpriteRenderer childSpriteRenderer;
    public Light2D light2D;
    public Sprite darkSprite;
    public Sprite lightSprite;
    public bool isDone = false;

    private void OnEnable()
    {
        childSpriteRenderer.sprite = isDone ? lightSprite : darkSprite;
        light2D.enabled = isDone;
    }

    public void TriggerAction()
    {
        LightUpRock();
    }

    /// <summary>
    /// 点亮石头
    /// </summary>
    private void LightUpRock()
    {
        if (isDone)
        {
            return;
        }

        childSpriteRenderer.sprite = lightSprite;
        isDone = true;
        light2D.gameObject.SetActive(true);
        gameObject.tag = "Untagged";

        // 保存数据
        LoadGameDataEvent.RaiseEvent();
    }
}

让存储点继承 IInteractable,在 OnEnable 的时候根据当前是否点亮显示不同的图片,并且在交互的方法 TriggerAction 里面执行点亮逻辑。点亮的话也是替换图片,标记已经完成,修改标签

接着把脚本挂载到存储点上面,给存储点添加一个trigger,并把它放到 Interactable 标签上

增强画面效果

修改全局光照

找到场景中的 Global Light 2D,把 Color 改成蓝色,这样整个场景就以蓝色为基调了

开启后处理

摄像机要勾选 Post Processing

图层也要勾选 Post Processing

让存储点更亮

在存储点上面添加 Spot Light 2D,配置如下

可以对比一下没有点光源的存储点

这个点光源也需要在存储点激活的时候开启,代码在前面 让存储点可交互 已经写了

修改全局 Volume

通过 GameObject -> Volume -> Global Volume,添加全局 Volume,然后创建一个新的 Profile,在里面添加 Bloom 曝光

下面两张图是有曝光和没曝光的区别

修改局部 Volume

在同一个场景中,我希望上面是亮地,下面是暗的,这个应该如何实现呢?可以通过 Box Volume 实现。

在上面添加一个 Box Volume,修改它的 Trigger 范围,修改 Volume 的 Blend Distance(这个距离是摄像机距离场景的距离,2D 游戏中摄像机距离场景为 10)以及 Color Adjustments

接着进入场景看看,有局部 Volume 和没有局部 Volume 的区别

额外补充

为了避免 Sign Sprite 叠加在其他物品上导致穿帮,应该在 Save Point Rock 物体上添加 Sort Group 组件,将其与子物体合并算为一个物体进行叠层排序,设置内容如下:

项目相关代码

代码仓库:https://gitee.com/nbda1121440/2DAdventure.git

标签:20240229_0826

posted @ 2024-02-29 08:55  hellozjf  阅读(25)  评论(0编辑  收藏  举报