人物角色触碰有淡入淡出效果
1.设置盒装碰撞器,做到和树贴合
添加工具 DOTween
1.应用商店下载工具导入使用
编写脚本
- itemFAder脚本挂载到树的身上
- itemfadertrigger 挂载到人物身上
- 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的颜色淡入淡出的透明度的时间
}