漫画增加底图渐隐

This commit is contained in:
wuwenbo 2026-05-12 14:39:10 +08:00
parent eabcf21685
commit cd61989591
2 changed files with 41 additions and 4 deletions

View File

@ -11,7 +11,7 @@ using UnityEngine;
namespace TH1_Logic.Comic namespace TH1_Logic.Comic
{ {
// 淡入 淡出 左滑入 左滑出 右滑入 右滑出 上滑入 上滑出 下滑入 下滑出 字体浮现 整体上移入 整体上移出 // 淡入 淡出 左滑入 左滑出 右滑入 右滑出 上滑入 上滑出 下滑入 下滑出 字体浮现 整体上移入 整体上移出 整体淡出
public enum ComicActionType public enum ComicActionType
{ {
None = 0, None = 0,
@ -28,6 +28,7 @@ namespace TH1_Logic.Comic
TextAppear = 11, TextAppear = 11,
AllSlideInUp = 12, AllSlideInUp = 12,
AllSlideOutUp = 13, AllSlideOutUp = 13,
AllFadeOut = 14,
} }
@ -72,6 +73,7 @@ namespace TH1_Logic.Comic
ComicActionType.TextAppear => new TextAppearComicActionLogic(), ComicActionType.TextAppear => new TextAppearComicActionLogic(),
ComicActionType.AllSlideInUp => new AllSlideInUpComicActionLogic(), ComicActionType.AllSlideInUp => new AllSlideInUpComicActionLogic(),
ComicActionType.AllSlideOutUp => new AllSlideOutUpComicActionLogic(), ComicActionType.AllSlideOutUp => new AllSlideOutUpComicActionLogic(),
ComicActionType.AllFadeOut => new AllFadeOutComicActionLogic(),
_ => null _ => null
}; };
} }
@ -563,4 +565,39 @@ namespace TH1_Logic.Comic
data.Mono.Rect.anchoredPosition = _pos; data.Mono.Rect.anchoredPosition = _pos;
} }
} }
}
// 整体淡出 Action
public class AllFadeOutComicActionLogic : ComicActionLogic
{
private CanvasGroup GetOrAddCanvasGroup(ComicData data)
{
if (!data?.Mono) return null;
var canvasGroup = data.Mono.GetComponent<CanvasGroup>();
if (!canvasGroup) canvasGroup = data.Mono.gameObject.AddComponent<CanvasGroup>();
return canvasGroup;
}
private void SetAlpha(ComicData data, float alpha)
{
var canvasGroup = GetOrAddCanvasGroup(data);
if (!canvasGroup) return;
canvasGroup.alpha = Mathf.Clamp01(alpha);
}
public override void SetStartState(ComicData data, ComicSubItem item, ComicAction action)
{
SetAlpha(data, 1f);
action.Duration = 0.2f;
}
public override void SetEndState(ComicData data, ComicSubItem item, ComicAction action)
{
SetAlpha(data, 0f);
}
public override void SetUpdateAction(ComicData data, ComicSubItem item, ComicAction action, float ratio)
{
SetAlpha(data, 1f - ratio);
}
}
}

View File

@ -128,7 +128,7 @@ namespace TH1_Logic.Comic
} }
else else
{ {
data.InitFadeOutAction(ComicActionType.AllSlideOutUp); data.InitFadeOutAction(ComicActionType.AllFadeOut);
} }
data.FadeInAction.Index = index; data.FadeInAction.Index = index;
@ -346,4 +346,4 @@ namespace TH1_Logic.Comic
data.Mono = null; data.Mono = null;
} }
} }
} }