From ea8058406c7d7c9d527c21b971efe0d55eee7fde Mon Sep 17 00:00:00 2001 From: LiRuoChen <571244399@qq.com> Date: Fri, 19 Sep 2025 20:08:27 +0800 Subject: [PATCH] backup --- Runtime/Core/Vessel/ObjectVessel.cs | 2 +- Runtime/Core/Vessel/ObjectVessel2.cs | 2 +- Runtime/Core/Vessel/ObjectVessel3.cs | 2 +- Runtime/DynamicActivitiesImpact.meta | 3 + .../UIDynamicActiveImpact.cs | 322 +++ .../UIDynamicActiveImpact.cs.meta | 3 + Runtime/FlipPage/FlipPageComponentManager.cs | 16 +- Runtime/FlipPage/GeneralDataFlipPage.cs | 46 + Runtime/FlipPage/GeneralDataFlipPage.cs.meta | 3 + .../FlipPage/XericFlipPageIndexVesselBase.cs | 385 ++-- Runtime/FlipPage/翻页.prefab | 1734 +++++++++++++++++ Runtime/FlipPage/翻页.prefab.meta | 7 + 12 files changed, 2370 insertions(+), 155 deletions(-) create mode 100644 Runtime/DynamicActivitiesImpact.meta create mode 100644 Runtime/DynamicActivitiesImpact/UIDynamicActiveImpact.cs create mode 100644 Runtime/DynamicActivitiesImpact/UIDynamicActiveImpact.cs.meta create mode 100644 Runtime/FlipPage/GeneralDataFlipPage.cs create mode 100644 Runtime/FlipPage/GeneralDataFlipPage.cs.meta create mode 100644 Runtime/FlipPage/翻页.prefab create mode 100644 Runtime/FlipPage/翻页.prefab.meta diff --git a/Runtime/Core/Vessel/ObjectVessel.cs b/Runtime/Core/Vessel/ObjectVessel.cs index 9c9aa93..ee695d6 100644 --- a/Runtime/Core/Vessel/ObjectVessel.cs +++ b/Runtime/Core/Vessel/ObjectVessel.cs @@ -10,7 +10,7 @@ namespace XericUI.Core.Vessel /// /// [Serializable] - public class ObjectVessel : VesselBase + public sealed class ObjectVessel : VesselBase where T0 : Object { [SerializeField] diff --git a/Runtime/Core/Vessel/ObjectVessel2.cs b/Runtime/Core/Vessel/ObjectVessel2.cs index 68844f8..9157b18 100644 --- a/Runtime/Core/Vessel/ObjectVessel2.cs +++ b/Runtime/Core/Vessel/ObjectVessel2.cs @@ -6,7 +6,7 @@ using Object = UnityEngine.Object; namespace XericUI.Core.Vessel { [Serializable] - public class ObjectVessel : VesselBase + public sealed class ObjectVessel : VesselBase where T0 : Object where T1 : Object { diff --git a/Runtime/Core/Vessel/ObjectVessel3.cs b/Runtime/Core/Vessel/ObjectVessel3.cs index 677eb33..13ee54c 100644 --- a/Runtime/Core/Vessel/ObjectVessel3.cs +++ b/Runtime/Core/Vessel/ObjectVessel3.cs @@ -6,7 +6,7 @@ using Object = UnityEngine.Object; namespace XericUI.Core.Vessel { [Serializable] - public class ObjectVessel : VesselBase + public sealed class ObjectVessel : VesselBase where T0 : Object where T1 : Object where T2 : Object diff --git a/Runtime/DynamicActivitiesImpact.meta b/Runtime/DynamicActivitiesImpact.meta new file mode 100644 index 0000000..ef0553a --- /dev/null +++ b/Runtime/DynamicActivitiesImpact.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 73eb6a65472648ddafa15ed1a6f525a2 +timeCreated: 1757990443 \ No newline at end of file diff --git a/Runtime/DynamicActivitiesImpact/UIDynamicActiveImpact.cs b/Runtime/DynamicActivitiesImpact/UIDynamicActiveImpact.cs new file mode 100644 index 0000000..5d51513 --- /dev/null +++ b/Runtime/DynamicActivitiesImpact/UIDynamicActiveImpact.cs @@ -0,0 +1,322 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using UnityEngine.Pool; +using UnityEngine.Serialization; +using UnityEngine.UI; +using XericLibrary.Runtime.MacroLibrary; +using XericLibrary.Runtime.Type.SpatialAlgorithm; +using XericLibraryEditor.Debug; +using XericUI.Core.Base; +using XericUI.OverrideLayout; +#if ODIN_INSPECTOR +using Sirenix.OdinInspector; +#endif + +namespace XericUI.DynamicActivitiesImpact +{ + /// + /// 导入动æ€�激活组件(需è¦�外部控制部分检查与生命周期事件) + /// + [Obsolete("直接用XericScrollRect")] + public class UIDynamicActiveImpact : XericUIBehaciour + { + #region 字段属性 + +#if ODIN_INSPECTOR + [LabelText("主è¦�容器")] + [BoxGroup("基本容器", centerLabel: true)] +#endif + [Tooltip("容器å­�集应呈现平摊的样å¼�")] + public RectTransform containerTransform = null; + +#if ODIN_INSPECTOR + [BoxGroup("基本容器")] + [LabelText("é�®ç½©å®¹å™¨")] +#endif + [Tooltip("用作é�®ç½©è®¡ç®—的组件")] + public RectTransform maskRectTransform = null; + +#if ODIN_INSPECTOR + [BoxGroup("基本容器")] + [LabelText("容器排版控制")] +#endif + public LayoutGroup layoutGroup; + + +#if ODIN_INSPECTOR + [BoxGroup("容器性能")] + [LabelText("预加载åƒ�素范围")] +#endif + public float preloadMargin = 200f; + +#if ODIN_INSPECTOR + [BoxGroup("容器性能")] + [LabelText("å�¯è¢«å¯Ÿè§‰çš„å“�应å�˜åŒ–长度")] +#endif + public float discernibleDistance = 10f; + +#if ODIN_INSPECTOR + [BoxGroup("容器性能")] + [LabelText("æ¯�秒检查更新的次数")] +#endif + [Range(0.1f, 50)] + public float updateRateLimit = 2; + + #endregion + + #region 容器æˆ�员 + + internal bool _layoutDirty; + internal bool _transformDirty; + internal int _lastChildrenCount; + internal Vector2 _lastPosition; + internal HashSet _activeSet = null; + internal HashSet _allObjsSet = null; + + private HashSetPool _tempQuadUIHashSetPool = new HashSetPool(); + + /// + /// ä¿�存所有ui对象的四å�‰æ ‘ + /// + protected QuadTree QuadUITargetTree; + + + public virtual IEnumerable ContainerChildren => containerTransform.GetChildren().Select(a => a.RectTransform()); + public virtual int ContainerChildrenCount => containerTransform.childCount; + public virtual Rect ContainerTransformRectRange => containerTransform.ToQuadTreeRect(); + public virtual Rect MaskRectTransformRectRange => maskRectTransform.ToQuadTreeRect(); + public bool IsLayoutDirty => _layoutDirty; + public bool IsTransformDirty => _transformDirty; + public float SaftyDiscernibleUpdateTime => Mathf.Max(1f / 60, 1f / updateRateLimit); + + public LayoutGroup MainLayoutGroup => transform.GetComponent(); + + #endregion + + #region 生命周期 + +#if UNITY_EDITOR + private Vector3[] vertex1 = new Vector3[4]; + private Vector3[] vertex2 = new Vector3[4]; + private Vector3[] vertex3 = new Vector3[4]; + private void OnDrawGizmosSelected() + { + var lossyScale = rectTransform.lossyScale; + var scale = lossyScale * preloadMargin; + var dis2 = lossyScale * discernibleDistance; + + containerTransform.GetWorldCorners(vertex1); + + vertex2[0] = new Vector3(vertex1[0].x - scale.x, vertex1[0].y - scale.y, vertex1[0].z); + vertex2[1] = new Vector3(vertex1[1].x - scale.x, vertex1[1].y + scale.y, vertex1[1].z); + vertex2[2] = new Vector3(vertex1[2].x + scale.x, vertex1[2].y + scale.y, vertex1[2].z); + vertex2[3] = new Vector3(vertex1[3].x + scale.x, vertex1[3].y - scale.y, vertex1[3].z); + + vertex3[0] = new Vector3(vertex1[0].x - dis2.x, vertex1[0].y - dis2.y, vertex1[0].z); + vertex3[1] = new Vector3(vertex1[1].x - dis2.x, vertex1[1].y + dis2.y, vertex1[1].z); + vertex3[2] = new Vector3(vertex1[2].x + dis2.x, vertex1[2].y + dis2.y, vertex1[2].z); + vertex3[3] = new Vector3(vertex1[3].x + dis2.x, vertex1[3].y - dis2.y, vertex1[3].z); + + Gizmos.color = Color.yellow; + MacroGizmosDraw.DrawPolygonLineByPointArray(vertex3); + MacroGizmosDraw.DrawGizmosRectLinkLine(vertex1, vertex2, Color.grey, Color.cyan, true); + + } +#endif + + protected override void Awake() + { + base.Awake(); + // 容器 + if (containerTransform == null) + containerTransform = rectTransform; + // é�®ç½© + if (maskRectTransform == null) + { + var mask = transform.GetComponentInParent(); + maskRectTransform = mask.RectTransform(); + } + // 布局 + if (layoutGroup == null) + layoutGroup = transform.GetComponentInParent(); + if (layoutGroup is XericHorizontalOrVerticalLayoutGroup xericLayoutGroup) + { + xericLayoutGroup.layoutIgnoreInactive = false; + } + + CheckIsDirty(); + } + + protected override void OnEnable() + { + base.OnEnable(); + } + + protected override void OnDisable() + { + base.OnDisable(); + } + + private float accTime = 0; + + protected virtual void Update() + { + if (accTime < SaftyDiscernibleUpdateTime) + { + accTime += Time.unscaledDeltaTime; + return; + } + // 毕竟这里ä¸�是粒å­�计算器 + accTime = accTime % SaftyDiscernibleUpdateTime; + + if (IsLayoutDirty) + { + ResetDirtyFlag(); + RebuildQurdTree(); + } + else if (IsTransformDirty) + { + ResetDirtyFlag(); + } + } + + protected override void OnRectTransformDimensionsChange() + { + base.OnRectTransformDimensionsChange(); + CheckIsDirty(); + } + + private void OnDestroy() + { + // æ�¢å¤�所有元素的原始状æ€� + foreach (var element in _allObjsSet) + { + if (element != null && _activeSet.Contains(element)) + { + element.gameObject.SetActive(true); + } + } + } + + #endregion + + #region 刷新框架 + + /// + /// 设置布局è„� + /// + public void LayoutDirty() + => _layoutDirty = true; + + /// + /// 设置å�˜æ�¢è„� + /// + public void TransformDirty() + => _transformDirty = true; + + /// + /// é‡�ç½®è„�标记 + /// + private void ResetDirtyFlag() + { + _layoutDirty = false; + _transformDirty = false; + } + + /// + /// 检查容器è„� + /// + public virtual void CheckIsDirty() + { + if (QuadUITargetTree == null || // å››å�‰æ ‘ä¸�存在? + _lastChildrenCount != ContainerChildrenCount // æˆ�员数é‡�明显ä¸�对 + ) + { + LayoutDirty(); + BackupQuadRectValue(); + return; + } + + // todo 这里暂时å�ªç®€å�•考虑直æ�¥ç›´åŽ»çš„ç§»åŠ¨æ–¹å¼�,如果有其他å¤�æ�‚移动,需è¦�修改判别æ�¡ä»¶ + var deltaPosIsDirty = Mathf.Abs(QuadUITargetTree.RootRect.position.sqrMagnitude - _lastPosition.sqrMagnitude) < discernibleDistance; + + if (deltaPosIsDirty // å�‘生ä¸�å�¯å¿½è§†çš„å�˜æ�¢ï¼Ÿ + ) + { + TransformDirty(); + BackupQuadRectValue(); + return; + } + } + + /// + /// é‡�建四å�‰æ ‘ + /// + public void RebuildQurdTree() + { + // é‡�建四å�‰æ ‘ + QuadUITargetTree = new QuadTree(ContainerTransformRectRange, a => a.rect); + // 记录å�‚æ•° + BackupQuadRectValue(); + } + + /// + /// ä¿�存自动é‡�建四å�‰æ ‘所需的å�‚æ•° + /// + /// + protected virtual void BackupQuadRectValue() + { + _lastPosition = ContainerTransformRectRange.position; + _lastChildrenCount = ContainerChildrenCount; + } + + +#if ODIN_INSPECTOR + [Button("更新所有å�¯è§�性")] +#endif + /// + /// 更新所有æˆ�员的å�¯è§�性 + /// + public virtual void UpdateAllObjectVisible() + { + if (QuadUITargetTree == null) + { + Debug.LogError($"在更新æˆ�员å�¯è§�性之å‰�,需è¦�ç¡®ä¿�å››å�‰æ ‘存在ï¼�"); + return; + } + + var visibalSet = QuadUITargetTree.Retrieve(MaskRectTransformRectRange); + ContainerChildren.ForEachDo(obj => + { + obj.gameObject.SetActive(visibalSet.Contains(obj)); + }); + } + + /// + /// è¦�求控制布局组的激活一次,æ��供为何激活的原因 + /// + /// 由于新增æˆ�员导致布局更新 + /// 由于销æ¯�æˆ�员导致布局更新 + public virtual void UpdateLayoutGroupOnce(bool hasIncreased, bool hasDecreased) + { + MainLayoutGroup.enabled = true; + StartCoroutine(WaitForLayoutDisable()); + return; + IEnumerator WaitForLayoutDisable() + { + if (CanvasUpdateRegistry.IsRebuildingLayout()) + yield return new WaitForEndOfFrame(); + else + yield return new WaitForFixedUpdate(); + MainLayoutGroup.enabled = false; + } + } + + #endregion + } +} + + diff --git a/Runtime/DynamicActivitiesImpact/UIDynamicActiveImpact.cs.meta b/Runtime/DynamicActivitiesImpact/UIDynamicActiveImpact.cs.meta new file mode 100644 index 0000000..1dbfbf5 --- /dev/null +++ b/Runtime/DynamicActivitiesImpact/UIDynamicActiveImpact.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 48016863e20f4c61a91245c593d575da +timeCreated: 1757990480 \ No newline at end of file diff --git a/Runtime/FlipPage/FlipPageComponentManager.cs b/Runtime/FlipPage/FlipPageComponentManager.cs index abf85ef..e79b342 100644 --- a/Runtime/FlipPage/FlipPageComponentManager.cs +++ b/Runtime/FlipPage/FlipPageComponentManager.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.ComponentModel; +using System.Linq; using Deconstruction.Runtime.UI; using JetBrains.Annotations; using Sirenix.OdinInspector; @@ -164,6 +165,8 @@ namespace XericUI.FlipPage #endif [CanBeNull] internal ObjectVessel pageSelectableVessel; + + protected internal override void OnPageVisible(bool quickVisit) { @@ -184,7 +187,7 @@ namespace XericUI.FlipPage protected internal override void OnPageInvisible(bool quickVisit) { } - + } /// @@ -303,6 +306,8 @@ namespace XericUI.FlipPage return result; } + + public override void RemovePage(int pageIndex) { base.RemovePage(pageIndex); @@ -316,11 +321,10 @@ namespace XericUI.FlipPage public override void ClearPages() { - foreach (var pageInfo in PageInfos) - { - var page = pageInfo as PageComponentInfo; - pageButtonPool.DirectlyRelease(page.pageSelectableVessel.Target0.gameObject); - } + PageInfos + .OfType() + .Where(a => a.pageSelectableVessel.IsValidVessel()) + .ForEachDo(a => pageButtonPool.DirectlyRelease(a.pageSelectableVessel!.Target0.gameObject)); pageSelectButton.Clear(); base.ClearPages(); RefreshLabelTextTotalPageCount(); diff --git a/Runtime/FlipPage/GeneralDataFlipPage.cs b/Runtime/FlipPage/GeneralDataFlipPage.cs new file mode 100644 index 0000000..f56139f --- /dev/null +++ b/Runtime/FlipPage/GeneralDataFlipPage.cs @@ -0,0 +1,46 @@ +using System; +using UnityEngine; +using UnityEngine.Pool; + +namespace XericUI.FlipPage +{ + /// + /// 翻页组件管ç�†å™¨(通用数æ�®å±‚) + /// + [AddComponentMenu("Xeric UI Vessel/FlipPage/General FilpPage Manager")] + public class GeneralDataFlipPage : FlipPageComponentManager + { + #region 生命周期 + + protected override void Awake() + { + base.Awake(); + } + + #endregion + + #region 容器控制 + + /// + /// 添加一个数æ�®é¡¹ç›® + /// + /// æ•°æ�®é¡¹ç›® + /// + public void AddItem(T item) + where T : ItemComponentInfo + { + base.AddItem(item, () => AddPageLast(new PageComponentInfo())); + } + + /// + /// 添加一个数æ�®é¡¹ç›® + /// + /// æ•°æ�®é¡¹ç›® + public override void AddItem(ItemInfo item) + { + base.AddItem(item, () => AddPageLast(new PageComponentInfo())); + } + + #endregion + } +} \ No newline at end of file diff --git a/Runtime/FlipPage/GeneralDataFlipPage.cs.meta b/Runtime/FlipPage/GeneralDataFlipPage.cs.meta new file mode 100644 index 0000000..e388cff --- /dev/null +++ b/Runtime/FlipPage/GeneralDataFlipPage.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b51ce3649dd74e438a0d79a2935a866f +timeCreated: 1758195174 \ No newline at end of file diff --git a/Runtime/FlipPage/XericFlipPageIndexVesselBase.cs b/Runtime/FlipPage/XericFlipPageIndexVesselBase.cs index e762199..70ce847 100644 --- a/Runtime/FlipPage/XericFlipPageIndexVesselBase.cs +++ b/Runtime/FlipPage/XericFlipPageIndexVesselBase.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using Sirenix.OdinInspector; using UnityEngine; +using UnityEngine.Pool; using UnityEngine.Serialization; using UnityEngine.UI; using XericLibrary.Runtime.MacroLibrary; @@ -67,136 +68,6 @@ namespace XericUI.FlipPage #endregion - #region ÀàÄÚÀàÐÍ - - /// - /// Ò³ÃæÐÅÏ¢ - /// - [Serializable] - public abstract class PageInfo - { - #region ×Ö¶ÎÊôÐÔ - - /// - /// Ò³ÃæÃû³Æ - /// -#if ODIN_INSPECTOR - [LabelText("Ò³ÃæÃû³Æ")] -#endif - public string name = DateTime.Now.Ticks.ToString(); - - /// - /// Ò³ÃæÄÚÏîÄ¿Áбí - /// -#if ODIN_INSPECTOR - [LabelText("Ò³ÃæÏîÄ¿ÐÅÏ¢")] -#endif - public List itemInfos = new List(); - - /// - /// ´ÓÁ㿪ʼ¼ÆÊýµÄÒ³ÃæÏ±ê - /// -#if ODIN_INSPECTOR - [LabelText("Ò³ÃæË÷Òý[0, n]")] -#endif - public int pageNumber { get; internal set; } - - #endregion - - #region ÉúÃüÖÜÆÚ - - /// - /// Ò³Ãæ´´½¨Ê± - /// - protected internal virtual void OnPageCreated(XericFlipPageIndexVesselBase parent) - { - - } - - /// - /// Ò³ÃæÏú»Ùʱ - /// - protected internal virtual void OnPageDestroy(XericFlipPageIndexVesselBase parent) - { - - } - - /// - /// Ò³ÃæÏÔʾʱ - /// - /// ¿ìËÙä¯ÀÀ(ÓÃÓÚÇø·Ö¶¯»­ºÍÂß¼­£¬ÎªÕæÊ±£¬²»Ó¦µ±ÔÚ¶¯»­Ê¼þºó¼ÌÐø¼ÓÔØÊý¾Ý) - protected internal abstract void OnPageVisible(bool quickVisit); - - /// - /// Ò³ÃæÒþ²ØÊ± - /// - /// ¿ìËÙä¯ÀÀ(ÓÃÓÚÇø·Ö¶¯»­ºÍÂß¼­£¬ÎªÕæÊ±£¬²»Ó¦µ±ÔÚ¶¯»­Ê¼þºó¼ÌÐø¼ÓÔØÊý¾Ý) - protected internal abstract void OnPageInvisible(bool quickVisit); - - #endregion - - public override string ToString() - { - return $"[{nameof(PageInfo)}] ({name})"; - } - } - - /// - /// ÏîÄ¿ÐÅÏ¢ - /// - [Serializable] - public abstract class ItemInfo - { - #region ×Ö¶ÎÊôÐÔ - -#if ODIN_INSPECTOR - [LabelText("ÏîÄ¿Ãû³Æ")] -#endif - public string name = DateTime.Now.Ticks.ToString(); - - /// - /// ´ÓÁ㿪ʼ¼ÆÊýµÄÏîĿϱê - /// -#if ODIN_INSPECTOR - [LabelText("ÏîÄ¿Ë÷Òý[0, n]")] -#endif - public int itemNumber { get; internal set; } - - #endregion - - #region ÉúÃüÖÜÆÚ - - /// - /// µ±ÏîÄ¿ÏÔʾʱ - /// - protected internal abstract void OnItemVisible(); - - /// - /// µ±ÏîÄ¿Òþ²ØÊ± - /// - protected internal abstract void OnItemInvisible(); - - #endregion - - - /// - /// ÊÇ·ñͨ¹ý¹ýÂËÆ÷ - /// - /// ´«Èë¹ÜÀíÆ÷£¬½¨Ò齫¹ýÂËÆ÷·ÅÔÚ¹ÜÀíÆ÷ÖУ¬È»ºó¾ßÌåµÄͨ¹ý¹æÔòдÔÚÕâÀ¸ù¾Ý¶ÔÏóµÄ²»Í¬£¬Í¨¹ýµÄ¹æÔò¶¼²»Ò»Ñù¡£ - /// - public virtual bool PassFilter(XericFlipPageIndexVesselBase manager) - { - return true; - } - - public override string ToString() - { - return $"[{nameof(ItemInfo)}] ({name})"; - } - } - - #endregion - #region ×Ö¶ÎÊôÐÔ /// @@ -219,12 +90,12 @@ namespace XericUI.FlipPage /// ËùÓÐÒ³Ãæ /// - private LinkedList _pageInfos = new LinkedList(); + private readonly LinkedList _pageInfos = new LinkedList(); /// /// ËùÓÐÁбíÏîÄ¿ /// - private HashSet _itemInfos = new HashSet(); + private readonly HashSet _itemInfos = HashSetPool.Get(); /// @@ -272,18 +143,18 @@ namespace XericUI.FlipPage #region ÉúÃüÖÜÆÚ - protected override void Awake() - { - base.Awake(); - } - protected override void Start() { base.Start(); - FlipPage(currentPageIndex); } + protected override void OnDestroy() + { + base.OnDestroy(); + HashSetPool.Release(_itemInfos); + } + #endregion #region ·­Ò³¹ÜÀí @@ -335,6 +206,8 @@ namespace XericUI.FlipPage // Èç¹ûË÷ÒýÆ«ÒÆ£¬Öð¸öÒÆ¶¯ else if (pageIndexOffset > 0) { + // ÏȹرÕÒ³ÃæÔªËØ + CurrentPageNode.Value.CallChildItemInvisible(); for (var i = 0; i < pageIndexOffset; i++) { var next = CurrentPageNode!.Next; @@ -343,16 +216,22 @@ namespace XericUI.FlipPage } else if (pageIndexOffset < 0) { + // ÏȹرÕÒ³ÃæÔªËØ + CurrentPageNode.Value.CallChildItemInvisible(); for (var i = 0; i > pageIndexOffset; i--) { var previa = CurrentPageNode!.Previous; SwitchPage(previa, _pageInfos.First, i - 1 > pageIndexOffset); } } - // ûÓз­¶¯ÓÐЧҳ£¬Í˳ö + // ûÓз­¶¯ÓÐЧҳ£¬Ö±½ÓÍ˳ö else return; - + // ¿ÉÄÜʱµ±Ç°²»´æÔÚÈκÎÒ³Ãæ + if (CurrentPageNode == null) + return; + // Ò³ÃæÔªËØ¼¤»î + CurrentPageNode.Value.CallChildItemVisible(); currentPageIndex = pageIndex; OnFlipPage(); @@ -411,6 +290,8 @@ namespace XericUI.FlipPage public void FlipPageToEnd() => FlipPage(_pageInfos.Count - 1); + + /// /// Ìí¼ÓÒ³ÃæÔÚ¿ªÍ· /// @@ -449,12 +330,34 @@ namespace XericUI.FlipPage // Ìí¼ÓÒ³Ãæ _pageInfos.AddLast(pageInfo); // Ö´ÐÐÒ³ÃæÉúÃüÖÜÆÚ - pageInfo.OnPageDestroy(this); + pageInfo.OnPageCreated(this); // Ë¢ÐÂÒ³Ãæ FlipPage(currentPageIndex, true); return pageInfo; } + /// + /// °´¶ÔÏóÒýÓÃɾ³ýÒ³Ãæ + /// + /// + public virtual void RemovePage(PageInfo pageInfo) + { + // Èç¹ûÒÆ³ýµÄÊǵ±Ç°Ò³Ã棬ִÐйرղÙ×÷ + if (CurrentPageNode.Value == pageInfo) + { + pageInfo.OnPageInvisible(true); + CurrentPageNode = null; + } + // Ö´ÐÐÒ³ÃæÉúÃüÖÜÆÚ + pageInfo.OnPageDestroy(this); + // Ò³ÃæË÷ÒýÒÆ³ý + _pageInfos.Remove(pageInfo); + // Ë¢ÐÂÒ³Ãæ + FlipPage(currentPageIndex, true); + var index = PageInfos.IndexOf(a => a == pageInfo); + RemovePage(index); + } + /// /// ÒÆ³ýÒ³Ãæ£¨Ò³ÃæÉϵÄÊý¾ÝÄÚÈÝÒ²»áÒ»Í¬ÒÆ³ý£© /// @@ -508,7 +411,16 @@ namespace XericUI.FlipPage /// public T IndexOfPageInfo(int pageIndex) where T : PageInfo - => _pageInfos.LandedIndex(pageIndex) as T; + => IndexOfPageInfo(pageIndex) as T; + + /// + /// »ñÈ¡Ë÷ÒýϵÄÒ³Ãæ + /// + /// + /// + /// + public PageInfo IndexOfPageInfo(int pageIndex) + => _pageInfos.LandedIndex(pageIndex); /// /// Çå³ýËùÓÐÒ³Ãæ (ËùÓÐÒ³ÃæÊý¾ÝÒ²»áÒ»Í¬ÒÆ³ý) @@ -567,7 +479,7 @@ namespace XericUI.FlipPage /// /// Ìí¼ÓÊý¾ÝÏîÄ¿ /// - public void AddItem(ItemInfo item, Func addPage) + public virtual void AddItem(ItemInfo item, Func addPage) { // ÏòǰѰÕÒ¿Õȱ£¨ÕâÔÚÒ³Ãæ¶¼±»×¼È·Ìî³äµÄÇé¿öÏÂ×îÓÇ£© var firstVacancy = _pageInfos @@ -577,22 +489,24 @@ namespace XericUI.FlipPage if (firstVacancy != null) { firstVacancy.Value.itemInfos.Add(item); + _itemInfos.Add(item); return; } if (addPage == null) { - Debug.LogError("µ±Ç°Ò³ÃæÒÑÂú£¬Êý¾ÝÏîĿ˳λÌí¼Óµ½ÐÂÒ³ÃæÖУ¬µ«Î´Ö¸¶¨Ò³Ãæ´´½¨º¯Êý£¬Ìí¼Ó¹ý³ÌÒÑÍ˳ö", this); + Debug.LogError("µ±Ç°Ò³ÃæÒÑÂú£¬Êý¾ÝÏîÄ¿ÆÚÍû˳λÌí¼Óµ½ÐÂÒ³ÃæÖУ¬µ«Î´Ö¸¶¨Ò³Ãæ´´½¨º¯Êý£¬Ìí¼Ó¹ý³ÌÒÑÍ˳ö", this); return; } // н¨Ò»¸öÒ³Ãæ´æ·ÅÊý¾Ý addPage.Invoke().itemInfos.Add(item); + _itemInfos.Add(item); } /// /// ÒÆ³ýËùÓаüº¬¸ø¶¨ÏîÄ¿µÄλÖã¨Õâ»áÔÚÒ³ÃæÉÏÁôÏ¿Õȱ£© /// /// - public void RemoveItem(ItemInfo item) + public virtual void RemoveItem(ItemInfo item) { foreach (var a in AllItemInfos .Adjoint() @@ -600,10 +514,11 @@ namespace XericUI.FlipPage .Reverse()) { ItemIndex2PageIndex(a.index); + } } - public void RemoveItem(int indexItem) + public virtual void RemoveItem(int indexItem) { } @@ -641,6 +556,15 @@ namespace XericUI.FlipPage { return itemIndex / DefaultItemCountPerPage; } + + /// + /// µ±Ç°·­Ò³¹ÜÀíÆ÷Öаüº¬¸ø¶¨Êý¾ÝÏîÄ¿ + /// + /// + /// + public bool Contains(ItemInfo item) + => _itemInfos.Contains(item); + /// /// »ñÈ¡±¸·ÝËùÓÐÊý¾ÝÏîÄ¿ @@ -723,5 +647,174 @@ namespace XericUI.FlipPage #endregion + #region ÀàÄÚÀàÐÍ + + /// + /// Ò³ÃæÐÅÏ¢ + /// + [Serializable] + public abstract class PageInfo + { + #region ×Ö¶ÎÊôÐÔ + + /// + /// Ò³ÃæÃû³Æ + /// +#if ODIN_INSPECTOR + [LabelText("Ò³ÃæÃû³Æ")] +#endif + public string name = DateTime.Now.Ticks.ToString(); + + /// + /// Ò³ÃæÄÚÏîÄ¿Áбí + /// +#if ODIN_INSPECTOR + [LabelText("Ò³ÃæÏîÄ¿ÐÅÏ¢")] +#endif + public List itemInfos; + + /// + /// ´ÓÁ㿪ʼ¼ÆÊýµÄÒ³ÃæÏ±ê + /// +#if ODIN_INSPECTOR + [LabelText("Ò³ÃæË÷Òý[0, n]")] +#endif + public int pageNumber { get; internal set; } + + #endregion + + #region ÉúÃüÖÜÆÚ + + /// + /// Ò³Ãæ´´½¨Ê± + /// + protected internal virtual void OnPageCreated(XericFlipPageIndexVesselBase parent) + { + // »ñÈ¡Áбí + itemInfos = ListPool.Get(); + } + + /// + /// Ò³ÃæÏú»Ùʱ + /// + protected internal virtual void OnPageDestroy(XericFlipPageIndexVesselBase parent) + { + // ´Ó¹þÏ£±íÖÐÒÆ³ý + foreach (var itemInfo in itemInfos) + parent._itemInfos.Remove(itemInfo); + // ÊÍ·ÅÁбí + if (itemInfos != null) + ListPool.Release(itemInfos); + + } + + /// + /// Ò³ÃæÏÔʾʱ + /// + /// ¿ìËÙä¯ÀÀ(ÓÃÓÚÇø·Ö¶¯»­ºÍÂß¼­£¬ÎªÕæÊ±£¬²»Ó¦µ±ÔÚ¶¯»­Ê¼þºó¼ÌÐø¼ÓÔØÊý¾Ý) + /// + /// Ò³ÃæÖеijÉÔ±»á×Ô¶¯ÔÚ·Ç¿ìËÙä¯ÀÀģʽÏÂ×Ô¶¯Ö´ÐÐÏàÓ¦µÄ¼¤»îº¯Êý + /// + protected internal abstract void OnPageVisible(bool quickVisit); + + /// + /// Ò³ÃæÒþ²ØÊ± + /// + /// ¿ìËÙä¯ÀÀ(ÓÃÓÚÇø·Ö¶¯»­ºÍÂß¼­£¬ÎªÕæÊ±£¬²»Ó¦µ±ÔÚ¶¯»­Ê¼þºó¼ÌÐø¼ÓÔØÊý¾Ý) + /// + /// Ò³ÃæÖеijÉÔ±»á×Ô¶¯ÔÚ·Ç¿ìËÙä¯ÀÀģʽÏÂ×Ô¶¯Ö´ÐÐÏàÓ¦µÄ¼¤»îº¯Êý + /// + protected internal abstract void OnPageInvisible(bool quickVisit); + + #endregion + + /// + /// ´«µÝ×ÓÏ»î»Øµ÷ʼþ + /// + protected internal virtual void CallChildItemVisible() + { + itemInfos + .Where(a => a != null) + .ForEachDo(itemInfo => itemInfo.OnItemVisible()); + } + + /// + /// ´«µÝ×ÓÏî·Ç¼¤»î»Øµ÷ʼþ + /// + protected internal virtual void CallChildItemInvisible() + { + itemInfos + .Where(a => a != null) + .ForEachDo(itemInfo => itemInfo.OnItemInvisible()); + } + + public override string ToString() + { + return $"[{nameof(PageInfo)}] ({name})"; + } + } + + /// + /// ÏîÄ¿ÐÅÏ¢ + /// + [Serializable] + public abstract class ItemInfo + { + #region ×Ö¶ÎÊôÐÔ + +#if ODIN_INSPECTOR + [LabelText("ÏîÄ¿Ãû³Æ")] +#endif + public string name = DateTime.Now.Ticks.ToString(); + + /// + /// ´ÓÁ㿪ʼ¼ÆÊýµÄÏîĿϱê + /// +#if ODIN_INSPECTOR + [LabelText("ÏîÄ¿Ë÷Òý[0, n]")] +#endif + public int itemNumber { get; internal set; } + + #endregion + + #region ÉúÃüÖÜÆÚ + + /// + /// µ±ÏîÄ¿ÏÔʾʱ + /// + /// + /// Õâ»áÔÚÒ³ÃæÏÔʾ֮ºóÖ´ÐÐ + /// + protected internal abstract void OnItemVisible(); + + /// + /// µ±ÏîÄ¿Òþ²ØÊ± + /// + /// + /// Õâ»áÔÚÒ³Ãæ¹Ø±Õ֮ǰִÐÐ + /// + protected internal abstract void OnItemInvisible(); + + #endregion + + + /// + /// ÊÇ·ñͨ¹ý¹ýÂËÆ÷ + /// + /// ´«Èë¹ÜÀíÆ÷£¬½¨Ò齫¹ýÂËÆ÷·ÅÔÚ¹ÜÀíÆ÷ÖУ¬È»ºó¾ßÌåµÄͨ¹ý¹æÔòдÔÚÕâÀ¸ù¾Ý¶ÔÏóµÄ²»Í¬£¬Í¨¹ýµÄ¹æÔò¶¼²»Ò»Ñù¡£ + /// + public virtual bool PassFilter(XericFlipPageIndexVesselBase manager) + { + return true; + } + + public override string ToString() + { + return $"[{nameof(ItemInfo)}] ({name})"; + } + } + + #endregion + } } \ No newline at end of file diff --git a/Runtime/FlipPage/翻页.prefab b/Runtime/FlipPage/翻页.prefab new file mode 100644 index 0000000..5d3eb43 --- /dev/null +++ b/Runtime/FlipPage/翻页.prefab @@ -0,0 +1,1734 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1209793828667724322 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7803728723482469378} + - component: {fileID: 493161845038096055} + - component: {fileID: 1251108820634571731} + - component: {fileID: 7765258621724067875} + m_Layer: 5 + m_Name: Down Page + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7803728723482469378 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1209793828667724322} + m_LocalRotation: {x: -0, y: -0, z: 1, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2621537553907313402} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0.000579834} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &493161845038096055 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1209793828667724322} + m_CullTransparentMesh: 1 +--- !u!114 &1251108820634571731 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1209793828667724322} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: e4f3bb5241dbaad4db4c4c2123c3dc7f, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7765258621724067875 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1209793828667724322} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 2 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 40024c9e22bc58546af022bb1516b373, type: 3} + m_PressedSprite: {fileID: 21300000, guid: 1f3ef61bd6d42c8409d7bf16c656276a, type: 3} + m_SelectedSprite: {fileID: 21300000, guid: e4f3bb5241dbaad4db4c4c2123c3dc7f, type: 3} + m_DisabledSprite: {fileID: 21300000, guid: 0dbb3dd59e83e7b4abdb31724b78b5f8, type: 3} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1251108820634571731} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1768253749262987325 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8320169383697131573} + - component: {fileID: 8234106350278285165} + - component: {fileID: 7631276280526804616} + - component: {fileID: 4774887646849473799} + m_Layer: 5 + m_Name: InputField (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8320169383697131573 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1768253749262987325} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2490712815460671538} + - {fileID: 1761491286324561013} + - {fileID: 3119345715479511668} + m_Father: {fileID: 2621537553907313402} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 85, y: 0.000579834} + m_SizeDelta: {x: 50, y: 30} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &8234106350278285165 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1768253749262987325} + m_CullTransparentMesh: 1 +--- !u!114 &7631276280526804616 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1768253749262987325} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.8784314} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f83f04ce4c189934e927946f277e0d55, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 3 +--- !u!114 &4774887646849473799 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1768253749262987325} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 7631276280526804616} + m_TextViewport: {fileID: 1761491286324561013} + m_TextComponent: {fileID: 3455313715146643028} + m_Placeholder: {fileID: 915856553847742378} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: ac8924ea1ea2ba7489bd53e5f02592da, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!1 &2424472191782084273 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6923205496500461185} + - component: {fileID: 1415465211690416570} + m_Layer: 5 + m_Name: "\u7FFB\u9875\u7D22\u5F15\u9879\u76EE" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &6923205496500461185 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2424472191782084273} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4111830033538904869} + - {fileID: 2519692151064848829} + m_Father: {fileID: 3824897263716428784} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 16, y: -16} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1415465211690416570 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2424472191782084273} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.031372547, g: 0.29999995, b: 0.5, a: 1} + m_HighlightedColor: {r: 0.060235288, g: 0.5759999, b: 0.96, a: 1} + m_PressedColor: {r: 0.048941173, g: 0.46799994, b: 0.78, a: 1} + m_SelectedColor: {r: 0.0627451, g: 0.6, b: 1, a: 1} + m_DisabledColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 6405618758504439301} + toggleTransition: 1 + graphic: {fileID: 4413023985490663009} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 +--- !u!1 &3297188182606269442 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3824897263716428784} + - component: {fileID: 5336793842697934167} + m_Layer: 5 + m_Name: PageContext + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3824897263716428784 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3297188182606269442} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6923205496500461185} + m_Father: {fileID: 2621537553907313402} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5336793842697934167 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3297188182606269442} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3e670ed839c14690b0def247bb026b7f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 + layoutIgnoreInactive: 1 + enableListScreening: 0 + blackListMode: 0 + m_whiteList_list: [] + m_blackList_list: [] +--- !u!1 &3542596588011649313 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1761491286324561013} + - component: {fileID: 5996482587860411595} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1761491286324561013 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3542596588011649313} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2101792116944489344} + - {fileID: 1041055584715298967} + m_Father: {fileID: 8320169383697131573} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5996482587860411595 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3542596588011649313} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: -8, y: -5, z: -8, w: -5} + m_Softness: {x: 0, y: 0} +--- !u!1 &3681948604628247255 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2621537553907313402} + m_Layer: 5 + m_Name: FlipArea + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2621537553907313402 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3681948604628247255} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6571605906153027814} + - {fileID: 7037780673386208652} + - {fileID: 3824897263716428784} + - {fileID: 7803728723482469378} + - {fileID: 8320169383697131573} + m_Father: {fileID: 2268756897276388555} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3751844273899850360 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2490712815460671538} + - component: {fileID: 1648808636809099727} + - component: {fileID: 6875800299977826311} + m_Layer: 5 + m_Name: "\u8DF3\u81F3" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2490712815460671538 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3751844273899850360} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8320169383697131573} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: -10, y: 0} + m_SizeDelta: {x: 50, y: 32} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &1648808636809099727 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3751844273899850360} + m_CullTransparentMesh: 1 +--- !u!114 &6875800299977826311 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3751844273899850360} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u8DF3\u81F3" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: ac8924ea1ea2ba7489bd53e5f02592da, type: 2} + m_sharedMaterial: {fileID: -8421469107013168242, guid: ac8924ea1ea2ba7489bd53e5f02592da, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 4 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3959054241061132334 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4222252253032858648} + - component: {fileID: 9194564358554857425} + - component: {fileID: 4413023985490663009} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4222252253032858648 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3959054241061132334} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4111830033538904869} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9194564358554857425 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3959054241061132334} + m_CullTransparentMesh: 1 +--- !u!114 &4413023985490663009 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3959054241061132334} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.0627451, g: 0.6, b: 1, a: 0.9019608} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4207560638290609963 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1041055584715298967} + - component: {fileID: 1629736399565147168} + - component: {fileID: 3455313715146643028} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1041055584715298967 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4207560638290609963} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1761491286324561013} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1629736399565147168 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4207560638290609963} + m_CullTransparentMesh: 1 +--- !u!114 &3455313715146643028 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4207560638290609963} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: ac8924ea1ea2ba7489bd53e5f02592da, type: 2} + m_sharedMaterial: {fileID: -8421469107013168242, guid: ac8924ea1ea2ba7489bd53e5f02592da, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &5139169286594706621 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6571605906153027814} + - component: {fileID: 6947296666981024191} + - component: {fileID: 3714336260026733280} + m_Layer: 5 + m_Name: "\u603B\u6570" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6571605906153027814 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5139169286594706621} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2621537553907313402} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: -40, y: 0} + m_SizeDelta: {x: 50, y: 32} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &6947296666981024191 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5139169286594706621} + m_CullTransparentMesh: 1 +--- !u!114 &3714336260026733280 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5139169286594706621} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u517110\u6761" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: ac8924ea1ea2ba7489bd53e5f02592da, type: 2} + m_sharedMaterial: {fileID: -8421469107013168242, guid: ac8924ea1ea2ba7489bd53e5f02592da, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &5637017971419535742 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2519692151064848829} + - component: {fileID: 3521739009786132225} + - component: {fileID: 1059445199907694612} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2519692151064848829 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5637017971419535742} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6923205496500461185} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3521739009786132225 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5637017971419535742} + m_CullTransparentMesh: 1 +--- !u!114 &1059445199907694612 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5637017971419535742} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: '0 + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: ac8924ea1ea2ba7489bd53e5f02592da, type: 2} + m_sharedMaterial: {fileID: -8421469107013168242, guid: ac8924ea1ea2ba7489bd53e5f02592da, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &5747851443116560983 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2101792116944489344} + - component: {fileID: 6255237017966768464} + - component: {fileID: 915856553847742378} + - component: {fileID: 1422473183026691165} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2101792116944489344 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5747851443116560983} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1761491286324561013} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6255237017966768464 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5747851443116560983} + m_CullTransparentMesh: 1 +--- !u!114 &915856553847742378 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5747851443116560983} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: ac8924ea1ea2ba7489bd53e5f02592da, type: 2} + m_sharedMaterial: {fileID: -8421469107013168242, guid: ac8924ea1ea2ba7489bd53e5f02592da, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 2150773298 + m_fontColor: {r: 1, g: 1, b: 1, a: 0.5} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 2 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &1422473183026691165 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5747851443116560983} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &7252616489063906768 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7037780673386208652} + - component: {fileID: 1435867989117754973} + - component: {fileID: 8354246078655071261} + - component: {fileID: 1639142151594522879} + m_Layer: 5 + m_Name: Up Page + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7037780673386208652 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7252616489063906768} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2621537553907313402} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0.000579834} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &1435867989117754973 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7252616489063906768} + m_CullTransparentMesh: 1 +--- !u!114 &8354246078655071261 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7252616489063906768} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: e4f3bb5241dbaad4db4c4c2123c3dc7f, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1639142151594522879 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7252616489063906768} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 2 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 40024c9e22bc58546af022bb1516b373, type: 3} + m_PressedSprite: {fileID: 21300000, guid: 1f3ef61bd6d42c8409d7bf16c656276a, type: 3} + m_SelectedSprite: {fileID: 21300000, guid: e4f3bb5241dbaad4db4c4c2123c3dc7f, type: 3} + m_DisabledSprite: {fileID: 21300000, guid: 0dbb3dd59e83e7b4abdb31724b78b5f8, type: 3} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 8354246078655071261} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &8169002526629318782 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2268756897276388555} + - component: {fileID: 6652959776083122156} + m_Layer: 5 + m_Name: "\u7FFB\u9875" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2268756897276388555 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8169002526629318782} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2621537553907313402} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 20} + m_SizeDelta: {x: 1820, y: 40} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &6652959776083122156 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8169002526629318782} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b51ce3649dd74e438a0d79a2935a866f, type: 3} + m_Name: + m_EditorClassIdentifier: + candidatesNumber: 1 + canPassIndexBoundary: 0 + defaultItemCountPerPage: -1 + currentPageIndex: 0 + inMaximumCandidatesNumber: 0 + buttonStartPage: + target: {fileID: 0} + buttonPreviousPage: + target: {fileID: 1639142151594522879} + buttonNextPage: + target: {fileID: 7765258621724067875} + buttoneEndPage: + target: {fileID: 0} + labelTextTotalPageCount: + target: {fileID: 3714336260026733280} + totalPageCountFormat: "\u5171$1\u9875" + pageIndexFormat: $1 + pageSelectButton: [] + inputFieldFlipPageIndex: + target: {fileID: 4774887646849473799} + pageButtonPool: + prefab: {fileID: 2424472191782084273} + parent: {fileID: 3824897263716428784} + setOrder: 1 + setAcitve: 1 + autoHide: 1 +--- !u!1 &8314782234283084461 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4111830033538904869} + - component: {fileID: 7125951097221311586} + - component: {fileID: 6405618758504439301} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4111830033538904869 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8314782234283084461} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4222252253032858648} + m_Father: {fileID: 6923205496500461185} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7125951097221311586 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8314782234283084461} + m_CullTransparentMesh: 1 +--- !u!114 &6405618758504439301 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8314782234283084461} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.031372547, g: 0.29999995, b: 0.5, a: 0.9019608} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8884749777027399173 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3119345715479511668} + - component: {fileID: 8847601844061604563} + - component: {fileID: 1145077905955776314} + m_Layer: 5 + m_Name: "\u9875" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3119345715479511668 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8884749777027399173} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8320169383697131573} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 10, y: 0} + m_SizeDelta: {x: 50, y: 32} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &8847601844061604563 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8884749777027399173} + m_CullTransparentMesh: 1 +--- !u!114 &1145077905955776314 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8884749777027399173} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u9875" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: ac8924ea1ea2ba7489bd53e5f02592da, type: 2} + m_sharedMaterial: {fileID: -8421469107013168242, guid: ac8924ea1ea2ba7489bd53e5f02592da, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/Runtime/FlipPage/翻页.prefab.meta b/Runtime/FlipPage/翻页.prefab.meta new file mode 100644 index 0000000..48853a4 --- /dev/null +++ b/Runtime/FlipPage/翻页.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5ba86d0ef2e4efd4290b2b4b7697aa85 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: