오브젝트 정렬 기능 추가

오브젝트 정렬 기능 추가
하이라키 윈도우 디자인 변경
드래그 핸들러 추가
This commit is contained in:
SullyunShin
2025-02-20 10:42:44 +09:00
parent 75a28f8765
commit 34f6e9b705
17 changed files with 1085 additions and 274 deletions

View File

@@ -59,7 +59,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
@@ -253,7 +253,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0.011764706, b: 0.1764706, a: 0.78431374}
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
@@ -330,7 +330,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0.011764706, b: 0.1764706, a: 0.2}
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
@@ -436,8 +436,8 @@ MonoBehaviour:
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
rgba: 4278190080
m_fontColor: {r: 0, g: 0, b: 0, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
@@ -564,6 +564,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a494c2f167427fd4a99187ffa99cb757, type: 3}
m_Name:
m_EditorClassIdentifier:
scrollRect: {fileID: 0}
scrollView: {fileID: 0}
--- !u!1001 &3219924497284413818
PrefabInstance:
m_ObjectHideFlags: 0
@@ -626,19 +628,19 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4494893725557815844, guid: c7fa5154df436e54bb0b444dfc25575d, type: 3}
propertyPath: m_Size
value: 0.9893966
value: 0.9894008
objectReference: {fileID: 0}
- target: {fileID: 4494893725557815844, guid: c7fa5154df436e54bb0b444dfc25575d, type: 3}
propertyPath: m_Value
value: 1.0000051
value: 1.0000204
objectReference: {fileID: 0}
- target: {fileID: 5672874548983414067, guid: c7fa5154df436e54bb0b444dfc25575d, type: 3}
propertyPath: m_AnchoredPosition.x
value: -2.9995284
value: -2.9996562
objectReference: {fileID: 0}
- target: {fileID: 5672874548983414067, guid: c7fa5154df436e54bb0b444dfc25575d, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0.000116338735
value: 0.00002207278
objectReference: {fileID: 0}
- target: {fileID: 5781062250184041115, guid: c7fa5154df436e54bb0b444dfc25575d, type: 3}
propertyPath: m_Pivot.x

View File

@@ -134,7 +134,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
@@ -261,6 +261,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: dcaf5c160a5eafd4888ef1224800d878, type: 3}
m_Name:
m_EditorClassIdentifier:
scrollRect: {fileID: 0}
scrollView: {fileID: 0}
--- !u!1 &5153900539240009752
GameObject:
m_ObjectHideFlags: 0
@@ -335,8 +337,8 @@ MonoBehaviour:
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
rgba: 4278190080
m_fontColor: {r: 0, g: 0, b: 0, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
@@ -457,7 +459,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0.011764706, b: 0.1764706, a: 0.2}
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
@@ -545,7 +547,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0.011764706, b: 0.1764706, a: 0.78431374}
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
@@ -608,7 +610,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 2671136523485413361, guid: c7fa5154df436e54bb0b444dfc25575d, type: 3}
propertyPath: m_Size
value: 0.99999094
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3853414527505018043, guid: c7fa5154df436e54bb0b444dfc25575d, type: 3}
propertyPath: m_AnchorMax.x
@@ -652,19 +654,19 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4494893725557815844, guid: c7fa5154df436e54bb0b444dfc25575d, type: 3}
propertyPath: m_Size
value: 0.9889386
value: 0.9894008
objectReference: {fileID: 0}
- target: {fileID: 4494893725557815844, guid: c7fa5154df436e54bb0b444dfc25575d, type: 3}
propertyPath: m_Value
value: 1.0001628
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5672874548983414067, guid: c7fa5154df436e54bb0b444dfc25575d, type: 3}
propertyPath: m_AnchoredPosition.x
value: -3.00006
value: -2.999582
objectReference: {fileID: 0}
- target: {fileID: 5672874548983414067, guid: c7fa5154df436e54bb0b444dfc25575d, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0.00009338284
value: -0.000010907401
objectReference: {fileID: 0}
- target: {fileID: 5781062250184041115, guid: c7fa5154df436e54bb0b444dfc25575d, type: 3}
propertyPath: m_Pivot.x

View File

@@ -0,0 +1,126 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1185472671663402474
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6104386061645465781}
- component: {fileID: 6156216054905447384}
- component: {fileID: 7241376036255963641}
m_Layer: 0
m_Name: SelectionBox
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &6104386061645465781
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1185472671663402474}
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: 1086541728698475203}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 960, y: 540}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6156216054905447384
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1185472671663402474}
m_CullTransparentMesh: 1
--- !u!114 &7241376036255963641
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1185472671663402474}
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.39215687}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &3736084005689246203
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1086541728698475203}
- component: {fileID: 8534877828189409926}
m_Layer: 0
m_Name: Panel_DragHandler
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1086541728698475203
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3736084005689246203}
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: 6104386061645465781}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &8534877828189409926
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3736084005689246203}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cdd8bb536a64a014785b009185af4d29, type: 3}
m_Name:
m_EditorClassIdentifier:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ab86017dea8f4f549b71b4a6fa12b3ec
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -2641,7 +2641,7 @@ GameObject:
- component: {fileID: 2136756930563110099}
- component: {fileID: 7152092958078005519}
m_Layer: 5
m_Name: InputField_RowX
m_Name: InputField_Row
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -3207,7 +3207,7 @@ GameObject:
- component: {fileID: 3830935198293741201}
- component: {fileID: 2577566099563960335}
m_Layer: 5
m_Name: Button_AlighZAxis
m_Name: Button_AlignZAxis
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -3415,7 +3415,7 @@ GameObject:
- component: {fileID: 1643216501148625476}
- component: {fileID: 721381776748410442}
m_Layer: 5
m_Name: InputField_ColZ
m_Name: InputField_Col
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -4346,6 +4346,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 271fc4cf2e70c7146938aaf9384c212f, type: 3}
m_Name:
m_EditorClassIdentifier:
InputField_GapX: {fileID: 0}
InputField_GapZ: {fileID: 0}
Button_Apply: {fileID: 0}
InputField_GapX: {fileID: 774488603182085883}
InputField_GapZ: {fileID: 2428612344838025271}
InputField_Row: {fileID: 7152092958078005519}
InputField_Col: {fileID: 721381776748410442}
Button_AlignXAxis: {fileID: 2859805591241900362}
Button_AlignZAxis: {fileID: 0}
Button_AlignGrid: {fileID: 6149089688842269376}

