引擎综合项目 Day2

139 阅读1分钟

人物角色触碰有淡入淡出效果

image.png

1.设置盒装碰撞器,做到和树贴合

image.png image.png

添加工具 DOTween

1.应用商店下载工具导入使用

image.png

编写脚本

image.png

  1. itemFAder脚本挂载到树的身上
  2. itemfadertrigger 挂载到人物身上
  3. settings 无需挂载 提供可更改的数据

1.ItenFAder 脚本

using System.Collections.Generic;
using UnityEngine;
using DG.Tweening; // 引入命名空间
using UnityEngine.Windows.Speech;

public class ItemFader : MonoBehaviour
{
    SpriteRenderer spriteRenderer;
    // 获取对应的SpriteRendered 组件、
    private void Awake()
    {
        spriteRenderer = GetComponent<SpriteRenderer>();
    }

    //淡入 fadeIN
    public void fadeIn()
    {
     Color colorTarget = new Color(1, 1, 1, Settings.fadeColorAlpha);
        spriteRenderer.DOColor(colorTarget, Settings.fadeColorDuration);
    }
    // 淡出 
    public void fadeOut()
    {
        Color colorTarget = new Color(1, 1, 1, 1);
        spriteRenderer.DOColor(colorTarget, Settings.fadeColorDuration);

    }
}

2.ItemFaderTrigger 脚本

using System.Collections.Generic;
using UnityEngine;

public class ItemFaderTrigger : MonoBehaviour
{
    private void OnTriggerEnter2D(Collider2D other)
    {
        //给所有碰到触发器的孩子对应的 SpriteRendered 更改他们的透明度

        ItemFader[] itemlList=other.GetComponentsInChildren<ItemFader>();
        foreach(var item in itemlList)
        {
            item.fadeIn();
        }
    }
    private void OnTriggerExit2D(Collider2D other)
    {
        ItemFader[] itemList = other.GetComponentsInChildren<ItemFader>();
        foreach(var item in itemList)
        {
            item.fadeOut();
        }
    }
}

3.Settings 脚本

using System.Collections.Generic;
using UnityEngine;

public class Settings 
{
    public const float fadeColorAlpha = 0.3f; //fadeColor的颜色淡入淡出的透明度的最低值
    public const float fadeColorDuration = 0.7f;//fadeColor的颜色淡入淡出的透明度的时间
}