【UI】动画框架修改

main
zhangaotian 2026-01-14 16:48:12 +08:00
parent f11637c2e1
commit 34627eed7e
16 changed files with 1230 additions and 301 deletions

View File

@ -205,6 +205,7 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 2094670630450119100}
- component: {fileID: 1941711431191749578}
m_Layer: 5
m_Name: UI_GetItemWindow
m_TagString: Untagged
@ -226,6 +227,7 @@ RectTransform:
m_Children:
- {fileID: 8554402796561004782}
- {fileID: 2416543410015650460}
- {fileID: 8806343583545157365}
- {fileID: 8774587691775077872}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -234,6 +236,20 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -1820, y: -980}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1941711431191749578
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1080568213497152730}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1ece298f8323948ecb955b9ff2e8ecd6, type: 3}
m_Name:
m_EditorClassIdentifier:
BGRoot: {fileID: 2983514799491577292}
ContentRoot: {fileID: 8683740068857248195}
--- !u!1 &1204855924153253869
GameObject:
m_ObjectHideFlags: 0
@ -966,7 +982,6 @@ GameObject:
m_Component:
- component: {fileID: 1413562595233872522}
- component: {fileID: 3451064073480861211}
- component: {fileID: 8668405972659658023}
m_Layer: 5
m_Name: Image_BG (1)
m_TagString: Untagged
@ -1001,23 +1016,71 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2647540977102547042}
m_CullTransparentMesh: 1
--- !u!114 &8668405972659658023
--- !u!1 &2983514799491577292
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8806343583545157365}
- component: {fileID: 6834957762829374813}
- component: {fileID: 979523868277055693}
- component: {fileID: 3626557109349786064}
m_Layer: 5
m_Name: BgRoot
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8806343583545157365
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2983514799491577292}
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: 4652727993437523478}
- {fileID: 6908593537524164729}
m_Father: {fileID: 2094670630450119100}
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: 39}
m_SizeDelta: {x: 2384.0828, y: 1307}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6834957762829374813
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2983514799491577292}
m_CullTransparentMesh: 1
--- !u!114 &979523868277055693
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2647540977102547042}
m_GameObject: {fileID: 2983514799491577292}
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: 0
m_Color: {r: 1, g: 1, b: 1, a: 0}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 0
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@ -1031,6 +1094,50 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &3626557109349786064
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2983514799491577292}
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: 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: 1}
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: 979523868277055693}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &3207244770669985389
GameObject:
m_ObjectHideFlags: 0
@ -1483,6 +1590,156 @@ MonoBehaviour:
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &3863225236087276260
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6908593537524164729}
- component: {fileID: 5122562897137306740}
- component: {fileID: 2468934822165590834}
m_Layer: 5
m_Name: ImageMaskBg
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &6908593537524164729
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3863225236087276260}
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: 8806343583545157365}
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: -54.299988}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5122562897137306740
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3863225236087276260}
m_CullTransparentMesh: 1
--- !u!114 &2468934822165590834
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3863225236087276260}
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, g: 0, b: 0, 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: 0}
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!1 &3922036375840668805
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4652727993437523478}
- component: {fileID: 3284004046266200548}
- component: {fileID: 1441406563758204810}
m_Layer: 5
m_Name: Image_BG (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4652727993437523478
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3922036375840668805}
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: 8806343583545157365}
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: -54.3}
m_SizeDelta: {x: -0.00024414062, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3284004046266200548
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3922036375840668805}
m_CullTransparentMesh: 1
--- !u!114 &1441406563758204810
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3922036375840668805}
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: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 0
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: ce7789104fddc434a839d481c2781bc2, 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!1 &3961625537041188893
GameObject:
m_ObjectHideFlags: 0
@ -3475,8 +3732,6 @@ GameObject:
m_Component:
- component: {fileID: 8774587691775077872}
- component: {fileID: 8941033127693046242}
- component: {fileID: 6376082203526359337}
- component: {fileID: 3809337650764910801}
m_Layer: 5
m_Name: Image_BG
m_TagString: Untagged
@ -3522,80 +3777,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8683740068857248195}
m_CullTransparentMesh: 1
--- !u!114 &6376082203526359337
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8683740068857248195}
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}
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: ce7789104fddc434a839d481c2781bc2, 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 &3809337650764910801
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8683740068857248195}
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: 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: 1}
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: 6376082203526359337}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &8732477886672783612
GameObject:
m_ObjectHideFlags: 0

View File

