提交
This commit is contained in:
@@ -3,6 +3,9 @@ using System.Collections.Generic;
|
||||
using DG.Tweening;
|
||||
using UnityEngine.Rendering;
|
||||
using System.Collections;
|
||||
using AibisDream.Framework;
|
||||
using UnityEngine.EventSystems;
|
||||
using AibisDream.FixSystem;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
@@ -42,7 +45,7 @@ namespace AibisDream
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerator TriggerFlash(string imagePath, float fadeDuration = 0.5f)
|
||||
public IEnumerator TriggerFlash(string imagePath, float fadeDuration = 0.2f)
|
||||
{
|
||||
if (!isFading)
|
||||
{
|
||||
@@ -63,7 +66,7 @@ namespace AibisDream
|
||||
}
|
||||
}
|
||||
|
||||
public void TriggerEnding(string imagePath,float fadeDuration=2f)
|
||||
public IEnumerator TriggerEnding(string imagePath, float fadeDuration = 2f)
|
||||
{
|
||||
if (!isFading)
|
||||
{
|
||||
@@ -73,13 +76,11 @@ namespace AibisDream
|
||||
{
|
||||
if (currentEndingIndex == 0)
|
||||
{
|
||||
// 第一张图片使用淡入效果
|
||||
StartEndingFadeIn(endingSprite,fadeDuration);
|
||||
yield return StartEndingFadeIn(endingSprite, 0.01f);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 后续图片使用交叉淡入淡出效果
|
||||
StartEndingCrossFade(endingSprite,fadeDuration);
|
||||
yield return StartEndingCrossFade(endingSprite, fadeDuration);
|
||||
}
|
||||
currentEndingIndex++;
|
||||
}
|
||||
@@ -100,6 +101,7 @@ namespace AibisDream
|
||||
isFading = true;
|
||||
targetSpriteRenderer.sprite = flashSprite;
|
||||
targetSpriteRenderer.color = new Color(1f, 1f, 1f, 0f);
|
||||
StartCoroutine(CameraKit.Instance.ShakeCamera(fadeDuration, 0.25f, 60));
|
||||
|
||||
// 创建新的序列
|
||||
currentSequence?.Kill();
|
||||
@@ -125,7 +127,7 @@ namespace AibisDream
|
||||
DialogController.Instance.StartDialogNode("闪回完成");
|
||||
}
|
||||
|
||||
private void StartEndingFadeIn(Sprite endingSprite,float fadeDuration=2f)
|
||||
private IEnumerator StartEndingFadeIn(Sprite endingSprite, float fadeDuration = 2f)
|
||||
{
|
||||
isFading = true;
|
||||
targetSpriteRenderer.sprite = endingSprite;
|
||||
@@ -137,17 +139,18 @@ namespace AibisDream
|
||||
|
||||
// 添加淡入效果
|
||||
currentSequence.Append(targetSpriteRenderer.DOFade(1f, fadeDuration).SetEase(Ease.InOutSine));
|
||||
if (volume1 != null)
|
||||
currentSequence.Join(DOTween.To(() => volume1.weight, x => volume1.weight = x, 1f, fadeDuration).SetEase(Ease.InOutSine));
|
||||
// if (volume1 != null)
|
||||
// currentSequence.Join(DOTween.To(() => volume1.weight, x => volume1.weight = x, 1f, fadeDuration).SetEase(Ease.InOutSine));
|
||||
|
||||
// 等待序列完成
|
||||
yield return currentSequence.WaitForCompletion();
|
||||
|
||||
// 完成后重置状态
|
||||
currentSequence.OnComplete(() => {
|
||||
isFading = false;
|
||||
currentSequence = null;
|
||||
});
|
||||
isFading = false;
|
||||
currentSequence = null;
|
||||
}
|
||||
|
||||
private void StartEndingCrossFade(Sprite endingSprite,float crossFadeDuration=2f)
|
||||
private IEnumerator StartEndingCrossFade(Sprite endingSprite, float crossFadeDuration = 2f)
|
||||
{
|
||||
isFading = true;
|
||||
|
||||
@@ -163,20 +166,20 @@ namespace AibisDream
|
||||
currentSequence.Join(targetSpriteRenderer.DOFade(0f, crossFadeDuration).SetEase(Ease.InOutSine));
|
||||
currentSequence.Join(backupSpriteRenderer.DOFade(1f, crossFadeDuration).SetEase(Ease.InOutSine));
|
||||
|
||||
// 完成后交换两个渲染器的角色
|
||||
currentSequence.OnComplete(() => {
|
||||
// 交换sprite
|
||||
var tempSprite = targetSpriteRenderer.sprite;
|
||||
targetSpriteRenderer.sprite = backupSpriteRenderer.sprite;
|
||||
backupSpriteRenderer.sprite = tempSprite;
|
||||
// 等待序列完成
|
||||
yield return currentSequence.WaitForCompletion();
|
||||
|
||||
// 重置透明度
|
||||
targetSpriteRenderer.color = new Color(1f, 1f, 1f, 1f);
|
||||
backupSpriteRenderer.color = new Color(1f, 1f, 1f, 0f);
|
||||
// 交换两个渲染器的角色
|
||||
var tempSprite = targetSpriteRenderer.sprite;
|
||||
targetSpriteRenderer.sprite = backupSpriteRenderer.sprite;
|
||||
backupSpriteRenderer.sprite = tempSprite;
|
||||
|
||||
isFading = false;
|
||||
currentSequence = null;
|
||||
});
|
||||
// 重置透明度
|
||||
targetSpriteRenderer.color = new Color(1f, 1f, 1f, 1f);
|
||||
backupSpriteRenderer.color = new Color(1f, 1f, 1f, 0f);
|
||||
|
||||
isFading = false;
|
||||
currentSequence = null;
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
|
||||
Reference in New Issue
Block a user