View File

@@ -122,9 +122,6 @@ MonoBehaviour:
setToNextSiblingItem:
m_PersistentCalls:
m_Calls: []
onSelect:
m_PersistentCalls:
m_Calls: []
onDragBegin:
m_PersistentCalls:
m_Calls: []
@@ -132,6 +129,7 @@ MonoBehaviour:
m_PersistentCalls:
m_Calls: []
itemPopup: {fileID: 0}
menuPopup: {fileID: 0}
--- !u!114 &3692082455671801088
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -144,6 +142,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 02c8aba09b6cf79448d6d0699308f932, type: 3}
m_Name:
m_EditorClassIdentifier:
onSelect:
m_PersistentCalls:
m_Calls: []
onParentChanged:
m_PersistentCalls:
m_Calls: []
--- !u!1 &1054829719865186487
GameObject:
m_ObjectHideFlags: 0
@@ -705,7 +709,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0.0000009536743, y: 0.00008143007}
m_AnchoredPosition: {x: 0.0000009536743, y: 0.00060980837}
m_SizeDelta: {x: 282.99957, y: 2}
m_Pivot: {x: 0, y: 1}
--- !u!114 &1134704777518231049
@@ -823,6 +827,81 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &5208196936687214603
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5298001966367028606}
- component: {fileID: 1822305268980125542}
- component: {fileID: 5681900736418180477}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5298001966367028606
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5208196936687214603}
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: 7333730248286312492}
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: -137, y: 0}
m_SizeDelta: {x: 24, y: 24}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1822305268980125542
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5208196936687214603}
m_CullTransparentMesh: 1
--- !u!114 &5681900736418180477
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5208196936687214603}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 81b1a05534a2b49109c084189ba3f5e8, 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 &5374529121170564152
GameObject:
m_ObjectHideFlags: 0
@@ -889,7 +968,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Enter text...
m_text: Search
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 69abd87f38225ed46aa612577c25f379, type: 2}
m_sharedMaterial: {fileID: -7290017371581542385, guid: 69abd87f38225ed46aa612577c25f379, type: 2}
@@ -1011,6 +1090,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5298001966367028606}
- {fileID: 493963855316554531}
- {fileID: 5143485001752436147}
m_Father: {fileID: 5781062250184041115}
@@ -1602,7 +1682,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.5}
m_SizeDelta: {x: -20, y: -13}
m_SizeDelta: {x: -50, y: -13}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &3257810534314104275
MonoBehaviour:

View File