@ -1573,7 +1573,6 @@ GameObject:
m_Component:
- component: {fileID: 3414587129595107623}
- component: {fileID: 190058922004121514}
- component: {fileID: 1423194621302860425}
m_Layer: 5
m_Name: ImageBG
m_TagString: Untagged
@ -1619,36 +1618,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 614485025898348595}
m_CullTransparentMesh: 1
--- !u!114 &1423194621302860425
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 614485025898348595}
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.7843138, g: 0.7843138, b: 0.7843138, 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: c9ef9f6cfee72d146b55cf1e2f9a9700, 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!1 &729213610399828726
GameObject:
m_ObjectHideFlags: 0
@ -1858,6 +1827,7 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 8158303338095899385}
- component: {fileID: 5075425999647093547}
m_Layer: 5
m_Name: UI_LevelDetail
m_TagString: Untagged
@ -1878,6 +1848,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6864028128051026074}
- {fileID: 4748581921571664007}
- {fileID: 7169584075695119348}
- {fileID: 3414587129595107623}
- {fileID: 8585275932310617579}
@ -1889,6 +1860,20 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &5075425999647093547
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 813445746765870585}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1ece298f8323948ecb955b9ff2e8ecd6, type: 3}
m_Name:
m_EditorClassIdentifier:
BGRoot: {fileID: 6696212451701689506}
ContentRoot: {fileID: 614485025898348595}
--- !u!1 &873528808680135657
GameObject:
m_ObjectHideFlags: 0
@ -13860,6 +13845,81 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
text_key: Level_scoredetail
--- !u!1 &6696212451701689506
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4748581921571664007}
- component: {fileID: 1085251764915852517}
- component: {fileID: 29675938173828185}
m_Layer: 5
m_Name: BGRoot
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4748581921571664007
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6696212451701689506}
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: 8158303338095899385}
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: 71}
m_SizeDelta: {x: 1537, y: 858}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1085251764915852517
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6696212451701689506}
m_CullTransparentMesh: 1
--- !u!114 &29675938173828185
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6696212451701689506}
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.7843138, g: 0.7843138, b: 0.7843138, 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: c9ef9f6cfee72d146b55cf1e2f9a9700, 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!1 &6736300537979732046
GameObject:
m_ObjectHideFlags: 0
@ -18271,6 +18331,11 @@ PrefabInstance:
serializedVersion: 3
m_TransformParent: {fileID: 5875949961022675763}
m_Modifications:
- target: {fileID: 3663900318913857023, guid: 1c8f96bbc1fab2a4dad67d5e9e439a65,
type: 3}
propertyPath: m_SortingLayer
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5361427964036546117, guid: 1c8f96bbc1fab2a4dad67d5e9e439a65,
type: 3}
propertyPath: m_text
@ -18291,12 +18356,27 @@ PrefabInstance:
propertyPath: m_Enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6440679505674749238, guid: 1c8f96bbc1fab2a4dad67d5e9e439a65,
type: 3}
propertyPath: m_SortingLayer
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8101703866507980802, guid: 1c8f96bbc1fab2a4dad67d5e9e439a65,
type: 3}
propertyPath: m_SortingLayer
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8106655799227903401, guid: 1c8f96bbc1fab2a4dad67d5e9e439a65,
type: 3}
propertyPath: m_Sprite
value:
objectReference: {fileID: 21300000, guid: 1f50a9065c4325149a564691f0153214,
type: 3}
- target: {fileID: 8114006659160854266, guid: 1c8f96bbc1fab2a4dad67d5e9e439a65,
type: 3}
propertyPath: m_SortingLayer
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8340872123185064282, guid: 1c8f96bbc1fab2a4dad67d5e9e439a65,
type: 3}
propertyPath: m_LocalScale.x
@ -18431,6 +18511,11 @@ PrefabInstance:
serializedVersion: 3
m_TransformParent: {fileID: 1824881084827768836}
m_Modifications:
- target: {fileID: 3663900318913857023, guid: 1c8f96bbc1fab2a4dad67d5e9e439a65,
type: 3}
propertyPath: m_SortingLayer
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5361427964036546117, guid: 1c8f96bbc1fab2a4dad67d5e9e439a65,
type: 3}
propertyPath: m_text
@ -18451,12 +18536,27 @@ PrefabInstance:
propertyPath: m_Enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6440679505674749238, guid: 1c8f96bbc1fab2a4dad67d5e9e439a65,
type: 3}
propertyPath: m_SortingLayer
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8101703866507980802, guid: 1c8f96bbc1fab2a4dad67d5e9e439a65,
type: 3}
propertyPath: m_SortingLayer
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8106655799227903401, guid: 1c8f96bbc1fab2a4dad67d5e9e439a65,
type: 3}
propertyPath: m_Sprite
value:
objectReference: {fileID: 21300000, guid: 1f50a9065c4325149a564691f0153214,
type: 3}
- target: {fileID: 8114006659160854266, guid: 1c8f96bbc1fab2a4dad67d5e9e439a65,
type: 3}
propertyPath: m_SortingLayer
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8340872123185064282, guid: 1c8f96bbc1fab2a4dad67d5e9e439a65,
type: 3}
propertyPath: m_LocalScale.x

