fix Search Task feature

This commit is contained in:
MinhHai
2025-11-17 19:07:15 +07:00
parent 3826311391
commit 884a0274af
7 changed files with 631 additions and 117 deletions
@@ -8005,99 +8005,6 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &8588325617128089111
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1755208944688500795}
- component: {fileID: 6916443525973237579}
- component: {fileID: 3763656904659419767}
- component: {fileID: 3867069994250714290}
m_Layer: 5
m_Name: TreeView
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1755208944688500795
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8588325617128089111}
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: 3841808193842114691}
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: -151.28992, y: 336.93002}
m_SizeDelta: {x: 319.58, y: 0}
m_Pivot: {x: 0, y: 1}
--- !u!114 &6916443525973237579
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8588325617128089111}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8688b7d87bac4c16b9eaa3408f8ea419, type: 3}
m_Name:
m_EditorClassIdentifier:
m_pTreeViewItemPrefab: {fileID: 4314770845850481090, guid: 8752f9e95e4124abfb0d46a2cbe805e4, type: 3}
_currentSelectedItem: {fileID: 0}
m_aTreeViewItems: []
--- !u!114 &3763656904659419767
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8588325617128089111}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, 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: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!114 &3867069994250714290
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8588325617128089111}
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 &8632430288773790960
GameObject:
m_ObjectHideFlags: 0
@@ -8745,3 +8652,116 @@ MonoBehaviour:
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1001 &7843571476288588682
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 3841808193842114691}
m_Modifications:
- target: {fileID: 2014844157387861405, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_Name
value: TreeView
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_Pivot.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_Pivot.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_AnchorMax.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_AnchorMax.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_AnchorMin.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_AnchorMin.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_SizeDelta.x
value: 319.58
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_AnchoredPosition.x
value: -151.28992
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_AnchoredPosition.y
value: 336.93002
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
--- !u!224 &1755208944688500795 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 8395333742829132721, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
m_PrefabInstance: {fileID: 7843571476288588682}
m_PrefabAsset: {fileID: 0}
--- !u!114 &6916443525973237579 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 3685582830533743809, guid: 9456de25596014039bd4d0d3927b709a, type: 3}
m_PrefabInstance: {fileID: 7843571476288588682}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8688b7d87bac4c16b9eaa3408f8ea419, type: 3}
m_Name:
m_EditorClassIdentifier:
@@ -0,0 +1,95 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2014844157387861405
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8395333742829132721}
- component: {fileID: 3685582830533743809}
- component: {fileID: 6404897883559725565}
- component: {fileID: 6445602249794385720}
m_Layer: 5
m_Name: TreeView
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8395333742829132721
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2014844157387861405}
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: 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: -151.28992, y: 336.93002}
m_SizeDelta: {x: 319.58, y: 0}
m_Pivot: {x: 0, y: 1}
--- !u!114 &3685582830533743809
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2014844157387861405}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8688b7d87bac4c16b9eaa3408f8ea419, type: 3}
m_Name:
m_EditorClassIdentifier:
m_pTreeViewItemPrefab: {fileID: 4314770845850481090, guid: 8752f9e95e4124abfb0d46a2cbe805e4, type: 3}
_currentSelectedItem: {fileID: 0}
m_aTreeViewItems: []
--- !u!114 &6404897883559725565
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2014844157387861405}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, 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: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!114 &6445602249794385720
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2014844157387861405}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 0
m_VerticalFit: 2
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 9456de25596014039bd4d0d3927b709a
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -53,7 +53,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_text: {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}
m_uItemData: 0
_treeLevel: 0
OnClick:
m_PersistentCalls:
m_Calls: []
@@ -110,7 +116,7 @@ GameObject:
- component: {fileID: 9062463037674165507}
- component: {fileID: 1762532130762754577}
m_Layer: 5
m_Name: Button
m_Name: MainButton
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -129,6 +135,8 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5827054231092576763}
- {fileID: 7277676979067820762}
- {fileID: 2849245307131571463}
m_Father: {fileID: 5053903421260846465}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@@ -293,8 +301,8 @@ MonoBehaviour:
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4278190080
m_fontColor: {r: 0, g: 0, b: 0, a: 1}
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
@@ -314,9 +322,9 @@ MonoBehaviour:
m_fontSize: 40
m_fontSizeBase: 40
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_enableAutoSizing: 1
m_fontSizeMin: 15
m_fontSizeMax: 40
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
@@ -375,3 +383,285 @@ MonoBehaviour:
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &4773363917894322918
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2849245307131571463}
- component: {fileID: 8656005255261122099}
- component: {fileID: 9103345587361145036}
- component: {fileID: 8676942769405651249}
- component: {fileID: 2374156541160748953}
m_Layer: 5
m_Name: CollapseBtn
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2849245307131571463
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_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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 35, y: 5.8}
m_SizeDelta: {x: 31, y: 21}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8656005255261122099
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4773363917894322918}
m_CullTransparentMesh: 1
--- !u!114 &9103345587361145036
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: 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: 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
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_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 &6863650808120944178
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7277676979067820762}
- component: {fileID: 885853373149276158}
- component: {fileID: 1569122208421759741}
- component: {fileID: 1715406348461528812}
- component: {fileID: 9213068811979301399}
m_Layer: 5
m_Name: ExpandBtn
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7277676979067820762
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6863650808120944178}
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: 3882154025378162395}
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: 35, y: 0}
m_SizeDelta: {x: 31, y: 21}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &885853373149276158
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6863650808120944178}
m_CullTransparentMesh: 1
--- !u!114 &1569122208421759741
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6863650808120944178}
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: 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 &1715406348461528812
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6863650808120944178}
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: 1569122208421759741}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &9213068811979301399
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6863650808120944178}
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
@@ -1,5 +1,8 @@
using System;
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEditor.SceneManagement;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
@@ -37,7 +40,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
if (m_aTreeViewItems == null)
{
m_aTreeViewItems = GetComponentsInChildren<TaskTreeViewItem>();
m_aTreeViewItems = GetComponentsInChildren<TaskTreeViewItem>(true);
}
for (int i = 0; i < m_aTreeViewItems.Length - 1; i++)
@@ -62,8 +65,6 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
// Parent: root (this) if null; otherwise under given parent item
var parentTransform = (pParent != null ? pParent.transform : this.transform);
go.transform.SetParent(parentTransform, false);
RefreshLayout(parentTransform.GetComponent<RectTransform>());
RefreshLayout(this.GetComponent<RectTransform>());
// Set sibling position: after specific item if provided; otherwise append to end
if (pAfter != null && pAfter.transform.parent == parentTransform)
@@ -80,21 +81,34 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
// var label = go.GetComponentInChildren<TMPro.TMP_Text>(true);
// if (label != null) label.text = text ?? string.Empty;
pItem.SetItemText(text);
pItem.SetTreeLevel(pParent != null ? pParent.GetTreeLevel() + 1 : 0);
// Refresh local cache of items
m_aTreeViewItems = GetComponentsInChildren<TaskTreeViewItem>();
m_aTreeViewItems = GetComponentsInChildren<TaskTreeViewItem>(true);
// pParent.RefreshLayout();
if(pParent) pParent.SetExpand(false); // Collapse parent to show new item only when expanded
return pItem;
}
public void DeleteAllItems()
{
List<Transform> childrenCopy = new();
foreach (Transform child in transform)
{
// Destroy(child.GetComponent<TaskTreeViewItem>());
childrenCopy.Add(child);
}
foreach (var child in childrenCopy)
{
child.SetParent(null);
Destroy(child.gameObject);
}
m_aTreeViewItems = null;
// m_aTreeViewItems = GetComponentsInChildren<TaskTreeViewItem>(true);
_currentSelectedItem = null;
}
@@ -103,7 +117,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
{
if (m_aTreeViewItems == null)
{
m_aTreeViewItems = GetComponentsInChildren<TaskTreeViewItem>();
m_aTreeViewItems = GetComponentsInChildren<TaskTreeViewItem>(true);
}
foreach (var item in m_aTreeViewItems)
@@ -116,6 +130,11 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
return null;
}
public TaskTreeViewItem GetFirstChild()
{
return transform.childCount == 0 ? null : transform.GetChild(0).GetComponent<TaskTreeViewItem>();
}
public TaskTreeViewItem GetSelectedItem()
{
@@ -127,8 +146,10 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
_currentSelectedItem = GetItemByData(idItem);
}
public void RefreshLayout(RectTransform parent)
public void RefreshLayout()
{
var parent = GetComponent<RectTransform>();
// Force Unity to rebuild layout immediately
parent.ForceUpdateRectTransforms();
LayoutRebuilder.ForceRebuildLayoutImmediate(parent);
@@ -11,10 +11,14 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
{
[SerializeField] private TMP_Text m_text;
[SerializeField] private Button m_Button;
[SerializeField] private Sprite[] _levelSprites;
[SerializeField] private Button _expandButton;
[SerializeField] private Button _collapseButton;
[Header("DEBUG")]
[SerializeField] private uint m_uItemData;
[SerializeField] private int _treeLevel;
private RectTransform _rectTransform;
public UnityEvent<uint> OnClick = new UnityEvent<uint>();
@@ -23,8 +27,12 @@ namespace BrewMonster.PerfectWorld.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);
_rectTransform = GetComponent<RectTransform>();
}
// private void Start()
@@ -39,6 +47,9 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
// }
#endregion
#region PUBLIC_METHODS
public void SetItemData(uint uItemData)
{
m_uItemData = uItemData;
@@ -66,6 +77,34 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
m_text.text = text;
}
}
public void SetTreeLevel(int level)
{
_treeLevel = level;
Image btnImage = m_Button.GetComponent<Image>();
btnImage.sprite = _treeLevel < _levelSprites.Length ? _levelSprites[_treeLevel] : _levelSprites[^1];
btnImage.SetNativeSize();
}
public int GetTreeLevel() => _treeLevel;
public void SetExpand(bool expand)
{
var children = GetComponentsInChildren<TaskTreeViewItem>(true);
for (int i=1; i<children.Length; i++)
{
if(children[i].GetTreeLevel() == _treeLevel + 1)
children[i].gameObject.SetActive(expand);
}
_expandButton.gameObject.SetActive(!expand);
_collapseButton.gameObject.SetActive(expand);
RefreshLayout();
}
#endregion
// public void OnPointerClick(PointerEventData eventData)
// {
@@ -73,13 +112,37 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
// EventBus.Publish(new TaskItemClickEvent() { Data = m_uItemData });
// // TaskWindow.Instance.OnEventLButtonDown_Tv_Quest(m_uItemData);
// }
public void RefreshLayout()
{
var rectTransform = _rectTransform;
if (rectTransform == null)
{
return;
}
// Force Unity to rebuild layout immediately
rectTransform.ForceUpdateRectTransforms();
LayoutRebuilder.ForceRebuildLayoutImmediate(rectTransform);
transform.parent.SendMessage("RefreshLayout");
}
void OnBtnClick()
{
OnClick.Invoke(m_uItemData);
EventBus.Publish(new TaskItemClickEvent() { Data = m_uItemData });
}
void OnExpandBtnClicked()
{
SetExpand(expand: true);
}
void OnCollapseBtnClicked()
{
SetExpand(false);
}
}
public struct TaskItemClickEvent
@@ -139,7 +139,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
OnShowDialog();
}
private void Start()
private void Awake()
{
EventBus.Subscribe<TaskItemClickEvent>(evt =>
{
@@ -260,9 +260,9 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
private static string GetTaskNameWithColor(ATaskTempl pTempl)
{
if (pTempl == null) return string.Empty;
var type = (BrewMonster.Scripts.Task.ENUM_TASK_TYPE)pTempl.m_FixedData.m_ulType;
var type = (ENUM_TASK_TYPE)pTempl.m_FixedData.m_ulType;
string rawName = ModelRenderer.Scripts.Common.ByteToStringUtils.UshortArrayToUnicodeString(pTempl.m_FixedData.m_szName);
if (type == BrewMonster.Scripts.Task.ENUM_TASK_TYPE.enumTTQiShaList && !string.IsNullOrEmpty(rawName) && rawName[0] == '^')
if (type == ENUM_TASK_TYPE.enumTTQiShaList && !string.IsNullOrEmpty(rawName) && rawName[0] == '^')
{
// 如果是七杀榜任务且已经加了颜色,则颜色不变 // If QiShaList task already has color, keep it
return rawName;
@@ -432,6 +432,10 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
SetActive(pTemp.m_FixedData.m_enumMethod == (uint)TaskCompletionMethod.enumTMReachTreasureZone);
}
}
else
{
Debug.LogError($"Task {idTask} not found ATaskTempl !!!");
}
}
else
{
@@ -662,7 +666,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
// virtual bool OnInitDialog();
void OnShowDialog()
{
// if (!m_idSelTask)
if (m_idSelTask != 0)
UpdateTask();
}
// virtual void OnHideDialog();
@@ -919,8 +923,20 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
return "Tu chân";
case 3103:
return "Chủ tuyến";
case 3104:
return "Phụ tuyến";
case 3105:
return "Event";
case 3106:
return "7 Killer List";
case 3107:
return "Bang hội";
case 3108:
return "Management";
case 3109:
return "Huyền thoại";
case 3110:
return "Câu hỏi";
case 3201:
return "Gold:";
case 3202:
@@ -936,7 +952,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
case 7621:
return "NPC giao nhiệm vụ: ";
default:
return "UnKnown String";
return $"UnKnown_{id} ";
}
}
@@ -1269,7 +1285,8 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
uint nAfterType = 0;
TaskTreeViewItem pAfter = null, pParent = null;
// P_AUITREEVIEW_ITEM pItem = pTreeTask->GetFirstChildItem(pTreeTask->GetRootItem());
var pItem = pTreeTask.transform.parent.GetChild(0).GetComponent<TaskTreeViewItem>();
// var pItem = pTreeTask.transform.parent.GetChild(0).GetComponent<TaskTreeViewItem>();
var pItem = pTreeTask.GetFirstChild();
while( pItem )
{
uint nType = pItem.GetItemData();
@@ -1284,6 +1301,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
pItem = pTreeTask.GetNextSiblingItem(pItem);
}
// add Biggest node if not exist
if(pParent ==null)
{
pParent = pTreeTask.InsertItem(GetStringFromTable(3101 + nTaskType - 100), null, pAfter);
@@ -1292,7 +1310,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
pTreeTask.SetItemData(pParent, nTaskType);
//if(nTaskType == enumTTLevel2)
//pTreeTask.SetItemTextColor(pParent, GetTaskColor(pTemp));
// pTreeTask.SetItemTextColor(pParent, GetTaskColor(pTemp));
}
CECTaskInterface pTask = GetHostPlayer().GetTaskInterface();
@@ -1326,7 +1344,7 @@ namespace BrewMonster.PerfectWorld.Scripts.Task.UI
// Collect direct children under the tree root (this component's transform)
int childCount = pTreeTask.transform.childCount;
var items = new System.Collections.Generic.List<(uint type, TaskTreeViewItem item)>(childCount);
var items = new List<(uint type, TaskTreeViewItem item)>(childCount);
for (int i = 0; i < childCount; i++)
{
var child = pTreeTask.transform.GetChild(i).GetComponent<TaskTreeViewItem>();