@@ -126,7 +126,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
@@ -405,8 +405,8 @@ MonoBehaviour:
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
rgba: 4278190080
m_fontColor: {r: 0, g: 0, b: 0, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
@@ -967,7 +967,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1

View File

@@ -3792,6 +3792,7 @@ RectTransform:
- {fileID: 1439596647}
- {fileID: 1085911555}
- {fileID: 1712022043}
- {fileID: 916751974}
m_Father: {fileID: 1981809316}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@@ -3815,6 +3816,7 @@ MonoBehaviour:
agvnodemodepopup: {fileID: 0}
panel_tooltip: {fileID: 0}
panel_propertyviewer: {fileID: 0}
panel_draghandler: {fileID: 0}
--- !u!114 &545811783
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -4581,6 +4583,11 @@ RectTransform:
m_CorrespondingSourceObject: {fileID: 6291666171046911034, guid: 1bc9e043f1497cd4fbb8e241c26966c1, type: 3}
m_PrefabInstance: {fileID: 669513040}
m_PrefabAsset: {fileID: 0}
--- !u!224 &670251071 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
m_PrefabInstance: {fileID: 1976685923}
m_PrefabAsset: {fileID: 0}
--- !u!114 &712266949
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -5935,6 +5942,108 @@ MonoBehaviour:
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1001 &916751973
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 545811781}
m_Modifications:
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_AnchorMax.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3736084005689246203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
propertyPath: m_Name
value: Panel_DragHandler
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
--- !u!224 &916751974 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 1086541728698475203, guid: ab86017dea8f4f549b71b4a6fa12b3ec, type: 3}
m_PrefabInstance: {fileID: 916751973}
m_PrefabAsset: {fileID: 0}
--- !u!1 &918697618
GameObject:
m_ObjectHideFlags: 0
@@ -8295,6 +8404,7 @@ RectTransform:
- {fileID: 7047787819321409150}
- {fileID: 6779400300325097680}
- {fileID: 394283230}
- {fileID: 670251071}
m_Father: {fileID: 1981809316}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@@ -8382,6 +8492,7 @@ MonoBehaviour:
panel_componentlibrary: {fileID: 0}
panel_assetlibrary: {fileID: 0}
panel_objectinfo: {fileID: 0}
panel_objectalign: {fileID: 0}
--- !u!1 &1195629653
GameObject:
m_ObjectHideFlags: 0
@@ -15933,7 +16044,7 @@ GameObject:
- component: {fileID: 1715748517}
- component: {fileID: 1715748519}
m_Layer: 5
m_Name: Panel_Header
m_Name: Panel_TopBar
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -16008,9 +16119,20 @@ MonoBehaviour:
m_GameObject: {fileID: 1715748515}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cb774b2f3bebecd448d68beda0137368, type: 3}
m_Script: {fileID: 11500000, guid: eeb29fdb1a9fc134aa57e1efd67b4848, type: 3}
m_Name:
m_EditorClassIdentifier:
Button_NewProject: {fileID: 0}
Button_SaveProject: {fileID: 0}
Button_LoadProject: {fileID: 0}
Button_DownloadLayout: {fileID: 0}
Button_ExportAGVPath: {fileID: 0}
Button_ImportAGVPath: {fileID: 0}
Button_LoadAssets: {fileID: 0}
Button_AssetWindow: {fileID: 0}
Button_ComponentWindow: {fileID: 0}
Button_Tools: {fileID: 0}
button_Icon: {fileID: 0}
--- !u!1 &1728035472
GameObject:
m_ObjectHideFlags: 0
@@ -16578,7 +16700,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
panel_shortcuts: {fileID: 0}
panel_header: {fileID: 0}
panel_topbar: {fileID: 0}
panel_toolbar: {fileID: 0}
--- !u!4 &1805249248 stripped
Transform:
@@ -17650,6 +17772,323 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1960288572}
m_CullTransparentMesh: 0
--- !u!1001 &1976685923
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 1187423310}
m_Modifications:
- target: {fileID: 64760076949688941, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 64760076949688941, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 64760076949688941, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.x
value: 64.125
objectReference: {fileID: 0}
- target: {fileID: 64760076949688941, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.y
value: -14
objectReference: {fileID: 0}
- target: {fileID: 322483231651427656, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 322483231651427656, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 322483231651427656, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.x
value: 64.125
objectReference: {fileID: 0}
- target: {fileID: 322483231651427656, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.y
value: -14
objectReference: {fileID: 0}
- target: {fileID: 495174325582678740, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_SizeDelta.x
value: 25.18
objectReference: {fileID: 0}
- target: {fileID: 1389570078669053979, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1389570078669053979, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1389570078669053979, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.x
value: 141
objectReference: {fileID: 0}
- target: {fileID: 1389570078669053979, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.y
value: -61.1
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMax.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMax.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMin.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMin.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_SizeDelta.x
value: 318
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_SizeDelta.y
value: 260.74
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.x
value: -380.2
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.y
value: -281
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1670299614426086028, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1733309631157010962, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1733309631157010962, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1733309631157010962, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.x
value: 141
objectReference: {fileID: 0}
- target: {fileID: 1733309631157010962, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.y
value: -121.1
objectReference: {fileID: 0}
- target: {fileID: 2815481224497491875, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_SizeDelta.x
value: 38.26
objectReference: {fileID: 0}
- target: {fileID: 3263565422826670613, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_SizeDelta.x
value: 9.52
objectReference: {fileID: 0}
- target: {fileID: 3263565422826670613, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_SizeDelta.y
value: 19.1
objectReference: {fileID: 0}
- target: {fileID: 3759358454249268061, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_SizeDelta.x
value: 13.83
objectReference: {fileID: 0}
- target: {fileID: 3759358454249268061, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_SizeDelta.y
value: 19.1
objectReference: {fileID: 0}
- target: {fileID: 3963263371466394407, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3963263371466394407, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3963263371466394407, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_SizeDelta.y
value: 19.1
objectReference: {fileID: 0}
- target: {fileID: 3963263371466394407, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.x
value: 161.97249
objectReference: {fileID: 0}
- target: {fileID: 3963263371466394407, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.y
value: -9.55
objectReference: {fileID: 0}
- target: {fileID: 4383763207084752213, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4383763207084752213, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4383763207084752213, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.x
value: 217.875
objectReference: {fileID: 0}
- target: {fileID: 4383763207084752213, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.y
value: -14
objectReference: {fileID: 0}
- target: {fileID: 4734915358213925375, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4734915358213925375, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4734915358213925375, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.x
value: 8.972496
objectReference: {fileID: 0}
- target: {fileID: 4734915358213925375, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.y
value: -9.55
objectReference: {fileID: 0}
- target: {fileID: 4815791146998578607, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_SizeDelta.x
value: 9.8
objectReference: {fileID: 0}
- target: {fileID: 4815791146998578607, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_SizeDelta.y
value: 19.1
objectReference: {fileID: 0}
- target: {fileID: 6150045885068456404, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6150045885068456404, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6150045885068456404, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.x
value: 141
objectReference: {fileID: 0}
- target: {fileID: 6150045885068456404, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.y
value: -181.1
objectReference: {fileID: 0}
- target: {fileID: 6823706270529186750, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6823706270529186750, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6823706270529186750, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_SizeDelta.y
value: 27.1
objectReference: {fileID: 0}
- target: {fileID: 6823706270529186750, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.x
value: 141
objectReference: {fileID: 0}
- target: {fileID: 6823706270529186750, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.y
value: -13.55
objectReference: {fileID: 0}
- target: {fileID: 6929874536063340863, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_SizeDelta.x
value: -36
objectReference: {fileID: 0}
- target: {fileID: 6929874536063340863, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_SizeDelta.y
value: -53.639984
objectReference: {fileID: 0}
- target: {fileID: 7422702907034326837, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7422702907034326837, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7422702907034326837, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.x
value: 217.875
objectReference: {fileID: 0}
- target: {fileID: 7422702907034326837, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_AnchoredPosition.y
value: -14
objectReference: {fileID: 0}
- target: {fileID: 8351774369622538081, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_SizeDelta.x
value: 13.83
objectReference: {fileID: 0}
- target: {fileID: 8351774369622538081, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_SizeDelta.y
value: 19.1
objectReference: {fileID: 0}
- target: {fileID: 9168477493309714298, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_Name
value: Panel_ObjectAlign
objectReference: {fileID: 0}
- target: {fileID: 9168477493309714298, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: db3e2e7e03663874a9b223063e7ea2d9, type: 3}
--- !u!1 &1981809315
GameObject:
m_ObjectHideFlags: 0

View File

@@ -26,7 +26,9 @@ namespace XED.Asset
public SaveLoadFBXData saveLoadFBXData;
public RenderObjectHandler renderObjectHandler;
public event System.Action<string, List<GameObject>> onSelectObjects;
public event System.Action onDeselectObjects;
public event System.Action onRemoveObjects;
public event System.Action onAssetDropped;
void Awake()
{
saveLoadFBXData = FindFirstObjectByType<SaveLoadFBXData>();
@@ -146,6 +148,7 @@ namespace XED.Asset
}
selectRenderObject.Deselect();
selectedAssetData = null;
onAssetDropped?.Invoke();
}
public void OnSelectObjectFromHierarchy(List<HierarchyItem> selectedItems)
{
@@ -210,6 +213,31 @@ namespace XED.Asset
componentScrollView.OnSelect(selectedItems);
onSelectObjects?.Invoke(name, selectedObjects);
}
public void OnDragBoxSelect(Rect selectionBoxRect)
{
List<ConnectedAsset> activeAssets = connectedAssets.FindAll(x => x.renderObject != null && x.renderObject.gameObject.activeSelf);
if (activeAssets.Count == 0)
{
return;
}
string name = "";
List<GameObject> selectedObjects = new List<GameObject>();
List<HierarchyItem> selectedItems = new List<HierarchyItem>();
renderObjectHandler.RemoveAllSelections();
for (int i = 0; i < activeAssets.Count; i++)
{
ConnectedAsset activeAsset = activeAssets[i];
if (selectionBoxRect.Contains(Camera.main.WorldToScreenPoint(activeAsset.renderObject.transform.position)))
{
name = i == 0 ? activeAsset.hierarchyItem.name : name.Equals(activeAsset.hierarchyItem.name) ? activeAsset.hierarchyItem.name : "-";
selectedItems.Add(activeAsset.hierarchyItem);
selectedObjects.Add(activeAsset.renderObject.gameObject);
renderObjectHandler.AddSelection(activeAsset.renderObject);
}
}
componentScrollView.OnSelect(selectedItems);
onSelectObjects?.Invoke(name, selectedObjects);
}
public void OnRemoveObject(List<CustomAssetRenderObject> objects)
{
if (objects.Count == 0)
@@ -396,6 +424,7 @@ namespace XED.Asset
}
public void OnDeselectAll()
{
onDeselectObjects?.Invoke();
componentScrollView.DeselectAll();
}
public void SaveSelectedAssetDatasToLocal()

View File

@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEditor;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
@@ -12,7 +13,8 @@ namespace XED.Util
{
public class RenderObjectHandler : MonoBehaviour, IStatusController, IInputHandler
{
public List<CustomAssetRenderObject> selectedRenderObjects = new List<CustomAssetRenderObject>();
List<CustomAssetRenderObject> selectedRenderObjects = new List<CustomAssetRenderObject>();
List<CustomAssetRenderObject> copyRenderObjects = new List<CustomAssetRenderObject>();
List<GameObject> selectedGameObjects = new List<GameObject>();
CustomAssetRenderObject prevSelectedObject;
RTGController rtgController;
@@ -21,7 +23,9 @@ namespace XED.Util
int uiLayer;
int selectIndex;
bool lockHandler = false;
public UnityEvent<Vector3> onClickBegin;
public event System.Action<Vector3> onDragBegin;
public event System.Action<Vector3> onDragEnd;
public event System.Action onDragForceEnd;
public UnityEvent<List<CustomAssetRenderObject>> onSelectObject;
public UnityEvent<List<CustomAssetRenderObject>> onRemoveObject;
public UnityEvent<List<CustomAssetRenderObject>> onCopyObject;
@@ -47,17 +51,6 @@ namespace XED.Util
private void OnMousePointerDown()
{
clickBeginPos = Input.mousePosition;
onClickBegin?.Invoke(clickBeginPos);
}
private void OnMousePointerUp()
{
//rtg 컨트롤러가 조작중일때 락을 건다.
//rtg 컨트롤러 조작 후 포커스가 바뀌는 것을 방지하기 위한 용도
if (lockHandler == true)
{
lockHandler = false;
return;
}
//ui를 선택했을 경우에는 오브젝트 선택을 멈춘다.
PointerEventData pointerData = new PointerEventData(EventSystem.current)
{
@@ -69,10 +62,35 @@ namespace XED.Util
{
return;
}
onDragBegin?.Invoke(clickBeginPos);
}
private void OnMousePointerUp()
{
//rtg 컨트롤러가 조작중일때 락을 건다.
//rtg 컨트롤러 조작 후 포커스가 바뀌는 것을 방지하기 위한 용도
if (lockHandler == true)
{
lockHandler = false;
onDragForceEnd?.Invoke();
return;
}
//ui를 선택했을 경우에는 오브젝트 선택을 멈춘다.
PointerEventData pointerData = new PointerEventData(EventSystem.current)
{
position = Input.mousePosition
};
List<RaycastResult> raycastResults = new List<RaycastResult>();
EventSystem.current.RaycastAll(pointerData, raycastResults);
if (raycastResults.Any(x => x.gameObject.layer == uiLayer))
{
onDragForceEnd?.Invoke();
return;
}
//포인터 업 위치가 포인터 다운 위치에서 크게 벗어났을 경우는 클릭을 무시한다.
if ((clickBeginPos - Input.mousePosition).magnitude > clickLengthThreshold)
{
DeselectAll();
onDragEnd?.Invoke(Input.mousePosition);
return;
}
List<CustomAssetRenderObject> raycastedTarget = new List<CustomAssetRenderObject>();
@@ -128,6 +146,7 @@ namespace XED.Util
ResetRTG();
DeselectAll();
}
onDragForceEnd?.Invoke();
}
public void DeselectAll()
{
@@ -216,120 +235,76 @@ namespace XED.Util
if (selectedRenderObjects.Count == 0) return;
onCopyObject?.Invoke(selectedRenderObjects);
}
public void SaveItemsToCopy()
{
copyRenderObjects.Clear();
copyRenderObjects.AddRange(selectedRenderObjects);
}
public void CopySavedItems()
{
if (copyRenderObjects.Count == 0) return;
onCopyObject?.Invoke(copyRenderObjects);
}
public void ResetGizmoTargetObjects()
{
rtgController.SetGizmoTargetObjects(selectedGameObjects);
}
// public void AlignObjects(Vector2 space)
// {
// if (selectedRenderObjects.Count <= 1)
// {
// return;
// }
// onOrderByHierachy?.Invoke(selectedRenderObjects);
// List<CustomAssetRenderObject> objectsToAlign = new List<CustomAssetRenderObject>(selectedRenderObjects);
// List<Vector3> originalPos = objectsToAlign.Select(x => x.transform.position).ToList();
//
// ActionCommand command = new ActionCommand(
// () =>
// {
// for (int i = 1; i < objectsToAlign.Count; i++)
// {
// CustomAssetRenderObject renderObject = objectsToAlign[i];
// renderObject.transform.position = new Vector3(
// objectsToAlign[i - 1].transform.position.x + space.x,
// renderObject.transform.position.y,
// objectsToAlign[i - 1].transform.position.z + space.y);
// renderObject.onTransformChanged?.Invoke();
// }
// onTransformChanged?.Invoke(objectOrderByX.Select(renderObject => renderObject.transform).ToList());
// },
// () =>
// {
// for (int i = 1; i < objectsToAlign.Count; i++)
// {
// CustomAssetRenderObject renderObject = objectOrderByX[i];
// float origX = originalPos[i];
// renderObject.transform.position = new Vector3(origX, renderObject.transform.position.y, renderObject.transform.position.z);
// renderObject.onTransformChanged?.Invoke();
// }
// onTransformChanged?.Invoke(objectOrderByX.Select(renderObject => renderObject.transform).ToList());
// });
// CommandManager.I.ExecuteCommand(command);
// }
//
//public void ObjectSpacingX(float space)
//{
// if (selectedRenderObjects.Count <= 1)
// {
// return;
// }
// List<CustomAssetRenderObject> objectOrderByX = selectedRenderObjects.OrderBy(x => x.transform.position.x).ToList();
// List<float> originalPosX = objectOrderByX.Select(x => x.transform.position.x).ToList();
//
// ActionCommand command = new ActionCommand(
// () =>
// {
// for (int i = 1; i < objectOrderByX.Count; i++)
// {
// CustomAssetRenderObject renderObject = objectOrderByX[i];
// renderObject.transform.position = new Vector3(
// objectOrderByX[i - 1].transform.position.x + space,
// renderObject.transform.position.y,
// renderObject.transform.position.z);
// renderObject.onTransformChanged?.Invoke();
// }
// onTransformChanged?.Invoke(objectOrderByX.Select(renderObject => renderObject.transform).ToList());
// },
// () =>
// {
// for (int i = 1; i < objectOrderByX.Count; i++)
// {
// CustomAssetRenderObject renderObject = objectOrderByX[i];
// float origX = originalPosX[i];
// renderObject.transform.position = new Vector3(origX, renderObject.transform.position.y, renderObject.transform.position.z);
// renderObject.onTransformChanged?.Invoke();
// }
// onTransformChanged?.Invoke(objectOrderByX.Select(renderObject => renderObject.transform).ToList());
// });
// CommandManager.I.ExecuteCommand(command);
//}
//public void ObjectSpacingZ(float space)
//{
// if (selectedRenderObjects.Count <= 1)
// {
// return;
// }
// List<CustomAssetRenderObject> objectOrderByZ = selectedRenderObjects.OrderBy(x => x.transform.position.z).ToList();
// List<float> originalPosZ = objectOrderByZ.Select(x => x.transform.position.z).ToList();
//
// ActionCommand command = new ActionCommand(
// () =>
// {
// for (int i = 1; i < objectOrderByZ.Count; i++)
// {
// CustomAssetRenderObject renderObject = objectOrderByZ[i];
// renderObject.transform.position = new Vector3(
// renderObject.transform.position.x,
// renderObject.transform.position.y,
// objectOrderByZ[i - 1].transform.position.z + space);
// renderObject.onTransformChanged?.Invoke();
// }
// onTransformChanged?.Invoke(objectOrderByZ.Select(renderObject => renderObject.transform).ToList());
// },
// () =>
// {
// for (int i = 1; i < objectOrderByZ.Count; i++)
// {
// CustomAssetRenderObject renderObject = objectOrderByZ[i];
// float origZ = originalPosZ[i];
// renderObject.transform.position = new Vector3(renderObject.transform.position.x, renderObject.transform.position.y, origZ);
// renderObject.onTransformChanged?.Invoke();
// }
// onTransformChanged?.Invoke(objectOrderByZ.Select(renderObject => renderObject.transform).ToList());
// });
// CommandManager.I.ExecuteCommand(command);
//}
public void AlignObjects(int row, int col, float spaceX, float spaceZ, int direction)
{
if (selectedRenderObjects.Count <= 1)
{
return;
}
onOrderByHierachy?.Invoke(selectedRenderObjects);
List<CustomAssetRenderObject> objectsToAlign = new List<CustomAssetRenderObject>(selectedRenderObjects);
List<Vector3> originalPos = objectsToAlign.Select(x => x.transform.position).ToList();
direction = ((direction % 8) + 8) % 8;
int primary = direction % 2 == 0 ? col : row;
Vector3 primaryDir = Vector3.zero;
Vector3 secondaryDir = Vector3.zero;
primaryDir = (direction == 0 || direction == 2) ? Vector3.right * spaceX :
(direction == 4 || direction == 6) ? -Vector3.right * spaceX :
(direction == 1 || direction == 7) ? Vector3.forward * spaceZ : -Vector3.forward * spaceZ;
secondaryDir = (direction == 1 || direction == 3) ? Vector3.right * spaceX :
(direction == 5 || direction == 7) ? -Vector3.right * spaceX :
(direction == 0 || direction == 6) ? Vector3.forward * spaceZ : -Vector3.forward * spaceZ;
ActionCommand command = new ActionCommand(
() =>
{
int countP = 0;
int countS = 0;
Vector3 referencePoint = objectsToAlign[0].transform.position;
for (int i = 1; i < objectsToAlign.Count; i++)
{
CustomAssetRenderObject renderObject = objectsToAlign[i];
if (countP < primary - 1 || primary == 0)
{
countP++;
}
else
{
countS++;
countP = 0;
}
renderObject.transform.position = referencePoint + primaryDir * countP + secondaryDir * countS;
renderObject.onTransformChanged?.Invoke();
}
onTransformChanged?.Invoke(objectsToAlign.Select(renderObject => renderObject.gameObject).ToList());
},
() =>
{
for (int i = 1; i < objectsToAlign.Count; i++)
{
CustomAssetRenderObject renderObject = objectsToAlign[i];
renderObject.transform.position = originalPos[i];
renderObject.onTransformChanged?.Invoke();
}
onTransformChanged?.Invoke(objectsToAlign.Select(renderObject => renderObject.gameObject).ToList());
});
CommandManager.I.ExecuteCommand(command);
}
InputHandler myHandler;
public void CurrentStatusEvent()
@@ -354,7 +329,19 @@ namespace XED.Util
getKeyActions.Add(KeyCode.W, SetRTGRotate);
getKeyActions.Add(KeyCode.E, SetRTGScale);
getKeyActions.Add(KeyCode.R, ResetRTG);
var handler = new InputHandler(getKeyActions, downKeyActions, upKeyActions);
var shortcutTable = new Dictionary<KeyCode, Dictionary<KeyCode, Action>>();
#if UNITY_EDITOR
shortcutTable.Add(KeyCode.LeftShift, new Dictionary<KeyCode, Action>());
shortcutTable[KeyCode.LeftShift].Add(KeyCode.C, SaveItemsToCopy);
shortcutTable[KeyCode.LeftShift].Add(KeyCode.V, CopySavedItems);
#else
shortcutTable.Add(KeyCode.LeftControl, new Dictionary<KeyCode, Action>());
shortcutTable[KeyCode.LeftControl].Add(KeyCode.C, SaveItemsToCopy);
shortcutTable[KeyCode.LeftControl].Add(KeyCode.V, CopySavedItems);
#endif
var handler = new InputHandler(getKeyActions, downKeyActions, upKeyActions, shortcutTable);
return handler;
}
}

View File

@@ -11,6 +11,7 @@ using System;
using Newtonsoft.Json;
using System.Text;
using System.Linq;
using UnityEngine.EventSystems;
namespace XED.Asset
{
@@ -20,6 +21,7 @@ namespace XED.Asset
public string password;
public UnityEvent<string, string, CustomAssetData> onLoadFbxFile;
public UnityEvent<string> onRemoveFbxFile;
public event System.Action onBeginLoadAsset;
private SaveData saveData;
private List<CustomAssetData> listAssets = new List<CustomAssetData>();
private Queue<string> loadFilePath = new Queue<string>();
@@ -48,6 +50,7 @@ namespace XED.Asset
private void OnLoadLocalFBXFile(IList<ItemWithStream> list)
{
onBeginLoadAsset?.Invoke();
for (int i = 0; i < list.Count; i++)
{
if (!list[i].HasData)
@@ -72,7 +75,7 @@ namespace XED.Asset
continue;
var path = list[i].Name;
var files = Directory.GetFiles(path, "*.fbx", SearchOption .AllDirectories);
var files = Directory.GetFiles(path, "*.fbx", SearchOption.AllDirectories);
if (listAssets.Find((x) => x.localFBXPath == path) != null)
return;
foreach (var file in files)
@@ -103,6 +106,7 @@ namespace XED.Asset
{
return;
}
onBeginLoadAsset?.Invoke();
StartCoroutine(CoroutineLoadFromLocalData(path));
}
public void OnLoadLocalFBXFile(string[] paths)
@@ -983,7 +987,7 @@ public class MessagePackFileManager<T>
byte[] bytes = MessagePackSerializer.Serialize<T>(data, lz4Option);
await File.WriteAllBytesAsync(filePath, bytes);
}
catch(Exception ex)
catch (Exception ex)
{
Debug.LogError($"Task Error: {ex.Message}\n{ex.StackTrace}");
}

View File

@@ -44,10 +44,19 @@ namespace XED.Manage
void ManagerConnection()
{
customAssetConnector.onRemoveObjects += renderObjectHandler.DeselectAll;
customAssetConnector.onSelectObjects += ((name, objects) => { canvas_Windows.panel_objectinfo.gameObject.SetActive(true); });
customAssetConnector.onSelectObjects += ((name, objects) => { canvas_Windows.panel_objectalign.gameObject.SetActive(true); });
customAssetConnector.onSelectObjects += canvas_Windows.panel_objectinfo.SetObjectInfo;
customAssetConnector.onRemoveObjects += canvas_Windows.panel_objectinfo.ResetObjectInfo;
customAssetConnector.onDeselectObjects += (() => { canvas_Windows.panel_objectinfo.gameObject.SetActive(false); });
customAssetConnector.onDeselectObjects += (() => { canvas_Windows.panel_objectalign.gameObject.SetActive(false); });
customAssetConnector.onAssetDropped += (() => componentWindow.SetActive(true));
renderObjectHandler.onDeselectAll += canvas_Windows.panel_objectinfo.ResetObjectInfo;
renderObjectHandler.onTransformChanged += canvas_Windows.panel_objectinfo.OnTransformChanged;
renderObjectHandler.onDragBegin += canvas_Popup.panel_draghandler.OnBeginDrag;
renderObjectHandler.onDragEnd += canvas_Popup.panel_draghandler.OnEndDrag;
renderObjectHandler.onDragForceEnd += canvas_Popup.panel_draghandler.ForceEndDrag;
saveLoadFBXData.onBeginLoadAsset += (() => assetWindow.SetActive(true));
canvas_Windows.panel_objectinfo.onTransformChanged += renderObjectHandler.OnTransformChanged;
agvNodeManager.onNodeConnectionAdded += agvNodeLinkManager.AddLine;
@@ -99,6 +108,7 @@ namespace XED.Manage
canvas_Popup.agvnodemodepopup.Button_AGVNodeLoad.onClick.AddListener(agvNodeManager.Load);
canvas_Popup.agvnodemodepopup.Button_AGVNodeSave.onClick.AddListener(agvNodeManager.Save);
canvas_Popup.agvnodemodepopup.onAGVNodeModeChanged += agvNodeManager.ChangeSelectMode;
canvas_Popup.panel_draghandler.onDragBoxSelect += customAssetConnector.OnDragBoxSelect;
}
void StatusConnection()

View File

@@ -13,6 +13,7 @@ namespace XED
public AGVNodeModePopup agvnodemodepopup;
public Panel_Tooltip panel_tooltip;
public Panel_PropertyViewer panel_propertyviewer;
public Panel_DragHandler panel_draghandler;
public override void AfterAwake()
{

View File

@@ -11,5 +11,6 @@ namespace XED.UI
public Panel_ComponentLibrary panel_componentlibrary;
public Panel_AssetLibrary panel_assetlibrary;
public Panel_ObjectInfo panel_objectinfo;
public Panel_ObjectAlign panel_objectalign;
}
}

View File

@@ -0,0 +1,97 @@
using System.Collections;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
using WI.UI;
namespace XED.UI
{
public class Panel_DragHandler : PanelBase
{
Image selectionBoxImage;
Vector2 startPosition;
Rect selectionRect;
public event System.Action<Rect> onDragBoxSelect;
private void Awake()
{
foreach (Image img in GetComponentsInChildren<Image>(true))
{
if (img.transform != transform)
{
selectionBoxImage = img;
break;
}
}
}
public void OnBeginDrag(PointerEventData eventData)
{
selectionBoxImage.gameObject.SetActive(true);
startPosition = eventData.position;
selectionRect = new Rect();
}
public void OnBeginDrag(Vector3 position)
{
selectionBoxImage.gameObject.SetActive(true);
startPosition = position;
selectionRect = new Rect();
StopAllCoroutines();
StartCoroutine(CoroutineOnDrag());
}
public void OnDrag(PointerEventData eventData)
{
SetSelectionBoxSize(eventData.position);
}
public void OnEndDrag(PointerEventData eventData)
{
selectionBoxImage.gameObject.SetActive(false);
onDragBoxSelect?.Invoke(selectionRect);
}
public void OnEndDrag(Vector3 position)
{
selectionBoxImage.gameObject.SetActive(false);
StopAllCoroutines();
SetSelectionBoxSize(position);
onDragBoxSelect?.Invoke(selectionRect);
}
public void ForceEndDrag()
{
selectionBoxImage.gameObject.SetActive(false);
StopAllCoroutines();
}
public void SetSelectionBoxSize(Vector3 position)
{
if (position.x < startPosition.x)
{
selectionRect.xMin = position.x;
selectionRect.xMax = startPosition.x;
}
else
{
selectionRect.xMin = startPosition.x;
selectionRect.xMax = position.x;
}
if (position.y < startPosition.y)
{
selectionRect.yMin = position.y;
selectionRect.yMax = startPosition.y;
}
else
{
selectionRect.yMin = startPosition.y;
selectionRect.yMax = position.y;
}
selectionBoxImage.rectTransform.offsetMin = selectionRect.min;
selectionBoxImage.rectTransform.offsetMax = selectionRect.max;
}
IEnumerator CoroutineOnDrag()
{
while (true)
{
SetSelectionBoxSize(Input.mousePosition);
yield return null;
}
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: cdd8bb536a64a014785b009185af4d29

View File

@@ -20,8 +20,9 @@ namespace XED.UI
private RenderObjectHandler renderObjectHandler;
private float gapX = 0.0f;
private float gapZ = 0.0f;
private int rowX = 0;
private int rowZ = 0;
private int row = 0;
private int col = 0;
private int direction = 0;
public override void AfterAwake()
{
CustomAssetConnector assetConnector = FindSingle<CustomAssetConnector>();
@@ -50,29 +51,48 @@ namespace XED.UI
}
void OnRowChanged(string input)
{
if (!int.TryParse(input, out rowX))
if (!int.TryParse(input, out row))
{
return;
}
}
void OnColChanged(string input)
{
if (!int.TryParse(input, out rowZ))
if (!int.TryParse(input, out col))
{
return;
}
}
void OnAlignXAxis()
{
if (direction < 4)
{
direction = 4;
}
else if (direction > 4)
{
direction = 0;
}
renderObjectHandler.AlignObjects(0, 0, gapX, gapZ, direction);
direction++;
}
void OnAlignZAxis()
{
if (direction < 5)
{
direction = 5;
}
else if (direction > 5)
{
direction = 1;
}
renderObjectHandler.AlignObjects(0, 0, gapX, gapZ, direction);
direction++;
}
void OnAlignGrid()
{
renderObjectHandler.AlignObjects(row, col, gapX, gapZ, direction);
direction++;
}
}
}