View File

@ -779,11 +779,11 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 9064469385743323212}
m_Father: {fileID: 2746189296848383904}
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: 2, y: 0.50001526}
m_AnchoredPosition: {x: 2, y: -22.999985}
m_SizeDelta: {x: 1390, y: 685}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &501573952812170686
@ -1048,7 +1048,6 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6087794041816623774}
- {fileID: 5241811016334918947}
- {fileID: 4541946126318785279}
m_Father: {fileID: 2746189296848383904}
@ -3573,6 +3572,7 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 2746189296848383904}
- component: {fileID: 1260143014530676686}
m_Layer: 5
m_Name: UI_ExChangeShopPurchase
m_TagString: Untagged
@ -3593,7 +3593,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1807678817117230244}
- {fileID: 5890619322677310350}
- {fileID: 6087794041816623774}
- {fileID: 7790132225585872055}
- {fileID: 9064469385743323212}
- {fileID: 5662751771978463833}
@ -3606,6 +3606,20 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1260143014530676686
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5186950810869689727}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1ece298f8323948ecb955b9ff2e8ecd6, type: 3}
m_Name:
m_EditorClassIdentifier:
BGRoot: {fileID: 1356874206891355302}
ContentRoot: {fileID: 1954528871703097651}
--- !u!1 &5483957305225512917
GameObject:
m_ObjectHideFlags: 0
@ -4649,150 +4663,6 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Padding: {x: -8, y: -5, z: -8, w: -5}
m_Softness: {x: 0, y: 0}
--- !u!1001 &5616268930247536164
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 2746189296848383904}
m_Modifications:
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_AnchorMax.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_LocalScale.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_LocalScale.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_LocalScale.z
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7476995447831014915, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_Name
value: emptyForAllCloseBtn
objectReference: {fileID: 0}
- target: {fileID: 7476995447831014915, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 9a8f998d5c0044a4c8f771875f8e76f1, type: 3}
--- !u!224 &5890619322677310350 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 2039939065411542442, guid: 9a8f998d5c0044a4c8f771875f8e76f1,
type: 3}
m_PrefabInstance: {fileID: 5616268930247536164}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &5942906061362142699
PrefabInstance:
m_ObjectHideFlags: 0

View File

@ -10,7 +10,6 @@ GameObject:
m_Component:
- component: {fileID: 8290700105269043266}
- component: {fileID: 3063405796806473050}
- component: {fileID: 8166600936450670288}
m_Layer: 5
m_Name: Image_Bg
m_TagString: Untagged
@ -54,36 +53,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 44603444258873927}
m_CullTransparentMesh: 1
--- !u!114 &8166600936450670288
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 44603444258873927}
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: 300f7d22cf119e346bc888ef72ef0e75, 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!1 &999336471497487314
GameObject:
m_ObjectHideFlags: 0
@ -1090,6 +1059,7 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 7239823271215712816}
- component: {fileID: 7995095406928088896}
m_Layer: 5
m_Name: UI_TeamMarkChoose
m_TagString: Untagged
@ -1110,8 +1080,9 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5022003420382610505}
- {fileID: 3998296598754239257}
- {fileID: 4629448091354847070}
- {fileID: 8290700105269043266}
- {fileID: 3998296598754239257}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@ -1119,6 +1090,20 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &7995095406928088896
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3981347709484495308}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1ece298f8323948ecb955b9ff2e8ecd6, type: 3}
m_Name:
m_EditorClassIdentifier:
BGRoot: {fileID: 5196491984899536293}
ContentRoot: {fileID: 44603444258873927}
--- !u!1 &4003757320305747727
GameObject:
m_ObjectHideFlags: 0
@ -1464,6 +1449,81 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &5196491984899536293
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4629448091354847070}
- component: {fileID: 8847096704330782132}
- component: {fileID: 1979807410772667983}
m_Layer: 5
m_Name: BG
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4629448091354847070
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5196491984899536293}
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: 7239823271215712816}
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: 1600, y: 963}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8847096704330782132
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5196491984899536293}
m_CullTransparentMesh: 1
--- !u!114 &1979807410772667983
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5196491984899536293}
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: 300f7d22cf119e346bc888ef72ef0e75, 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!1 &5659854475741398086
GameObject:
m_ObjectHideFlags: 0

