This commit is contained in:
2025-06-03 21:50:35 +08:00
parent 5bd103ceec
commit c8b0f8b375
46 changed files with 6296 additions and 1914 deletions
@@ -14,6 +14,8 @@ namespace AibisDream
[Header("References")]
[SerializeField] private SpriteRenderer targetSpriteRenderer;
[SerializeField] private SpriteRenderer backupSpriteRenderer;
// [SerializeField] private SpriteRenderer crossFadeRenderer1;
// [SerializeField] private SpriteRenderer crossFadeRenderer2;
// [SerializeField] private float fadeDuration = 0.5f;
// [SerializeField] private float crossFadeDuration = 2f;
[SerializeField] private UnityEngine.Rendering.Volume volume1;
@@ -45,6 +47,26 @@ namespace AibisDream
{
Debug.LogError("未设置备用SpriteRenderer");
}
// if (crossFadeRenderer1 != null)
// {
// crossFadeRenderer1.color = new Color(1f, 1f, 1f, 0f);
// crossFadeRenderer1.enabled = false;
// }
// else
// {
// Debug.LogError("未设置交叉淡入淡出SpriteRenderer1");
// }
// if (crossFadeRenderer2 != null)
// {
// crossFadeRenderer2.color = new Color(1f, 1f, 1f, 0f);
// crossFadeRenderer2.enabled = false;
// }
// else
// {
// Debug.LogError("未设置交叉淡入淡出SpriteRenderer2");
// }
}
public IEnumerator TriggerFlash(string imagePath, float fadeDuration = 0.2f)
@@ -60,6 +82,7 @@ namespace AibisDream
else
{
Debug.LogError($"无法加载闪回图片: {fullPath}");
yield break;
}
}
else
@@ -82,7 +105,7 @@ namespace AibisDream
}
else
{
yield return StartEndingCrossFade(endingSprite, fadeDuration);
yield return StartEndingFadeIn(endingSprite, fadeDuration);
}
currentEndingIndex++;
}
@@ -156,37 +179,44 @@ namespace AibisDream
currentSequence = null;
}
private IEnumerator StartEndingCrossFade(Sprite endingSprite, float crossFadeDuration = 2f)
{
isFading = true;
// private IEnumerator StartEndingCrossFade(Sprite endingSprite, float crossFadeDuration = 2f)
// {
// isFading = true;
// 设置备用渲染器的sprite
backupSpriteRenderer.sprite = endingSprite;
backupSpriteRenderer.color = new Color(1f, 1f, 1f, 0f);
// // 启用交叉淡入淡出渲染器
// crossFadeRenderer1.enabled = true;
// crossFadeRenderer2.enabled = true;
// 创建新的序列
currentSequence?.Kill();
currentSequence = DOTween.Sequence();
// // 设置第一个渲染器的sprite为当前显示的图片
// crossFadeRenderer1.sprite = targetSpriteRenderer.sprite;
// crossFadeRenderer1.color = new Color(1f, 1f, 1f, 1f);
// 当前sprite淡出,同时备用sprite淡入
currentSequence.Join(targetSpriteRenderer.DOFade(0f, crossFadeDuration).SetEase(Ease.InOutSine));
currentSequence.Join(backupSpriteRenderer.DOFade(1f, crossFadeDuration).SetEase(Ease.InOutSine));
// // 设置第二个渲染器的sprite为新图片
// crossFadeRenderer2.sprite = endingSprite;
// crossFadeRenderer2.color = new Color(1f, 1f, 1f, 0f);
// 等待序列完成
yield return currentSequence.WaitForCompletion();
// // 创建新的序列
// currentSequence?.Kill();
// currentSequence = DOTween.Sequence();
// 交换两个渲染器的角色
var tempSprite = targetSpriteRenderer.sprite;
targetSpriteRenderer.sprite = backupSpriteRenderer.sprite;
backupSpriteRenderer.sprite = tempSprite;
// // 第一个渲染器淡出,同时第二个渲染器淡入
// currentSequence.Join(crossFadeRenderer1.DOFade(0f, crossFadeDuration).SetEase(Ease.InOutSine));
// currentSequence.Join(crossFadeRenderer2.DOFade(1f, crossFadeDuration).SetEase(Ease.InOutSine));
// 重置透明度
targetSpriteRenderer.color = new Color(1f, 1f, 1f, 1f);
backupSpriteRenderer.color = new Color(1f, 1f, 1f, 0f);
// // 等待序列完成
// yield return currentSequence.WaitForCompletion();
isFading = false;
currentSequence = null;
}
// // 更新目标渲染器的sprite
// targetSpriteRenderer.sprite = endingSprite;
// targetSpriteRenderer.color = new Color(1f, 1f, 1f, 1f);
// // 禁用交叉淡入淡出渲染器
// crossFadeRenderer1.enabled = false;
// crossFadeRenderer2.enabled = false;
// isFading = false;
// currentSequence = null;
// }
private void OnDestroy()
{