diff --git a/Assets/Resources/Prefabs/UI/PRF_TreeItem.prefab b/Assets/Resources/Prefabs/UI/PRF_TreeItem.prefab new file mode 100644 index 00000000..9586518c --- /dev/null +++ b/Assets/Resources/Prefabs/UI/PRF_TreeItem.prefab @@ -0,0 +1,1092 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1840533153946293497 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1674835948510930138} + - component: {fileID: 2761050919008094849} + - component: {fileID: 4924050416304663335} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1674835948510930138 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1840533153946293497} + 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: 6461503404822264349} + m_Father: {fileID: 1139124810347349491} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 10, y: -10} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2761050919008094849 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1840533153946293497} + m_CullTransparentMesh: 1 +--- !u!114 &4924050416304663335 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1840533153946293497} + 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: cacaf83c4f5642244a1e47f13500c4a0, 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 &1872321359593175440 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5846011330110797203} + - component: {fileID: 794831765906261582} + m_Layer: 5 + m_Name: toggle_expand + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5846011330110797203 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1872321359593175440} + 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: 5448571879660089354} + m_Father: {fileID: 781153729944244356} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -71.47005, y: 0} + m_SizeDelta: {x: -183, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &794831765906261582 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1872321359593175440} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 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: 4201098481859865004} + toggleTransition: 1 + graphic: {fileID: 5634143905273641747} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 +--- !u!1 &2727932846520202876 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3391182455018014717} + - component: {fileID: 5063128079365079435} + - component: {fileID: 5634143905273641747} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3391182455018014717 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2727932846520202876} + 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: 5448571879660089354} + 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: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5063128079365079435 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2727932846520202876} + m_CullTransparentMesh: 1 +--- !u!114 &5634143905273641747 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2727932846520202876} + 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.2735849, g: 0.2735849, b: 0.2735849, 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: 12f136f851d190748b87007168cb66e8, 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 &3126461128818695717 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4052098384612942501} + - component: {fileID: -4089187398032661760} + - component: {fileID: 4729839108911264288} + - component: {fileID: -2546446460858936998} + m_Layer: 0 + m_Name: PRF_TreeItem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4052098384612942501 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3126461128818695717} + 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: 781153729944244356} + 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: 0, y: 0} + m_SizeDelta: {x: 200, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!225 &-4089187398032661760 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3126461128818695717} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &4729839108911264288 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3126461128818695717} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac0660c9602721445bf58cd13e50cccd, type: 3} + m_Name: + m_EditorClassIdentifier: + button_selectitem: {fileID: 2650445370909264808} +--- !u!114 &-2546446460858936998 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3126461128818695717} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9e3cc64011e8dbe428cf3fe9304f9a9a, type: 3} + m_Name: + m_EditorClassIdentifier: + cloneAlpha: 0.4 +--- !u!1 &3257874987268345835 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2930517143239486431} + - component: {fileID: 3256726597987817484} + - component: {fileID: 8157835735407938571} + - component: {fileID: 2650445370909264808} + m_Layer: 5 + m_Name: button_selectitem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2930517143239486431 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3257874987268345835} + 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: 4880202425684281515} + m_Father: {fileID: 781153729944244356} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 20.400024, y: -15} + m_SizeDelta: {x: -42, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3256726597987817484 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3257874987268345835} + m_CullTransparentMesh: 1 +--- !u!114 &8157835735407938571 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3257874987268345835} + 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.20784315, g: 0.20784315, b: 0.20784315, 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: 951352f31055aae46b6e9786313c632d, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 12 +--- !u!114 &2650445370909264808 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3257874987268345835} + 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: 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: 8157835735407938571} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &4584230400346581987 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1139124810347349491} + - component: {fileID: 571620319360697803} + m_Layer: 5 + m_Name: toggle_interactible + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1139124810347349491 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4584230400346581987} + 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: 1674835948510930138} + m_Father: {fileID: 781153729944244356} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -97.6, y: 0} + m_SizeDelta: {x: -183, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &571620319360697803 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4584230400346581987} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 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.3137255} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 21300000, guid: 89e149e4fbbb5784aa4667ac9fd39605, type: 3} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 21300000, guid: 89e149e4fbbb5784aa4667ac9fd39605, type: 3} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 4924050416304663335} + toggleTransition: 1 + graphic: {fileID: 3540391377763156888} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 0 +--- !u!1 &4623861053941016335 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7245257189254118668} + - component: {fileID: 6155945282173470883} + m_Layer: 5 + m_Name: toggle_display + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7245257189254118668 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4623861053941016335} + 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: 528809466010943793} + m_Father: {fileID: 781153729944244356} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -118.6, y: 0} + m_SizeDelta: {x: -183, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6155945282173470883 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4623861053941016335} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 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: 21300000, guid: 852af70e3243e31408aa8260c1ef13fb, type: 3} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1748522627770266080} + toggleTransition: 1 + graphic: {fileID: 8785804727362606583} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 0 +--- !u!1 &6142008427819745495 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 781153729944244356} + - component: {fileID: 1090767375716247149} + m_Layer: 5 + m_Name: PRF_HierarchyItem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &781153729944244356 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6142008427819745495} + 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: 5846011330110797203} + - {fileID: 1139124810347349491} + - {fileID: 7245257189254118668} + - {fileID: 2930517143239486431} + m_Father: {fileID: 4052098384612942501} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1090767375716247149 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6142008427819745495} + m_CullTransparentMesh: 1 +--- !u!1 &6781485657967279796 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1510799025812191610} + - component: {fileID: 2866331363706418530} + - component: {fileID: 8785804727362606583} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1510799025812191610 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6781485657967279796} + 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: 528809466010943793} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2866331363706418530 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6781485657967279796} + m_CullTransparentMesh: 1 +--- !u!114 &8785804727362606583 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6781485657967279796} + 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: 852af70e3243e31408aa8260c1ef13fb, 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 &6783393903142964293 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 528809466010943793} + - component: {fileID: 1311175291943194076} + - component: {fileID: 1748522627770266080} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &528809466010943793 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6783393903142964293} + 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: 1510799025812191610} + m_Father: {fileID: 7245257189254118668} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 10, y: -10} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1311175291943194076 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6783393903142964293} + m_CullTransparentMesh: 1 +--- !u!114 &1748522627770266080 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6783393903142964293} + 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: e07717fc47a510742ac0b11da205b050, 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 &6972667054104627045 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6461503404822264349} + - component: {fileID: 5244900662775748046} + - component: {fileID: 3540391377763156888} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6461503404822264349 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6972667054104627045} + 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: 1674835948510930138} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5244900662775748046 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6972667054104627045} + m_CullTransparentMesh: 1 +--- !u!114 &3540391377763156888 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6972667054104627045} + 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: 89e149e4fbbb5784aa4667ac9fd39605, 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 &8068188843903775968 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4880202425684281515} + - component: {fileID: 4501037252581299922} + - component: {fileID: 3201079663898410440} + m_Layer: 5 + m_Name: text_name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4880202425684281515 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8068188843903775968} + 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: 2930517143239486431} + 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: -10, y: -10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4501037252581299922 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8068188843903775968} + m_CullTransparentMesh: 1 +--- !u!114 &3201079663898410440 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8068188843903775968} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 69abd87f38225ed46aa612577c25f379, type: 2} + m_sharedMaterial: {fileID: -7290017371581542385, guid: 69abd87f38225ed46aa612577c25f379, 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: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 12 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 1 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + 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 &9174119894496944699 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5448571879660089354} + - component: {fileID: 5467194653248346024} + - component: {fileID: 4201098481859865004} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5448571879660089354 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9174119894496944699} + 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: 3391182455018014717} + m_Father: {fileID: 5846011330110797203} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 10, y: -10} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5467194653248346024 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9174119894496944699} + m_CullTransparentMesh: 1 +--- !u!114 &4201098481859865004 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9174119894496944699} + 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: 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 diff --git a/Assets/Resources/Prefabs/UI/PRF_TreeItem.prefab.meta b/Assets/Resources/Prefabs/UI/PRF_TreeItem.prefab.meta new file mode 100644 index 00000000..6562acf2 --- /dev/null +++ b/Assets/Resources/Prefabs/UI/PRF_TreeItem.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9864e9f028e578f44a4f6f29cbe44ae0 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/legacy.meta b/Assets/legacy.meta new file mode 100644 index 00000000..3c482a43 --- /dev/null +++ b/Assets/legacy.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c04ed7ceb0169454a8af4113cec522c4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/legacy/Scripts.meta b/Assets/legacy/Scripts.meta new file mode 100644 index 00000000..924e16e6 --- /dev/null +++ b/Assets/legacy/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a7c7d3c156415e34fa2a225d94bbca75 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/legacy/Scripts/HierarchyTree.cs b/Assets/legacy/Scripts/HierarchyTree.cs new file mode 100644 index 00000000..b45ec237 --- /dev/null +++ b/Assets/legacy/Scripts/HierarchyTree.cs @@ -0,0 +1,194 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using UnityEngine.PlayerLoop; +using XRLib; + +namespace XED +{ + public class HierarchyTree : MonoBehaviour, ISingle + { + public event Action onAddEvent; + public event Action onSelectEvent; + public event Action onRemoveEvent; + public event Action onDeselectEvent; + public event Action> onDataUpdate; + + HashSet tempHashSet = new(); + + HashSet rootObjects = new(); + List data = new List(); + Dictionary twinToItem = new Dictionary(); + + TreeItem_ CreateItem(TwinObject to) + { + TreeItem_ item = new TreeItem_(to); + data.Add(item); + twinToItem.Add(to, item); + return item; + } + + public bool isExist(TwinObject to) + { + return rootObjects.Contains(to); + } + + public void Add(TwinObject to) + { + if (!rootObjects.Add(to)) + return; + + if (to is Wall) + return; + + var item = CreateItem(to); + onAddEvent?.Invoke(item); + } + + public void Remove(TwinObject to) + { + if (!rootObjects.Contains(to)) + { + return; + } + GetChilds(twinToItem[to]); + foreach (var item in tempHashSet) + { + switch (item.ToItem) + { + case WallGroup wg: + foreach (var items in wg.groupWalls) + { + rootObjects.Remove(items); + } + rootObjects.Remove(wg); + break; + default: + rootObjects.Remove(item.ToItem); + break; + } + item.parent?.RemoveChild(item); + onRemoveEvent?.Invoke(item.ToItem); + item.DestroyTreeItem(); + data.Remove(item); + twinToItem.Remove(item.ToItem); + Destroy(item.ToItem.gameObject); + } + tempHashSet.Clear(); + onDataUpdate(data); + } + + void GetChilds(TreeItem_ go) + { + tempHashSet.Add(go); + foreach (var c in go.children) + { + GetChilds(c); + } + } + + public void Attach(TreeItem_ p, TreeItem_ t) + { + if (!data.Contains(p)) + { + Debug.LogError("Parent not found"); + return; + } + if (!data.Contains(t)) + { + Debug.LogError("Child not found"); + return; + } + if (p == t) + { + return; + } + GetChilds(t); + foreach (var item in tempHashSet) + { + if (p.parent == item) + { + Debug.LogError("It is infinite"); + tempHashSet.Clear(); + return; + } + } + + t.parent?.RemoveChild(t); + p.Add(t); + t.parent = p; + data.Remove(t); + var index = data.IndexOf(p) + 1; + if (index >= data.Count) + { + if (tempHashSet.Count > 1) + { + foreach (var item in tempHashSet) + { + data?.Remove(item); + data.Add(item); + } + } + else + { + data.Add(t); + } + } + else + { + int i = 0; + if (tempHashSet.Count > 1) + { + foreach (var item in tempHashSet) + { + data?.Remove(item); + data.Insert(index + i, item); + i++; + } + } + else + { + data.Insert(index, t); + } + } + tempHashSet.Clear(); + onDataUpdate(data); + } + + public void Dettach(TreeItem_ item) + { + if (!data.Contains(item)) + { + Debug.LogError("Not found"); + return; + } + + item.parent?.RemoveChild(item); + item.parent = null; + GetChilds(item); + foreach (var i in tempHashSet) + { + data?.Remove(i); + data.Add(i); + } + tempHashSet.Clear(); + onDataUpdate(data); + } + + internal void Select(TwinObject to) + { + onSelectEvent?.Invoke(twinToItem[to]); + } + + public void Select(TreeItem_ ti) + { + onSelectEvent?.Invoke(ti); + } + + internal void Deselect(TwinObject to) + { + onDeselectEvent?.Invoke(twinToItem[to]); + } + } +} diff --git a/Assets/legacy/Scripts/HierarchyTree.cs.meta b/Assets/legacy/Scripts/HierarchyTree.cs.meta new file mode 100644 index 00000000..df09761e --- /dev/null +++ b/Assets/legacy/Scripts/HierarchyTree.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 400f59e21429ab5409c7c43eef737e6f \ No newline at end of file diff --git a/Assets/legacy/Scripts/Panel_Hierarchy.cs b/Assets/legacy/Scripts/Panel_Hierarchy.cs new file mode 100644 index 00000000..a9983317 --- /dev/null +++ b/Assets/legacy/Scripts/Panel_Hierarchy.cs @@ -0,0 +1,195 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices.Expando; +using System.Security.Cryptography; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.SubsystemsImplementation; +using UnityEngine.UI; +using XRLib; +using XRLib.UI; +using XED.UI; + +namespace XED +{ + public class Panel_Hierarchy : PanelBase,IDropHandler + { + public ScrollRect scrollrect_hierarchycontent; + public UI_HierarchyItem prf_hierarchyitem; + + internal Action onClickItem; + internal Action onItemDrop; + internal Action OnItemDropOnItem; + + private Dictionary itemToView = new(); + private Dictionary viewToItem = new(); + HashSet tempHashSet = new(); + + public float tap = 30f; + + enum AnimationParameter + { + Contract + } + + public override void AfterAwake() + { + prf_hierarchyitem = Resources.Load("Prefabs/UI/PRF_TreeItem"); + } + + public void OnDrop(PointerEventData eventData) + { + if (eventData.pointerDrag != null) + { + UI_HierarchyItem draggeditem = eventData.pointerDrag.GetComponent(); + if (draggeditem) + { + var item = viewToItem[draggeditem]; + onItemDrop(item); + } + } + } + + void HierarchyExpand(bool value) + { + GetComponent().SetBool(AnimationParameter.Contract.ToString(), value); + } + + public void AddItem(TreeItem_ item) + { + UI_HierarchyItem itemView = Instantiate(prf_hierarchyitem, scrollrect_hierarchycontent.content); + item.onExpand += Expand; + item.onFold += Fold; + itemView.Set(item); + itemView.onDestroy += RemoveItem; + itemView.onClick += OnClickItem; + + UI_DragDrop_ ui_DragDrop = itemView.transform.GetComponent(); + ui_DragDrop.OnDropItem += ItemDrop; + + viewToItem.Add(itemView, item); + itemToView.Add(item, itemView); + } + + void ItemDrop(UIBase parent, UIBase child) + { + if(parent is UI_HierarchyItem parentItem && child is UI_HierarchyItem childItem) + { + var pi = viewToItem[parentItem]; + var ci = viewToItem[childItem]; + OnItemDropOnItem(pi, ci); + } + } + + void Expand(TreeItem_ item) + { + var rootChildren = item.children; + for (int i = 0; i < rootChildren.Count; ++i) + { + var rootChild = item.children[i]; + tempHashSet.Add(rootChild); + + if (!rootChild.expanded) + { + continue; + } + + var rootChildItem = rootChild; + for (int j = 0; j < rootChildItem.children.Count; ++j) + { + var leafChild = rootChildItem.children[j]; + GetExpandTargets(leafChild); + } + } + foreach (var r in tempHashSet) + { + + itemToView[r].gameObject.SetActive(true); + } + tempHashSet.Clear(); + } + + void GetExpandTargets(TreeItem_ i) + { + tempHashSet.Add(i); + if (!i.expanded) + { + return; + } + + var children = i.children; + foreach (var item in children) + { + tempHashSet.Add(item); + GetExpandTargets(item); + } + } + + void Fold(TreeItem_ item) + { + GetFoldTargets(item); + foreach (var r in tempHashSet) + { + var view = itemToView[r]; + view.SetActive(false); + } + tempHashSet.Clear(); + } + + void GetFoldTargets(TreeItem_ i) + { + var children = i.children; + foreach (var item in children) + { + if (itemToView[i].gameObject.activeSelf) + { + tempHashSet.Add(item); + GetFoldTargets(item); + } + } + } + + public void ActiveHighlightItem(TreeItem_ item) + { + if (itemToView.ContainsKey(item)) + { + itemToView[item].ActiveHighlight(); + } + } + + public void DeactiveHighlightItem(TreeItem_ item) + { + if (itemToView.ContainsKey(item)) + { + itemToView[item].DeactvieHighlight(); + } + } + + public void UpdateIndex(List data) + { + for(int i = 0; i < data.Count; i++) + { + var item = data[i]; + var view = itemToView[item]; + var depth = data[i].depth; + view.transform.SetSiblingIndex(i); + var TapRectTransform = view.transform.GetChild(0).GetComponentInChildren(true); + TapRectTransform.offsetMin = new Vector2(depth * tap, TapRectTransform.offsetMin.y); + + } + } + + void OnClickItem(UI_HierarchyItem view) + { + var item = viewToItem[view]; + onClickItem?.Invoke(item.ToItem); + } + + public void RemoveItem(UI_HierarchyItem to) + { + itemToView.Remove(viewToItem[to]); + viewToItem.Remove(to); + } + } +} diff --git a/Assets/legacy/Scripts/Panel_Hierarchy.cs.meta b/Assets/legacy/Scripts/Panel_Hierarchy.cs.meta new file mode 100644 index 00000000..99e910ee --- /dev/null +++ b/Assets/legacy/Scripts/Panel_Hierarchy.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 39734de062d30454a9ebdbf748af07ca \ No newline at end of file diff --git a/Assets/legacy/Scripts/Tester.cs b/Assets/legacy/Scripts/Tester.cs new file mode 100644 index 00000000..2ddde659 --- /dev/null +++ b/Assets/legacy/Scripts/Tester.cs @@ -0,0 +1,34 @@ +using UnityEngine; + +namespace XED +{ + public class Tester : MonoBehaviour + { + Panel_Hierarchy ph; + HierarchyTree ht; + GameObject renderObjectPrefab; + // Start is called once before the first execution of Update after the MonoBehaviour is created + void Start() + { + ph=FindObjectOfType(); + ht = FindObjectOfType(); + ht.onAddEvent += ph.AddItem; + ph.OnItemDropOnItem += ht.Attach; + ht.onDataUpdate += ph.UpdateIndex; + ph.onItemDrop += ht.Dettach; + renderObjectPrefab = Resources.Load("Prefabs/PRF_RenderObject"); + } + + // Update is called once per frame + void Update() + { + if (Input.GetKeyDown(KeyCode.A)) + { + var obj = Instantiate(renderObjectPrefab); + var to = obj.GetComponent(); + to.name = to.name.Replace("(Clone)", ""); + ht.Add(to); + } + } + } +} diff --git a/Assets/legacy/Scripts/Tester.cs.meta b/Assets/legacy/Scripts/Tester.cs.meta new file mode 100644 index 00000000..836b206f --- /dev/null +++ b/Assets/legacy/Scripts/Tester.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 2f7ab64367eb074498afe02ab1069901 \ No newline at end of file diff --git a/Assets/legacy/Scripts/TreeItem_.cs b/Assets/legacy/Scripts/TreeItem_.cs new file mode 100644 index 00000000..1ab6a003 --- /dev/null +++ b/Assets/legacy/Scripts/TreeItem_.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace XED +{ + public class TreeItem_ + { + public TwinObject ToItem; + //public UI_HierarchyItem View; + public event Action OnDestroyTreeItem; + + public int depth + { + get + { + TreeItem_ curr = parent; + int result = 0; + while (curr != null) + { + result++; + curr = curr.parent; + } + return result; + } + } + public List children = new List(); + public TreeItem_ parent; + public bool expanded = true; + public event Action onExpand; + public event Action onFold; + + public TreeItem_(TwinObject to) + { + ToItem = to; + } + + internal void Add(TreeItem_ t) + { + children.Add(t); + } + + internal void RemoveChild(TreeItem_ c) + { + children.Remove(c); + } + + public void OnExpand(bool value) + { + expanded = value; + if (value) + onExpand?.Invoke(this); + else + onFold?.Invoke(this); + } + + public void DestroyTreeItem() + { + OnDestroyTreeItem?.Invoke(); + } + } +} diff --git a/Assets/legacy/Scripts/TreeItem_.cs.meta b/Assets/legacy/Scripts/TreeItem_.cs.meta new file mode 100644 index 00000000..b5bbe7b2 --- /dev/null +++ b/Assets/legacy/Scripts/TreeItem_.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 77ba20c023097c043a1b8a635d780135 \ No newline at end of file diff --git a/Assets/legacy/Scripts/UI_DragDrop_.cs b/Assets/legacy/Scripts/UI_DragDrop_.cs new file mode 100644 index 00000000..682449c0 --- /dev/null +++ b/Assets/legacy/Scripts/UI_DragDrop_.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +using XRLib.UI; + +namespace XED +{ + public class UI_DragDrop_ : MonoBehaviour,IBeginDragHandler,IDragHandler,IEndDragHandler,IDropHandler + { + GameObject Clone; + public float cloneAlpha=1f; + public Action OnDropItem; + public void OnBeginDrag(PointerEventData eventData) + { + Clone=Instantiate(gameObject,gameObject.transform.parent); + Clone.GetComponent().blocksRaycasts = false; + var CI = Clone.GetComponentsInChildren(); + foreach(var c in CI) + { + c.color = new Color(c.color.r, c.color.g, c.color.b, cloneAlpha); + } + } + public void OnDrag(PointerEventData eventData) + { + Clone.transform.position = Input.mousePosition; + } + public void OnEndDrag(PointerEventData eventData) + { + Destroy(Clone); + } + + public void OnDrop(PointerEventData eventData) + { + if (eventData.pointerDrag != null) + { + UI_DragDrop_ draggedItem = eventData.pointerDrag.GetComponent(); + if (draggedItem) + { + OnDropItem?.Invoke(gameObject.GetComponent(), draggedItem.GetComponent()); + } + } + } + } +} diff --git a/Assets/legacy/Scripts/UI_DragDrop_.cs.meta b/Assets/legacy/Scripts/UI_DragDrop_.cs.meta new file mode 100644 index 00000000..3418feac --- /dev/null +++ b/Assets/legacy/Scripts/UI_DragDrop_.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 9e3cc64011e8dbe428cf3fe9304f9a9a \ No newline at end of file diff --git a/Assets/legacy/Scripts/UI_HierarchyItem.cs b/Assets/legacy/Scripts/UI_HierarchyItem.cs new file mode 100644 index 00000000..3dbf30b5 --- /dev/null +++ b/Assets/legacy/Scripts/UI_HierarchyItem.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using TMPro; +using UnityEngine; +using UnityEngine.UI; +using XRLib; +using XRLib.UI; + +namespace XED +{ + public class UI_HierarchyItem : UIBase + { + public Button button_selectitem; + public event Action onClick; + public event Action onDestroy; + + + // Start is called before the first frame update + public void Set(TreeItem_ Treeitem) + { + var item = Treeitem; + var toitem = Treeitem.ToItem; + item.OnDestroyTreeItem += DestroyItemView; + + TextMeshProUGUI text_name = Find(nameof(text_name)); + text_name.SetText(toitem.name); + + Toggle toggle_display = Find(nameof(toggle_display)); + toggle_display.onValueChanged.AddListener(toitem.SetDisplayable); + + Toggle toggle_interactible = Find(nameof(toggle_interactible)); + toggle_interactible.onValueChanged.AddListener(toitem.SetInteractible); + + Toggle toggle_expand = Find(nameof(toggle_expand)); + toggle_expand.onValueChanged.AddListener(item.OnExpand); + + button_selectitem = Find