View File

@ -162,6 +162,14 @@ MonoBehaviour:
FilterRuleName: CollectAll
AssetTags:
UserData:
- CollectPath: Assets/Config/UIAnimProfileConfig.asset
CollectorGUID: 4e4f0a4752b3e4078a5271a4f0db1ddc
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackDirectory
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: UI
GroupDesc:
AssetTags:

View File

@ -7,6 +7,7 @@ namespace Framework
public const string EMPTY_SCENE_PATH = "Assets/Scenes/Empty.unity";
public const string UI_ANIM_CCNFIG = "Assets/Config/UIAnimProfileConfig.asset";
public const string MAP_ASSET_PATH_WITHOUT_ASSET = "Level/Maps/";
public const string MAP_ASSET_PATH = "Assets/" + MAP_ASSET_PATH_WITHOUT_ASSET;
public const string MAP_ASSET_FORMAT_PATH = MAP_ASSET_PATH + "{0}.prefab";

View File

@ -0,0 +1,16 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UIAnimationNode:MonoBehaviour
{
/// <summary>
/// 背景节点
/// </summary>
public GameObject BGRoot;
/// <summary>
/// 内容节点
/// </summary>
public GameObject ContentRoot;
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 1ece298f8323948ecb955b9ff2e8ecd6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,318 @@
using System;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using DG.Tweening;
using PhxhSDK;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// 项目侧自定义UI显隐动画播放器
/// </summary>
public class UIAnimationPlayer : IUIAnimationPlayer
{
public async UniTask Play(UIWindow window, bool isShow, Action callback)
{
if (window == null)
{
callback?.Invoke();
return;
}
await PlayAnim(window, isShow, callback);
}
private async UniTask PlayAnim(UIWindow window, bool isShow, Action callBack = null)
{
var profile = GetAnimProfile(window.AnimPresetType);
var message = isShow ? "显示" : "隐藏";
if (profile == null)
{
DebugUtil.LogG($"{window.name} - {window.AnimPresetType} - 使用默认方案 播放{message}动画");
// 使用默认播放器
await window.PlayAnimationDefault(isShow, callBack);
return;
}
DebugUtil.LogG($"{window.name} - {window.AnimPresetType} - 使用新方案 播放{message}动画");
EnsureAnimTargets(window);
// 若缺少主体和背景,降级为旧动画
if ((_bgImages == null || _bgImages.Count == 0) && _contentCg == null)
{
// 使用默认播放器
await window.PlayAnimationDefault(isShow, callBack);
return;
}
window.OpenAnimSeq?.Kill();
window.IsCloseCbCalled = false;
window.IsPlayingOpenAnim = true;
ResetAnimInitialState(isShow, profile);
window.OpenAnimSeq = DOTween.Sequence();
// 遮罩useMask=false 时直接设为最终值,不播放动画
if (profile.useMask && _maskCg != null && profile.maskFade.Duration > 0f)
{
var tween = _maskCg.DOFade(isShow ? 1f : 0f, profile.maskFade.Duration)
.SetDelay(profile.maskFade.start)
.SetEase(profile.alphaCurve);
window.OpenAnimSeq.Join(tween);
}
else if (_maskCg != null)
{
_maskCg.alpha = isShow ? 1f : 0f;
}
// 背景透明度
if (profile.bgFade.Duration > 0f && _bgImages.Count > 0)
{
foreach (var img in _bgImages)
{
if (img == null) continue;
var tween = img.DOFade(isShow ? 1f : 0f, profile.bgFade.Duration)
.SetDelay(profile.bgFade.start)
.SetEase(profile.alphaCurve);
window.OpenAnimSeq.Join(tween);
}
}
// 背景缩放(作用在 BgRoot隐藏时走反向显示为 1.1->1隐藏为 1->1.1
if (_bgRoot != null && profile.bgScale.Duration > 0f)
{
var toScale = isShow ? profile.bgScaleTo : profile.bgScaleFrom;
var tween = _bgRoot.DOScale(toScale, profile.bgScale.Duration)
.SetDelay(profile.bgScale.start)
.SetEase(profile.scaleCurve);
window.OpenAnimSeq.Join(tween);
}
// 主体透明度
if (profile.contentFade.Duration > 0f && _contentCg != null)
{
var tween = _contentCg.DOFade(isShow ? 1f : 0f, profile.contentFade.Duration)
.SetDelay(profile.contentFade.start)
.SetEase(profile.alphaCurve);
window.OpenAnimSeq.Join(tween);
}
window.OpenAnimSeq.OnComplete(() =>
{
if (window.IsCloseCbCalled) return;
window.IsPlayingOpenAnim = false;
window.OpenAnimSeq = null;
window.IsCloseCbCalled = true;
callBack?.Invoke();
});
await UniTask.WaitUntil(() =>
{
if (window.OpenAnimSeq == null)
return true;
if (!window.OpenAnimSeq.IsActive())
return true;
return window.OpenAnimSeq.IsComplete();
});
// 补偿兜底
if (!window.IsCloseCbCalled)
{
window.IsPlayingOpenAnim = false;
window.OpenAnimSeq?.Kill();
window.OpenAnimSeq = null;
window.IsCloseCbCalled = true;
callBack?.Invoke();
}
}
/// <summary>
/// 获取界面对应的配置,若资源未就绪则使用内置预设兜底,避免首次打开无动画
/// </summary>
/// <param name="preset"></param>
/// <returns></returns>
private UIAnimProfile GetAnimProfile(UIAnimPresetType preset)
{
if (preset == UIAnimPresetType.None)
return null;
var assetProfile = UIManager.Instance.AnimProfileAsset?.GetProfile(preset);
if (assetProfile != null)
return assetProfile;
return s_defaultProfiles.GetValueOrDefault(preset);
}
/// <summary>
/// 高斯模糊节点命名
/// </summary>
private const string BlurMaskName = "GaussianBlurMask";
/// <summary>
/// 背景节点命名
/// </summary>
private const string BgRootName = "BgRoot";
/// <summary>
/// 界面内容主体节点命名
/// </summary>
private const string ContentRootName = "MainNode";
/// <summary>
/// 挂在界面上的动画节点
/// </summary>
private UIAnimationNode animationNode;
private RectTransform _bgRoot;
private RectTransform _contentRoot;
private CanvasGroup _maskCg;
private CanvasGroup _contentCg;
/// <summary>
/// 背景图列表
/// </summary>
private readonly List<Image> _bgImages = new List<Image>();
/// <summary>
/// 内置预设兜底,资源未加载到时使用
/// </summary>
private static readonly Dictionary<UIAnimPresetType, UIAnimProfile> s_defaultProfiles =
new()
{
{
UIAnimPresetType.Level1,
new UIAnimProfile
{
totalDuration = 0.3f,
maskFade = new UIAnimRange(0f, 0.05f),
bgFade = new UIAnimRange(0.02f, 0.2f),
bgScale = new UIAnimRange(0.02f, 0.12f),
bgScaleFrom = 1.1f,
bgScaleTo = 1f,
contentFade = new UIAnimRange(0.15f, 0.3f),
}
},
{
UIAnimPresetType.Level2,
new UIAnimProfile
{
totalDuration = 0.3f,
maskFade = new UIAnimRange(0f, 0.05f),
bgFade = new UIAnimRange(0.02f, 0.2f),
bgScale = new UIAnimRange(0.02f, 0.12f),
bgScaleFrom = 1.1f,
bgScaleTo = 1f,
contentFade = new UIAnimRange(0.15f, 0.3f),
}
},
{
UIAnimPresetType.Level3,
new UIAnimProfile
{
totalDuration = 0.15f,
maskFade = new UIAnimRange(0f, 0.05f),
bgFade = new UIAnimRange(0f, 0.15f),
bgScale = new UIAnimRange(0.02f, 0.1f),
bgScaleFrom = 1.1f,
bgScaleTo = 1f,
contentFade = new UIAnimRange(0.11f, 0.15f),
}
},
};
/// <summary>
/// 初始化动画需要的节点和组件
/// </summary>
private void EnsureAnimTargets(UIWindow window)
{
if (animationNode == null)
{
animationNode = window.transform.GetComponent<UIAnimationNode>();
}
if (_maskCg == null)
{
var maskTrans = window.transform.Find(BlurMaskName);
if (maskTrans != null)
{
_maskCg = maskTrans.GetComponent<CanvasGroup>();
if (_maskCg == null)
{
_maskCg = maskTrans.gameObject.AddComponent<CanvasGroup>();
}
}
}
if (_bgRoot == null)
{
if (animationNode != null && animationNode.BGRoot != null)
{
_bgRoot = animationNode.BGRoot.transform as RectTransform;
}
if (_bgRoot == null)
{
_bgRoot = window.transform.Find(BgRootName) as RectTransform;
}
}
if (_bgImages.Count == 0 && _bgRoot != null)
{
_bgImages.AddRange(_bgRoot.GetComponentsInChildren<Image>(true));
}
if (_contentRoot == null)
{
if (animationNode != null && animationNode.ContentRoot != null)
{
_contentRoot = animationNode.ContentRoot.transform as RectTransform;
}
if (_contentRoot == null)
{
_contentRoot = window.transform.Find(ContentRootName) as RectTransform;
}
}
if (_contentCg == null && _contentRoot != null)
{
_contentCg = _contentRoot.GetComponent<CanvasGroup>();
if (_contentCg == null)
_contentCg = _contentRoot.gameObject.AddComponent<CanvasGroup>();
}
}
/// <summary>
/// 设置初始透明度/缩放
/// </summary>
private void ResetAnimInitialState(bool isShow, UIAnimProfile profile)
{
if (_maskCg != null)
{
_maskCg.alpha = isShow ? 0f : 1f;
}
if (_bgImages != null)
{
foreach (var img in _bgImages)
{
if (img == null) continue;
var c = img.color;
c.a = isShow ? 0f : 1f;
img.color = c;
}
}
if (_bgRoot != null)
{
_bgRoot.localScale = Vector3.one * (isShow ? profile.bgScaleFrom : profile.bgScaleTo);
}
if (_contentCg != null)
{
_contentCg.alpha = isShow ? 0f : 1f;
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: abe1791f9815441c1b02d9a58b2e9bdf
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,100 @@
using System;
using System.Collections.Generic;
using PhxhSDK;
using Sirenix.OdinInspector;
using UnityEngine;
/// <summary>
/// 动画参数配置
/// </summary>
[Serializable]
public class UIAnimProfile
{
[LabelText("总时长")] public float totalDuration = 0.3f;
[LabelText("高斯模糊动效开关")] public bool useMask = true;
[LabelText("高斯模糊显隐时间")] [ShowIf("useMask")]
public UIAnimRange maskFade = new UIAnimRange(0f, 0.05f);
[LabelText("背景显隐时间")] public UIAnimRange bgFade = new UIAnimRange(0.02f, 0.2f);
[LabelText("背景缩放时间")] public UIAnimRange bgScale = new UIAnimRange(0.02f, 0.12f);
[LabelText("背景起始缩放大小")] public float bgScaleFrom = 1.1f;
[LabelText("背景最终缩放大小")] public float bgScaleTo = 1f;
[LabelText("内容主体显隐时间")] public UIAnimRange contentFade = new UIAnimRange(0.15f, 0.3f);
[LabelText("内容主体透明度缓动曲线")] public AnimationCurve alphaCurve = AnimationCurve.Linear(0, 0, 1, 1);
[LabelText("内容主体缩放缓动曲线")] public AnimationCurve scaleCurve = AnimationCurve.Linear(0, 0, 1, 1);
public UIAnimProfile Clone()
{
return new UIAnimProfile
{
totalDuration = totalDuration,
maskFade = maskFade,
bgFade = bgFade,
bgScale = bgScale,
bgScaleFrom = bgScaleFrom,
bgScaleTo = bgScaleTo,
contentFade = contentFade,
alphaCurve = new AnimationCurve(alphaCurve.keys),
scaleCurve = new AnimationCurve(scaleCurve.keys),
useMask = useMask
};
}
}
/// <summary>
/// 时间区间(秒)
/// </summary>
[Serializable]
public struct UIAnimRange
{
[LabelText("开始时间")] public float start;
[LabelText("结束时间")] public float end;
public float Duration => Mathf.Max(0f, end - start);
public UIAnimRange(float start, float end)
{
this.start = start;
this.end = end;
}
}
/// <summary>
/// ScriptableObject 用于配置动画参数,放到 Resources/UIAnimProfileConfig.asset 即可打包生效
/// </summary>
[CreateAssetMenu(fileName = "UIAnimProfileConfig", menuName = "UI/UI Anim Profile Config", order = 0)]
public class UIAnimProfileConfig : ScriptableObject
{
[Serializable]
public class Entry
{
[LabelText("弹窗类型")] public UIAnimPresetType presetType = UIAnimPresetType.Level1;
[LabelText("配置")] public UIAnimProfile profile = new UIAnimProfile();
}
[SerializeField] private List<Entry> entries = new List<Entry>();
/// <summary>
/// 获取指定预设的配置,返回克隆体避免运行时共享引用
/// </summary>
public UIAnimProfile GetProfile(UIAnimPresetType preset)
{
if (entries == null || entries.Count == 0)
return null;
for (int i = 0; i < entries.Count; i++)
{
var e = entries[i];
if (e != null && e.presetType == preset && e.profile != null)
{
return e.profile.Clone();
}
}
return null;
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: cb8b333ca760c484eabd50a939e45e36
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,4 +1,5 @@
using Obfuz;
using System;
using Obfuz;
using PhxhSDK;
/// <summary>
@ -30,6 +31,9 @@ public class UIManager : UIManagerBase, IGlobal
// ✅ 设置基类的全局单例引用,让 PhxhSDK 层能访问此实例
UIManagerBase.Instance = this;
// 注入项目侧动画播放器
UIAnimationPlayerProvider.SetPlayer(new UIAnimationPlayer());
// ✅ 注入窗口工厂(负责创建窗口控制器实例)
SetWindowFactory(new UIWindowReflectionFactory());
@ -79,7 +83,7 @@ public class UIManager : UIManagerBase, IGlobal
_WindowMeta(UINameConst.UINewLogin, UICanvasLayer.Normal, UIVisibilityStrategy.None, CameraMode.Shut,false, false);
//通用
_WindowMeta(UINameConst.UI_GetItemWindow, UICanvasLayer.Normal, UIVisibilityStrategy.None, CameraMode.Shut, true, needScreenshot: true, UIBackStrategyType.Intercept);
_WindowMeta(UINameConst.UI_GetItemWindow, UICanvasLayer.Normal, UIVisibilityStrategy.None, CameraMode.Shut, true, needScreenshot: true, UIBackStrategyType.Intercept, UIAnimPresetType.Level3);
_WindowMeta(UINameConst.UI_ConfirmClaimMedal, UICanvasLayer.Normal, UIVisibilityStrategy.None, CameraMode.Shut, false, needScreenshot: true, UIBackStrategyType.Intercept);
_WindowMeta(UINameConst.UINoticeOne, UICanvasLayer.System, UIVisibilityStrategy.None, CameraMode.None, false, false, UIBackStrategyType.Intercept);
_WindowMeta(UINameConst.UI_Transition, UICanvasLayer.System, UIVisibilityStrategy.None, CameraMode.Show, false, false);
@ -195,7 +199,7 @@ public class UIManager : UIManagerBase, IGlobal
_WindowMeta(UINameConst.UIRedPointTest, UICanvasLayer.Normal, UIVisibilityStrategy.None, CameraMode.Shut, false, false);
_WindowMeta(UINameConst.UITeamInfo, UICanvasLayer.Normal, UIVisibilityStrategy.None, CameraMode.Show, false, false);
_WindowMeta(UINameConst.UI_TeamSelect, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Show, false, false);
_WindowMeta(UINameConst.UITeamMarkChoose, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Shut, true, needScreenshot: true);
_WindowMeta(UINameConst.UITeamMarkChoose, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Shut, true, needScreenshot: true, animPresetType:UIAnimPresetType.Level2);
_WindowMeta(UINameConst.UI_MainPanel, UICanvasLayer.BackGround, UIVisibilityStrategy.None, CameraMode.Show, false, false, UIBackStrategyType.ShowExitConfirm);
_WindowMeta(UINameConst.UI_Setting, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Shut, false, true);
_WindowMeta(UINameConst.UI_NoticeSetting, UICanvasLayer.Tips, UIVisibilityStrategy.Occlusion, CameraMode.Shut, false, true);
@ -254,7 +258,7 @@ public class UIManager : UIManagerBase, IGlobal
_WindowMeta(UINameConst.UI_MainStarReward, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Shut, true, needScreenshot: true);
_WindowMeta(UINameConst.UI_WarScoreReward, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Shut, true, needScreenshot: true);
_WindowMeta(UINameConst.UI_BeforeFight, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Shut, true, needScreenshot: true);
_WindowMeta(UINameConst.UI_LevelDetail, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Shut, true, needScreenshot: true);
_WindowMeta(UINameConst.UI_LevelDetail, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Shut, true, needScreenshot: true, animPresetType: UIAnimPresetType.Level1);
//PVP
_WindowMeta(UINameConst.UI_PVPDefendPrepare, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Show, true, needScreenshot: true);
@ -269,19 +273,18 @@ public class UIManager : UIManagerBase, IGlobal
_WindowMeta(UINameConst.UI_PVPRule, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Shut, true, needScreenshot: true);
_WindowMeta(UINameConst.UI_PVPSettle, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Shut, true, needScreenshot: true);
_WindowMeta(UINameConst.UI_PVPStart, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Shut, true, needScreenshot: true);
//商店
_WindowMeta(UINameConst.UIGiftCodeAwards, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Shut, false, false);
_WindowMeta(UINameConst.UI_Purchase, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Shut, true, needScreenshot: true);
_WindowMeta(UINameConst.UI_Shop, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Show, false, false);
_WindowMeta(UINameConst.UI_ExChangeShopRefresh, UICanvasLayer.Normal, UIVisibilityStrategy.None, CameraMode.Show, false, true);
_WindowMeta(UINameConst.UI_ExChangeShopPurchase, UICanvasLayer.Normal, UIVisibilityStrategy.None, CameraMode.Shut, true, needScreenshot: true);
_WindowMeta(UINameConst.UI_ExChangeShopPurchase, UICanvasLayer.Normal, UIVisibilityStrategy.None, CameraMode.Shut, true, needScreenshot: true, animPresetType: UIAnimPresetType.Level2);
_WindowMeta(UINameConst.UI_GiftShopPurchase, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Shut, true, needScreenshot: true);
_WindowMeta(UINameConst.UI_ChargeShopPurchase, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Shut, false, true);
_WindowMeta(UINameConst.UI_ClothShopPurchase, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Show, false, true);
_WindowMeta(UINameConst.UI_AdvanceAccountShop, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Show, false, false);
_WindowMeta(UINameConst.UI_AdvanceAccountGet, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Show, false, true);
_WindowMeta(UINameConst.AdvanceAccountRule, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Show, false, true);
//营地
_WindowMeta(UINameConst.UI_Camp, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Show, false, false, UIBackStrategyType.ShowExitConfirm);
@ -358,6 +361,24 @@ public class UIManager : UIManagerBase, IGlobal
_WindowMeta(UINameConst.UI_NPCInfo, UICanvasLayer.Normal, UIVisibilityStrategy.Occlusion, CameraMode.Shut, true, needScreenshot: true);
}
/// <summary>
/// 动画参数配置
/// </summary>
public UIAnimProfileConfig AnimProfileAsset {get; private set;}
protected override async void _LoadProfile()
{
try
{
AnimProfileAsset =
await AssetManager.Instance.LoadAssetAsync<UIAnimProfileConfig>(Framework.Constants.UI_ANIM_CCNFIG);
}
catch (Exception e)
{
DebugUtil.LogError($"UIManager _LoadProfile error: {e}");
}
}
public void ToGlobal()
{
_instance = this;

View File

@ -0,0 +1,213 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 0}
m_Name: UIAnimProfileConfig
m_EditorClassIdentifier: FrameWork::UIAnimProfileConfig
entries:
- presetType: 1
profile:
totalDuration: 0.3
useMask: 0
maskFade:
start: 0
end: 0.05
bgFade:
start: 0.02
end: 0.2
bgScale:
start: 0.02
end: 0.12
bgScaleFrom: 1.1
bgScaleTo: 1
contentFade:
start: 0.15
end: 0.3
alphaCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 1
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
scaleCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 1
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
- presetType: 2
profile:
totalDuration: 0.3
useMask: 0
maskFade:
start: 0
end: 0.05
bgFade:
start: 0.02
end: 0.2
bgScale:
start: 0.02
end: 0.12
bgScaleFrom: 1.1
bgScaleTo: 1
contentFade:
start: 0.15
end: 0.3
alphaCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 1
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
scaleCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 1
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
- presetType: 3
profile:
totalDuration: 0.15
useMask: 0
maskFade:
start: 0
end: 0.05
bgFade:
start: 0
end: 0.15
bgScale:
start: 0.02
end: 0.1
bgScaleFrom: 1.1
bgScaleTo: 1
contentFade:
start: 0.15
end: 0.3
alphaCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 1
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
scaleCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 1
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4e4f0a4752b3e4078a5271a4f0db1ddc
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

@ -1 +1 @@
Subproject commit ae6d474b35806acf5b3ddf2a166dfbc56ed5e680
Subproject commit b7af47eb8ba7a482d20c2e03ea91c82acaf873c8