From 366a1a8cec0b03e95d24c483cb34354203b9ae55 Mon Sep 17 00:00:00 2001 From: Chomper9981 Date: Fri, 23 Jan 2026 17:38:31 +0700 Subject: [PATCH] Change Task UI tree. (Add color, add tree space) --- .../Prefab/Task/UI/DlgTask.prefab | 248 +---------- .../Prefab/Task/UI/TreeViewItem.prefab | 415 ++++++++++++------ .../PerfectWorld/Scripts/Task/UI/DlgTask.cs | 51 ++- .../Scripts/Task/UI/TaskTreeView.cs | 5 + .../Scripts/Task/UI/TaskTreeViewItem.cs | 61 ++- Assets/PerfectWorld/Scripts/UI/TextOutlet.cs | 13 + 6 files changed, 383 insertions(+), 410 deletions(-) diff --git a/Assets/PerfectWorld/Prefab/Task/UI/DlgTask.prefab b/Assets/PerfectWorld/Prefab/Task/UI/DlgTask.prefab index 4fab5c1a01..f16454c889 100644 --- a/Assets/PerfectWorld/Prefab/Task/UI/DlgTask.prefab +++ b/Assets/PerfectWorld/Prefab/Task/UI/DlgTask.prefab @@ -3644,42 +3644,6 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &3394019089264214037 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5233116975597807035} - m_Layer: 5 - m_Name: Sliding Area - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5233116975597807035 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3394019089264214037} - 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: 2343337405992641122} - m_Father: {fileID: 4269318562826283412} - 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: -20, y: -20} - m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &3400309995061149671 GameObject: m_ObjectHideFlags: 0 @@ -4526,7 +4490,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 3841808193842114691} - - {fileID: 4269318562826283412} m_Father: {fileID: 3413131598704007284} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -4594,9 +4557,9 @@ MonoBehaviour: m_ScrollSensitivity: 1 m_Viewport: {fileID: 3841808193842114691} m_HorizontalScrollbar: {fileID: 0} - m_VerticalScrollbar: {fileID: 8166044353254338} + m_VerticalScrollbar: {fileID: 0} m_HorizontalScrollbarVisibility: 2 - m_VerticalScrollbarVisibility: 2 + m_VerticalScrollbarVisibility: 1 m_HorizontalScrollbarSpacing: -3 m_VerticalScrollbarSpacing: -3 m_OnValueChanged: @@ -6441,9 +6404,9 @@ RectTransform: m_Father: {fileID: 3760164886363293420} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_SizeDelta: {x: -17, y: 0} m_Pivot: {x: 0, y: 1} --- !u!222 &5693552902337398956 CanvasRenderer: @@ -6496,132 +6459,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_ShowMaskGraphic: 0 ---- !u!1 &6215509840863176641 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4269318562826283412} - - component: {fileID: 3156760942193843661} - - component: {fileID: 5649692143959903235} - - component: {fileID: 8166044353254338} - m_Layer: 5 - m_Name: Scrollbar Vertical - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4269318562826283412 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6215509840863176641} - 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: 5233116975597807035} - m_Father: {fileID: 3760164886363293420} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 20, y: -17} - m_Pivot: {x: 1, y: 1} ---- !u!222 &3156760942193843661 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6215509840863176641} - m_CullTransparentMesh: 1 ---- !u!114 &5649692143959903235 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6215509840863176641} - 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: 10907, 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!114 &8166044353254338 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6215509840863176641} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, 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: 7392889747821849613} - m_HandleRect: {fileID: 2343337405992641122} - m_Direction: 2 - m_Value: 1 - m_Size: 0.5000001 - m_NumberOfSteps: 0 - m_OnValueChanged: - m_PersistentCalls: - m_Calls: [] --- !u!1 &6529812165440442340 GameObject: m_ObjectHideFlags: 0 @@ -6959,81 +6796,6 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] ---- !u!1 &6825428412888061072 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2343337405992641122} - - component: {fileID: 1253204253337680264} - - component: {fileID: 7392889747821849613} - m_Layer: 5 - m_Name: Handle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2343337405992641122 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6825428412888061072} - 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: 5233116975597807035} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 20, y: 20} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1253204253337680264 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6825428412888061072} - m_CullTransparentMesh: 1 ---- !u!114 &7392889747821849613 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6825428412888061072} - 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: 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 &6853716367817320825 GameObject: m_ObjectHideFlags: 0 @@ -8864,7 +8626,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} propertyPath: m_AnchoredPosition.y - value: 191.5136 + value: 336.93 objectReference: {fileID: 0} - target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3} propertyPath: m_LocalEulerAnglesHint.x diff --git a/Assets/PerfectWorld/Prefab/Task/UI/TreeViewItem.prefab b/Assets/PerfectWorld/Prefab/Task/UI/TreeViewItem.prefab index c399ff8ffc..bdaed314ee 100644 --- a/Assets/PerfectWorld/Prefab/Task/UI/TreeViewItem.prefab +++ b/Assets/PerfectWorld/Prefab/Task/UI/TreeViewItem.prefab @@ -10,8 +10,8 @@ GameObject: m_Component: - component: {fileID: 5053903421260846465} - component: {fileID: 4314770845850481090} - - component: {fileID: 4762263782091224632} - component: {fileID: 4986645933044111193} + - component: {fileID: 1062363862839909147} m_Layer: 5 m_Name: TreeViewItem m_TagString: Untagged @@ -31,7 +31,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 3882154025378162395} + - {fileID: 2024997316782034639} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -51,19 +51,36 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 3428dd2e9dd644e0b0cb408bd3202f21, type: 3} m_Name: m_EditorClassIdentifier: - m_text: {fileID: 1383932928540251694} + m_text: + legacy: {fileID: 0} + tmp: {fileID: 1383932928540251694} m_Button: {fileID: 1762532130762754577} - _levelSprites: - - {fileID: 21300000, guid: e09a5d2cb3c3f4c858754a1e90a44abd, type: 3} - - {fileID: 21300000, guid: 73873399fec964578b62204f20c40517, type: 3} - _expandButton: {fileID: 1715406348461528812} - _collapseButton: {fileID: 8676942769405651249} + _expandToggle: {fileID: 5502308808383608272} + _expandText: + legacy: {fileID: 0} + tmp: {fileID: 8373064842616042426} + _space: {fileID: 5541755240357469011} m_uItemData: 0 _treeLevel: 0 + isLastItem: 0 OnClick: m_PersistentCalls: m_Calls: [] ---- !u!114 &4762263782091224632 +--- !u!114 &4986645933044111193 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 700152255263326765} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 1 +--- !u!114 &1062363862839909147 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -82,27 +99,13 @@ MonoBehaviour: m_Bottom: 0 m_ChildAlignment: 0 m_Spacing: 0 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 m_ChildControlWidth: 0 m_ChildControlHeight: 0 m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 ---- !u!114 &4986645933044111193 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 700152255263326765} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 --- !u!1 &2040002976300010419 GameObject: m_ObjectHideFlags: 0 @@ -115,6 +118,7 @@ GameObject: - component: {fileID: 2230410216357545400} - component: {fileID: 9062463037674165507} - component: {fileID: 1762532130762754577} + - component: {fileID: 4801006375863435037} m_Layer: 5 m_Name: MainButton m_TagString: Untagged @@ -129,20 +133,18 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2040002976300010419} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + 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: 5827054231092576763} - - {fileID: 7277676979067820762} - - {fileID: 2849245307131571463} - m_Father: {fileID: 5053903421260846465} + m_Father: {fileID: 2024997316782034639} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 313, y: 91} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &2230410216357545400 CanvasRenderer: @@ -165,14 +167,14 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 1, g: 1, b: 1, a: 0.011764706} 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: e09a5d2cb3c3f4c858754a1e90a44abd, type: 3} + m_Sprite: {fileID: 0} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 @@ -226,6 +228,26 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] +--- !u!114 &4801006375863435037 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2040002976300010419} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: 0 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 0.5 + m_FlexibleHeight: -1 + m_LayoutPriority: 2 --- !u!1 &2916175606199835458 GameObject: m_ObjectHideFlags: 0 @@ -261,8 +283,8 @@ RectTransform: 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: 3.5497} - m_SizeDelta: {x: 0, y: -7.0993} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0.00000023841858} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5842649278580849339 CanvasRenderer: @@ -319,14 +341,14 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 40 - m_fontSizeBase: 40 + m_fontSize: 24 + m_fontSizeBase: 24 m_fontWeight: 400 - m_enableAutoSizing: 1 + m_enableAutoSizing: 0 m_fontSizeMin: 15 m_fontSizeMax: 40 m_fontStyle: 0 - m_HorizontalAlignment: 2 + m_HorizontalAlignment: 1 m_VerticalAlignment: 512 m_textAlignment: 65535 m_characterSpacing: 0 @@ -383,7 +405,7 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 ---- !u!1 &4773363917894322918 +--- !u!1 &6587684749681441909 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -391,133 +413,184 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2849245307131571463} - - component: {fileID: 8656005255261122099} - - component: {fileID: 9103345587361145036} - - component: {fileID: 8676942769405651249} - - component: {fileID: 2374156541160748953} + - component: {fileID: 5062486824527634889} + - component: {fileID: 7099288759002186546} + - component: {fileID: 8373064842616042426} m_Layer: 5 - m_Name: CollapseBtn + m_Name: Text (TMP) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &2849245307131571463 +--- !u!224 &5062486824527634889 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4773363917894322918} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 6587684749681441909} + 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_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 3882154025378162395} + m_Father: {fileID: 7277676979067820762} 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: 156.5, y: 3.5497} - m_SizeDelta: {x: 313, y: 83.901} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.00048828125, y: 0} + m_SizeDelta: {x: 40.883, y: 40} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8656005255261122099 +--- !u!222 &7099288759002186546 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4773363917894322918} + m_GameObject: {fileID: 6587684749681441909} m_CullTransparentMesh: 1 ---- !u!114 &9103345587361145036 +--- !u!114 &8373064842616042426 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4773363917894322918} + m_GameObject: {fileID: 6587684749681441909} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + 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: 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: 9de07872267c5419b9fa9c849eb45858, 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 &8676942769405651249 + m_text: + + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, 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: 36 + m_fontSizeBase: 36 + 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_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 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 &6592915584227539970 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2930138263853700511} + - component: {fileID: 5541755240357469011} + m_Layer: 5 + m_Name: Space + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2930138263853700511 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6592915584227539970} + 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: 2024997316782034639} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5541755240357469011 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4773363917894322918} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 0 - 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: 9103345587361145036} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &2374156541160748953 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4773363917894322918} + m_GameObject: {fileID: 6592915584227539970} 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_IgnoreLayout: 0 + m_MinWidth: 0 m_MinHeight: -1 m_PreferredWidth: -1 m_PreferredHeight: -1 @@ -535,10 +608,10 @@ GameObject: - component: {fileID: 7277676979067820762} - component: {fileID: 885853373149276158} - component: {fileID: 1569122208421759741} - - component: {fileID: 1715406348461528812} - - component: {fileID: 9213068811979301399} + - component: {fileID: 5502308808383608272} + - component: {fileID: 8681673894369501558} m_Layer: 5 - m_Name: ExpandBtn + m_Name: ExpandToggle m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -555,13 +628,14 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3882154025378162395} + m_Children: + - {fileID: 5062486824527634889} + m_Father: {fileID: 2024997316782034639} 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: 156.5, y: 3.5497} - m_SizeDelta: {x: 313, y: 83.901} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &885853373149276158 CanvasRenderer: @@ -591,7 +665,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 0} + m_Sprite: {fileID: 252815192406529888, guid: a141ce1b94af3cf46aa0695ab5ed6cdd, type: 3} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 @@ -601,7 +675,7 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!114 &1715406348461528812 +--- !u!114 &5502308808383608272 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -610,11 +684,11 @@ MonoBehaviour: m_GameObject: {fileID: 6863650808120944178} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: - m_Mode: 0 + m_Mode: 3 m_WrapAround: 0 m_SelectOnUp: {fileID: 0} m_SelectOnDown: {fileID: 0} @@ -642,10 +716,14 @@ MonoBehaviour: m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 1569122208421759741} - m_OnClick: + toggleTransition: 1 + graphic: {fileID: 0} + m_Group: {fileID: 0} + onValueChanged: m_PersistentCalls: m_Calls: [] ---- !u!114 &9213068811979301399 + m_IsOn: 0 +--- !u!114 &8681673894369501558 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -657,11 +735,76 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} m_Name: m_EditorClassIdentifier: - m_IgnoreLayout: 1 + m_IgnoreLayout: 0 m_MinWidth: -1 m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: -1 + m_PreferredWidth: 40 + m_PreferredHeight: 40 m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!1 &7973684205123875483 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2024997316782034639} + - component: {fileID: 6485915084394087119} + m_Layer: 5 + m_Name: MainContent + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2024997316782034639 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7973684205123875483} + 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: 2930138263853700511} + - {fileID: 7277676979067820762} + - {fileID: 3882154025378162395} + m_Father: {fileID: 5053903421260846465} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 400, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6485915084394087119 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7973684205123875483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, 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: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 1 + m_ChildScaleHeight: 1 + m_ReverseArrangement: 0 diff --git a/Assets/PerfectWorld/Scripts/Task/UI/DlgTask.cs b/Assets/PerfectWorld/Scripts/Task/UI/DlgTask.cs index 9a64ab3266..4452bbd2b6 100644 --- a/Assets/PerfectWorld/Scripts/Task/UI/DlgTask.cs +++ b/Assets/PerfectWorld/Scripts/Task/UI/DlgTask.cs @@ -193,8 +193,7 @@ namespace BrewMonster.Scripts.Task.UI }); trigger.triggers.Add(entry); - UnityEngine.Debug.Log($"[DlgTask] Awake: Added EventTrigger for PointerClick to m_pTxt_QuestItem (like C++ WM_LBUTTONDOWN)"); - } + } OnInitDialog(); } @@ -484,6 +483,7 @@ namespace BrewMonster.Scripts.Task.UI if (pTempl == null) return string.Empty; var type = (ENUM_TASK_TYPE)pTempl.m_FixedData.m_ulType; string rawName = ModelRenderer.Scripts.Common.ByteToStringUtils.UshortArrayToUnicodeString(pTempl.m_FixedData.m_szName); + if (type == ENUM_TASK_TYPE.enumTTQiShaList && !string.IsNullOrEmpty(rawName) && rawName[0] == '^') { // 如果是七杀榜任务且已经加了颜色,则颜色不变 // If QiShaList task already has color, keep it @@ -493,6 +493,25 @@ namespace BrewMonster.Scripts.Task.UI string strColorPreFix = A3DColorToString(GetTaskColor(pTempl)); return strColorPreFix + strTaskName; } + private string GetTaskNameWithColor(ATaskTempl pTempl, out Color color) + { + if (pTempl == null) { + color = Color.white; + return string.Empty; + } + var type = (ENUM_TASK_TYPE)pTempl.m_FixedData.m_ulType; + string rawName = ModelRenderer.Scripts.Common.ByteToStringUtils.UshortArrayToUnicodeString(pTempl.m_FixedData.m_szName); + + if (type == ENUM_TASK_TYPE.enumTTQiShaList && !string.IsNullOrEmpty(rawName) && rawName[0] == '^') + { + // 如果是七杀榜任务且已经加了颜色,则颜色不变 // If QiShaList task already has color, keep it + color = GetTaskColor(pTempl); + return rawName; + } + string strTaskName = GetTaskNameWithOutColor(pTempl); + color = GetTaskColor(pTempl); + return strTaskName; + } // static ACString GetTaskNameWithOutColor(const ATaskTempl* pTempl); private static string GetTaskNameWithOutColor(ATaskTempl pTempl) { @@ -520,6 +539,7 @@ namespace BrewMonster.Scripts.Task.UI } Color result; EC_Utility.STRING_TO_A3DCOLOR(GetStringFromTable(idType - (int)ENUM_TASK_TYPE.enumTTDaily + 3121), out result); + Debug.Log("[DlgTask] GetTaskColor result : " + result); return result; // return UnityEngine.Color.white; } @@ -684,7 +704,6 @@ namespace BrewMonster.Scripts.Task.UI if( idTask != m_idLastTask ) { _nameTaskText.SetText(EC_Utility.FormatForTextMeshPro(GetTaskNameWithColor(pTemp))); - //pTextDesc->SetText(FormatTaskText(pTemp->GetDescription(), pTextDesc->GetColor())); pTextDesc.SetText(EC_Utility.FormatForTextMeshPro(pTemp.GetDescription())); m_idLastTask = idTask; @@ -800,7 +819,7 @@ namespace BrewMonster.Scripts.Task.UI if (idTask != m_idLastTask) { _nameTaskText.SetText(EC_Utility.FormatForTextMeshPro(GetTaskNameWithColor(pTemp))); - + Debug.Log("[DlgTask] SearchForTask name task: " + _nameTaskText.text); if (pTextDesc != null) pTextDesc.SetText(EC_Utility.FormatForTextMeshPro(pTemp.GetDescription())); m_idLastTask = idTask; bLastTaskChanged = true; @@ -1049,8 +1068,10 @@ namespace BrewMonster.Scripts.Task.UI while (child != null) { uint id = child.m_FixedData.m_ID; - string text = GetTaskNameWithColor(child); + Color disPlayColor=Color.white; + string text = GetTaskNameWithColor(child,out disPlayColor); var pItem = pTreeTask.InsertItem(text, pRoot, null); + pItem.SetItemTextColor(disPlayColor); if (pItem != null) { pTreeTask.SetItemData(pItem, id); @@ -1065,6 +1086,7 @@ namespace BrewMonster.Scripts.Task.UI InsertTaskChildren(pItem, id, bExpand, bKey); child = child.m_pNextSibling; } + } // [中文] 仅插入“已接任务(Active)”中的子任务(基于 ActiveTaskList 的 Child/NextSbl 索引) @@ -1093,9 +1115,11 @@ namespace BrewMonster.Scripts.Task.UI uint childId = childEntry.m_ID; ATaskTempl childTempl = pMan.GetTaskTemplByID(childId); - string text = childTempl != null ? GetTaskNameWithColor(childTempl) : $"Task {childId}"; - + Color disPlayColor=Color.white; + string text = childTempl != null ? GetTaskNameWithColor(childTempl,out disPlayColor) : $"Task {childId}"; + Debug.Log("[DlgTask] InsertActiveTaskChildren text: " + text); var pItem = pTreeTask.InsertItem(text, pRoot, null); + pItem.SetItemTextColor(disPlayColor); if (pItem != null) { pTreeTask.SetItemData(pItem, childId); @@ -1742,10 +1766,12 @@ namespace BrewMonster.Scripts.Task.UI } // add Biggest node if not exist + string strItem = GetTaskNameWithColor(pTemp, out Color color); if(pParent ==null) { pParent = pTreeTask.InsertItem(GetStringFromTable(3101 + nTaskType - 100), null, pAfter); - // TODO: Expand tree node + pParent.SetItemTextColor(color); + // TODO: Expand tree node // pTreeTask.Expand(pParent, AUITREEVIEW_EXPAND_EXPAND); pTreeTask.SetItemData(pParent, nTaskType); @@ -1755,17 +1781,16 @@ namespace BrewMonster.Scripts.Task.UI CECTaskInterface pTask = GetHostPlayer()?.GetTaskInterface(); if (pTask == null) return; - string strItem = GetTaskNameWithColor(pTemp); bool bTaskPushed = pMan.IsTaskToPush(id) && !pTask.HasTask((uint)id); if (bTaskPushed) { strItem += GetStringFromTable(3100); } pItem = pTreeTask.InsertItem(strItem, pParent, null); - - if( pTemp.IsKeyTask() ) - // pTreeTask.SetItemTextColor(pItem, GetTaskColor((int)ENUM_TASK_TYPE.enumTTLevel2)); + pItem.SetItemTextColor(color); + if( pTemp.IsKeyTask() ) + { pItem.SetItemTextColor(GetTaskColor((int)ENUM_TASK_TYPE.enumTTLevel2)); - // pTreeTask.SetItemHint(pItem, pTemp->GetSignature()); // TODO + } pTreeTask.SetItemData(pItem, (uint)id); // HaveQuest view: children should reflect ActiveTaskList, not template tree (otherwise they never disappear on completion) if (m_iType == 0) diff --git a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs index e502b0d71e..fca186c3c6 100644 --- a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs +++ b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeView.cs @@ -53,6 +53,11 @@ namespace BrewMonster.Scripts.Task.UI { // Create a new item GameObject and component TaskTreeViewItem pItem = Instantiate(m_pTreeViewItemPrefab); + if(pParent != null) + { + pParent.SetLastItem(false); + } + pItem.SetLastItem(true); GameObject go = pItem.gameObject; // go.name = $"Task_{}"; if (pItem == null) return null; diff --git a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs index 57caf2cb56..e34184a6ee 100644 --- a/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs +++ b/Assets/PerfectWorld/Scripts/Task/UI/TaskTreeViewItem.cs @@ -4,22 +4,22 @@ using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; using UnityEngine.UI; - +using BrewMonster.Scripts.UI; namespace BrewMonster.Scripts.Task.UI { public class TaskTreeViewItem : MonoBehaviour, IRefreshLayout { - [SerializeField] private TMP_Text m_text; + [SerializeField] private TextOutlet m_text; [SerializeField] private Button m_Button; - [SerializeField] private Sprite[] _levelSprites; - [SerializeField] private Button _expandButton; - [SerializeField] private Button _collapseButton; + [SerializeField] private Toggle _expandToggle; + [SerializeField] private TextOutlet _expandText; + [SerializeField] private LayoutElement _space; [Header("DEBUG")] [SerializeField] private uint m_uItemData; [SerializeField] private int _treeLevel; private RectTransform _rectTransform; - + public bool isLastItem = true; public UnityEvent OnClick = new UnityEvent(); #region UNITY_METHODS @@ -27,10 +27,10 @@ namespace BrewMonster.Scripts.Task.UI private void Awake() { m_Button.onClick.AddListener(OnBtnClick); - _expandButton.onClick.AddListener(OnExpandBtnClicked); - _collapseButton.onClick.AddListener(OnCollapseBtnClicked); - _expandButton.gameObject.SetActive(false); - _collapseButton.gameObject.SetActive(false); + //_expandButton.onClick.AddListener(OnExpandBtnClicked); + //_collapseButton.onClick.AddListener(OnCollapseBtnClicked); + // _expandButton.gameObject.SetActive(false); + // _collapseButton.gameObject.SetActive(false); _rectTransform = GetComponent(); } @@ -66,24 +66,36 @@ namespace BrewMonster.Scripts.Task.UI if (m_text != null) { - m_text.color = color; + m_text.SetColor(color); + _expandText.SetColor(color); + } + } + public void SetLastItem(bool isLastItem) + { + this.isLastItem = isLastItem; + if(isLastItem) + { + _expandText.Set("●"); // thís not show in tmp text + _expandToggle.onValueChanged.RemoveAllListeners(); + } + else + { + _expandText.Set("+"); + _expandToggle.onValueChanged.AddListener(OnExpandToggleValueChanged); } } - public void SetItemText(string text) { if (m_text != null) { - m_text.text = text; + m_text.Set(text); } } public void SetTreeLevel(int level) { _treeLevel = level; - Image btnImage = m_Button.GetComponent(); - btnImage.sprite = _treeLevel < _levelSprites.Length ? _levelSprites[_treeLevel] : _levelSprites[^1]; - btnImage.SetNativeSize(); + _space.preferredWidth = level * 40; } public int GetTreeLevel() => _treeLevel; @@ -98,8 +110,8 @@ namespace BrewMonster.Scripts.Task.UI children[i].gameObject.SetActive(expand); } - _expandButton.gameObject.SetActive(!expand); - _collapseButton.gameObject.SetActive(expand); + //_expandButton.gameObject.SetActive(!expand); + //_collapseButton.gameObject.SetActive(expand); RefreshLayout(); } @@ -147,6 +159,19 @@ namespace BrewMonster.Scripts.Task.UI { SetExpand(false); } + + void OnExpandToggleValueChanged(bool isOn) + { + SetExpand(isOn); + if(isOn) + { + _expandText.Set("-"); + } + else + { + _expandText.Set("+"); + } + } } public struct TaskItemClickEvent diff --git a/Assets/PerfectWorld/Scripts/UI/TextOutlet.cs b/Assets/PerfectWorld/Scripts/UI/TextOutlet.cs index e68e976e1a..bb4d2ce16b 100644 --- a/Assets/PerfectWorld/Scripts/UI/TextOutlet.cs +++ b/Assets/PerfectWorld/Scripts/UI/TextOutlet.cs @@ -46,6 +46,19 @@ namespace BrewMonster.Scripts.UI tmp.text = formattedText; } } + + public void SetColor(Color color) + { + if (legacy != null) + { + legacy.color = color; + } + + if (tmp != null) + { + tmp.color = color; + } + } } }