漫画增加底图渐隐

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
{
// 淡入 淡出 左滑入 左滑出 右滑入 右滑出 上滑入 上滑出 下滑入 下滑出 字体浮现 整体上移入 整体上移出
// 淡入 淡出 左滑入 左滑出 右滑入 右滑出 上滑入 上滑出 下滑入 下滑出 字体浮现 整体上移入 整体上移出 整体淡出
public enum ComicActionType
{
None = 0,
@ -28,6 +28,7 @@ namespace TH1_Logic.Comic
TextAppear = 11,
AllSlideInUp = 12,
AllSlideOutUp = 13,
AllFadeOut = 14,
}
@ -72,6 +73,7 @@ namespace TH1_Logic.Comic
ComicActionType.TextAppear => new TextAppearComicActionLogic(),
ComicActionType.AllSlideInUp => new AllSlideInUpComicActionLogic(),
ComicActionType.AllSlideOutUp => new AllSlideOutUpComicActionLogic(),
ComicActionType.AllFadeOut => new AllFadeOutComicActionLogic(),
_ => null
};
}
@ -563,4 +565,39 @@ namespace TH1_Logic.Comic
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
{
data.InitFadeOutAction(ComicActionType.AllSlideOutUp);
data.InitFadeOutAction(ComicActionType.AllFadeOut);
}
data.FadeInAction.Index = index;
@ -346,4 +346,4 @@ namespace TH1_Logic.Comic
data.Mono = null;
}
}
}
}