改动与优化
This commit is contained in:
@@ -42,6 +42,7 @@ public class dailyTaskManager : MonoBehaviour
|
||||
private readonly List<GameObject> spawnedTaskItems = new List<GameObject>();
|
||||
private readonly Dictionary<int, Sprite> rewardSpriteByItemId = new Dictionary<int, Sprite>();
|
||||
private readonly Dictionary<int, storeItemSO> rewardStoreItemByItemId = new Dictionary<int, storeItemSO>();
|
||||
private Coroutine layoutRefreshRoutine;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
@@ -105,6 +106,7 @@ public class dailyTaskManager : MonoBehaviour
|
||||
UpdateTodayProgress(tasks.Count, completedCount);
|
||||
RefreshOneKeyRewardButtonState(tasks);
|
||||
RefreshTaskButtonState();
|
||||
RequestTaskListLayoutRebuild();
|
||||
}
|
||||
|
||||
private void SpawnTaskItem(int index, DailyTaskViewData taskView)
|
||||
@@ -116,6 +118,7 @@ public class dailyTaskManager : MonoBehaviour
|
||||
|
||||
var instance = Instantiate(dailyTaskItemPrefab, dailyTaskItemParent);
|
||||
spawnedTaskItems.Add(instance);
|
||||
UI_OrderedEntryAnimator.PlayFadeOnly(instance, index, 0.16f, 0.012f, true);
|
||||
|
||||
var controller = instance.GetComponent<taskPrefabController>();
|
||||
if (controller == null)
|
||||
@@ -309,6 +312,48 @@ public class dailyTaskManager : MonoBehaviour
|
||||
refreshTaskBtn.interactable = taskPool != null && DailyTaskService.EnsureInstance().GetRemainingRefreshCount() > 0;
|
||||
}
|
||||
|
||||
private void RequestTaskListLayoutRebuild()
|
||||
{
|
||||
if (dailyTaskItemParent == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (layoutRefreshRoutine != null)
|
||||
{
|
||||
StopCoroutine(layoutRefreshRoutine);
|
||||
layoutRefreshRoutine = null;
|
||||
}
|
||||
|
||||
if (isActiveAndEnabled)
|
||||
{
|
||||
layoutRefreshRoutine = StartCoroutine(RebuildTaskListLayoutNextFrame());
|
||||
return;
|
||||
}
|
||||
|
||||
RebuildTaskListLayoutNow();
|
||||
}
|
||||
|
||||
private System.Collections.IEnumerator RebuildTaskListLayoutNextFrame()
|
||||
{
|
||||
yield return null;
|
||||
RebuildTaskListLayoutNow();
|
||||
layoutRefreshRoutine = null;
|
||||
}
|
||||
|
||||
private void RebuildTaskListLayoutNow()
|
||||
{
|
||||
RectTransform target = dailyTaskItemParent as RectTransform;
|
||||
if (target == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Canvas.ForceUpdateCanvases();
|
||||
LayoutRebuilder.ForceRebuildLayoutImmediate(target);
|
||||
Canvas.ForceUpdateCanvases();
|
||||
}
|
||||
|
||||
private Sprite ResolveRewardSprite(userTasksPool.TaskDefinition definition)
|
||||
{
|
||||
if (definition == null)
|
||||
|
||||
Reference in New Issue
Block a user