diff --git a/Client/Assets/Bundles/UI/Window/UILoadUpdateWindow.prefab b/Client/Assets/Bundles/UI/Window/UILoadUpdateWindow.prefab index b2f5e82..072cdc6 100644 --- a/Client/Assets/Bundles/UI/Window/UILoadUpdateWindow.prefab +++ b/Client/Assets/Bundles/UI/Window/UILoadUpdateWindow.prefab @@ -307,7 +307,10 @@ MonoBehaviour: _controllers: - Name: Controller0 Length: 2 - _recorders: [] + - Name: ctlChange + Length: 3 + _recorders: + - {fileID: 5562764555442211541} --- !u!114 &4311531008057825966 MonoBehaviour: m_ObjectHideFlags: 0 @@ -658,7 +661,8 @@ GameObject: - component: {fileID: 7425209180716806519} - component: {fileID: 162949476695556915} - component: {fileID: 3482583127883842067} - - component: {fileID: 950606262313515452} + - component: {fileID: 6667574876542659940} + - component: {fileID: 5562764555442211541} m_Layer: 5 m_Name: ScrollView@TestList m_TagString: Untagged @@ -738,7 +742,6 @@ MonoBehaviour: m_EditorClassIdentifier: direction: 0 alignment: 2 - content: {fileID: 5086806237606523596} spacing: {x: 0, y: 5} padding: {x: 0, y: 0} scroll: 1 @@ -747,20 +750,21 @@ MonoBehaviour: wheelSpeed: 10 templates: - {fileID: 3596253569820580282} - _scrollerTypeName: AlicizaX.UI.Scroller - _scroller: {fileID: 950606262313515452} - _showScrollBar: 0 - _scrollbar: {fileID: 0} + content: {fileID: 5086806237606523596} + showScrollBar: 0 + scrollbar: {fileID: 0} _layoutManagerTypeName: AlicizaX.UI.LinearLayoutManager - _layoutManager: - rid: 6739296565164244992 + layoutManager: + rid: 6739296679894712320 + _scrollerTypeName: AlicizaX.UI.Scroller + scroller: {fileID: 6667574876542659940} references: version: 2 RefIds: - - rid: 6739296565164244992 + - rid: 6739296679894712320 type: {class: LinearLayoutManager, ns: AlicizaX.UI, asm: AlicizaX.UI.Extension} data: ---- !u!114 &950606262313515452 +--- !u!114 &6667574876542659940 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -772,6 +776,32 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 7b7de4cb3a1546e4a9ade6b8dbf8af92, type: 3} m_Name: m_EditorClassIdentifier: + dragStopTime: 0 +--- !u!114 &5562764555442211541 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3365040644835594956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 35829408994740a08c32ac2f519442f0, type: 3} + m_Name: + m_EditorClassIdentifier: + _id: 62478209 + _controller: {fileID: 2333725313425952563} + _stateEntries: + - State: + rid: 6739296679894712321 + ControllerName: Controller0 + ControllerIndex: 1 + references: + version: 2 + RefIds: + - rid: 6739296679894712321 + type: {class: GameObjectPropertyStateBase, ns: AlicizaX.UI, asm: AlicizaX.UI.Extension} + data: --- !u!1 &5796037856908370449 GameObject: m_ObjectHideFlags: 0 diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Demo.unity b/Client/Assets/Plugins/PrimeTween/Demo/Demo.unity index 6db8ade..fb1a59c 100644 --- a/Client/Assets/Plugins/PrimeTween/Demo/Demo.unity +++ b/Client/Assets/Plugins/PrimeTween/Demo/Demo.unity @@ -278,7 +278,6 @@ MonoBehaviour: - {fileID: 460664918} - {fileID: 810504353} wheels: {fileID: 810504353} - timeScale: 1 --- !u!4 &182366649 Transform: m_ObjectHideFlags: 0 @@ -2820,13 +2819,16 @@ MonoBehaviour: logAllocations: 1 logFiltered: 0 logIgnored: 0 - filterAllocations: [] + filterAllocations: + - PrimeTween.Runtime + - PrimeTweenDemo ignoreAllocations: - RaycastHit.get_collider() - Component.get_transform() - Component.get_gameObject() - MeasureMemoryAllocations - DebugInfo + - Slider.set_value --- !u!114 &1755549107 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Demo_URP.unity b/Client/Assets/Plugins/PrimeTween/Demo/Demo_URP.unity index 098c9bb..3494ded 100644 --- a/Client/Assets/Plugins/PrimeTween/Demo/Demo_URP.unity +++ b/Client/Assets/Plugins/PrimeTween/Demo/Demo_URP.unity @@ -38,11 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 11 m_GIWorkflowMode: 1 m_GISettings: serializedVersion: 2 @@ -53,7 +54,7 @@ LightmapSettings: m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 0 m_LightmapEditorSettings: - serializedVersion: 12 + serializedVersion: 10 m_Resolution: 2 m_BakeResolution: 40 m_AtlasSize: 1024 @@ -61,7 +62,6 @@ LightmapSettings: m_AOMaxDistance: 1 m_CompAOExponent: 1 m_CompAOExponentDirect: 0 - m_ExtractAmbientOcclusion: 0 m_Padding: 2 m_LightmapParameters: {fileID: 0} m_LightmapsBakeMode: 1 @@ -76,16 +76,10 @@ LightmapSettings: m_PVRDirectSampleCount: 32 m_PVRSampleCount: 512 m_PVRBounces: 2 - m_PVREnvironmentSampleCount: 512 - m_PVREnvironmentReferencePointCount: 2048 - m_PVRFilteringMode: 2 - m_PVRDenoiserTypeDirect: 0 - m_PVRDenoiserTypeIndirect: 0 - m_PVRDenoiserTypeAO: 0 m_PVRFilterTypeDirect: 0 m_PVRFilterTypeIndirect: 0 m_PVRFilterTypeAO: 0 - m_PVREnvironmentMIS: 0 + m_PVRFilteringMode: 2 m_PVRCulling: 1 m_PVRFilteringGaussRadiusDirect: 1 m_PVRFilteringGaussRadiusIndirect: 5 @@ -93,17 +87,16 @@ LightmapSettings: m_PVRFilteringAtrousPositionSigmaDirect: 0.5 m_PVRFilteringAtrousPositionSigmaIndirect: 2 m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ExportTrainingData: 0 - m_TrainingDataDestination: TrainingData - m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 112000000, guid: 64acb5532649148ad8702bd2c1c99441, type: 2} - m_LightingSettings: {fileID: 4890085278179872738, guid: 57f0c8ec6c3514d5786caf6ce528a88a, type: 2} + m_ShowResolutionOverlay: 1 + m_LightingDataAsset: {fileID: 112000000, guid: 64acb5532649148ad8702bd2c1c99441, + type: 2} + m_UseShadowmask: 1 --- !u!196 &4 NavMeshSettings: serializedVersion: 2 m_ObjectHideFlags: 0 m_BuildSettings: - serializedVersion: 3 + serializedVersion: 2 agentTypeID: 0 agentRadius: 0.5 agentHeight: 2 @@ -116,9 +109,7 @@ NavMeshSettings: cellSize: 0.16666667 manualTileSize: 0 tileSize: 256 - buildHeightMesh: 0 - maxJobWorkers: 0 - preserveTilesOutsideBounds: 0 + accuratePlacement: 0 debug: m_Flags: 0 m_NavMeshData: {fileID: 0} @@ -146,14 +137,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 69086296} - serializedVersion: 2 m_LocalRotation: {x: -0, y: 0.88705486, z: -0, w: 0.46166408} m_LocalPosition: {x: 0, y: 0.72, z: -0.29} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 142301654} m_Father: {fileID: 0} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: -1314.989, z: 0} --- !u!114 &69086298 MonoBehaviour: @@ -200,19 +190,10 @@ Camera: m_ClearFlags: 2 m_BackGroundColor: {r: 0.90588236, g: 0.72156864, b: 0.627451, a: 1} m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_Iso: 200 - m_ShutterSpeed: 0.005 - m_Aperture: 16 - m_FocusDistance: 10 - m_FocalLength: 50 - m_BladeCount: 5 - m_Curvature: {x: 2, y: 11} - m_BarrelClipping: 0.25 - m_Anamorphism: 0 m_SensorSize: {x: 36, y: 24} m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 @@ -246,13 +227,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 142301651} - serializedVersion: 2 m_LocalRotation: {x: 0.20917961, y: -0, z: 0.000000007450579, w: 0.9778772} m_LocalPosition: {x: 0, y: 2.863728, z: -6.3874187} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 69086297} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &182366647 GameObject: @@ -298,7 +278,6 @@ MonoBehaviour: - {fileID: 460664918} - {fileID: 810504353} wheels: {fileID: 810504353} - timeScale: 1 --- !u!4 &182366649 Transform: m_ObjectHideFlags: 0 @@ -306,13 +285,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 182366647} - serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &192232450 GameObject: @@ -342,7 +320,6 @@ RectTransform: 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: 730005265} - {fileID: 414605617} @@ -350,6 +327,7 @@ RectTransform: - {fileID: 1900965550} - {fileID: 508772384} m_Father: {fileID: 2027684627} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -365,7 +343,7 @@ MonoBehaviour: m_GameObject: {fileID: 192232450} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Script: {fileID: 1297475563, guid: f70555f144d8491a825f0804e09c671c, type: 3} m_Name: m_EditorClassIdentifier: m_Padding: @@ -379,9 +357,6 @@ MonoBehaviour: m_ChildForceExpandHeight: 0 m_ChildControlWidth: 0 m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 --- !u!222 &192232453 CanvasRenderer: m_ObjectHideFlags: 0 @@ -429,7 +404,7 @@ MonoBehaviour: m_GameObject: {fileID: 206828973} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} m_Name: m_EditorClassIdentifier: m_FirstSelected: {fileID: 0} @@ -442,13 +417,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 206828973} - serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -400, y: -356.47668, z: 0} m_LocalScale: {x: 0.69084626, y: 0.69084626, z: 0.69084626} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2027684627} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &269285984 GameObject: @@ -480,10 +454,10 @@ RectTransform: 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: 1287318625} m_Father: {fileID: 192232451} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -499,12 +473,11 @@ MonoBehaviour: m_GameObject: {fileID: 269285984} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, 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} @@ -514,20 +487,17 @@ MonoBehaviour: m_NormalColor: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 0.34117648} m_HighlightedColor: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 0.34117648} m_PressedColor: {r: 0.6901961, g: 0.6901961, b: 0.6901961, a: 0.32156864} - m_SelectedColor: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 0.34117648} m_DisabledColor: {r: 0.9529412, g: 0, b: 1, a: 1} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed - m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 269285987} @@ -535,7 +505,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 269285989} - m_TargetAssemblyTypeName: m_MethodName: AnimateCameraProjection m_Mode: 1 m_Arguments: @@ -555,14 +524,12 @@ MonoBehaviour: m_GameObject: {fileID: 269285984} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, 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: [] @@ -575,7 +542,6 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 --- !u!222 &269285988 CanvasRenderer: m_ObjectHideFlags: 0 @@ -625,9 +591,9 @@ RectTransform: 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: 1161269158} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -643,14 +609,12 @@ MonoBehaviour: m_GameObject: {fileID: 300583102} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, 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: [] @@ -699,15 +663,14 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 315743953} - serializedVersion: 2 m_LocalRotation: {x: -0.000000021855694, y: -0, z: -0, w: 1} m_LocalPosition: {x: -0.755, y: -0.079034865, z: 0.03866959} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 911097553} - {fileID: 1933132477} m_Father: {fileID: 655457572} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &384398580 GameObject: @@ -735,14 +698,12 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 384398580} m_Enabled: 1 - serializedVersion: 10 + serializedVersion: 8 m_Type: 1 - m_Shape: 0 m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} m_Intensity: 1.4 m_Range: 10 m_SpotAngle: 30 - m_InnerSpotAngle: 21.802082 m_CookieSize: 10 m_Shadows: m_Type: 2 @@ -752,24 +713,6 @@ Light: m_Bias: 0.05 m_NormalBias: 0.4 m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 m_Cookie: {fileID: 0} m_DrawHalo: 0 m_Flare: {fileID: 0} @@ -777,16 +720,12 @@ Light: m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 - m_RenderingLayerMask: 1 m_Lightmapping: 4 m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 m_ColorTemperature: 6570 m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!4 &384398582 @@ -796,13 +735,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 384398580} - serializedVersion: 2 m_LocalRotation: {x: 0.35355338, y: 0.35355338, z: -0.1464466, w: 0.8535535} m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 45, y: 45, z: 0} --- !u!114 &384398583 MonoBehaviour: @@ -850,10 +788,10 @@ RectTransform: 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: 1113543885} m_Father: {fileID: 192232451} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -882,12 +820,11 @@ MonoBehaviour: m_GameObject: {fileID: 414605616} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, 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} @@ -897,20 +834,17 @@ MonoBehaviour: m_NormalColor: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 0.34117648} m_HighlightedColor: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 0.34117648} m_PressedColor: {r: 0.6901961, g: 0.6901961, b: 0.6901961, a: 0.32156864} - m_SelectedColor: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 0.34117648} m_DisabledColor: {r: 0.9529412, g: 0, b: 1, a: 1} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed - m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 414605620} @@ -918,7 +852,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 414605618} - m_TargetAssemblyTypeName: m_MethodName: PlayAnimation m_Mode: 1 m_Arguments: @@ -938,14 +871,12 @@ MonoBehaviour: m_GameObject: {fileID: 414605616} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, 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: [] @@ -958,7 +889,6 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 --- !u!222 &414605621 CanvasRenderer: m_ObjectHideFlags: 0 @@ -991,14 +921,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 460664916} - serializedVersion: 2 m_LocalRotation: {x: -0, y: 1, z: -0, w: 0} m_LocalPosition: {x: -1.09, y: 0, z: -0.36} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1077484924} m_Father: {fileID: 0} + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &460664918 MonoBehaviour: @@ -1090,13 +1019,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 480829268} - serializedVersion: 2 m_LocalRotation: {x: 0.000000059604645, y: 0, z: -0, w: 1} m_LocalPosition: {x: -0, y: -0.000000014899477, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 655457572} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!64 &480829270 MeshCollider: @@ -1106,19 +1034,11 @@ MeshCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 480829268} m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 m_IsTrigger: 0 - m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 5 + serializedVersion: 3 m_Convex: 0 - m_CookingOptions: 30 + m_CookingOptions: 14 m_Mesh: {fileID: 4300032, guid: c9da341d2d3a64cf8b2adc9bba8ec9ec, type: 3} --- !u!23 &480829271 MeshRenderer: @@ -1131,12 +1051,9 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1148,7 +1065,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -1161,7 +1077,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &480829272 MeshFilter: m_ObjectHideFlags: 0 @@ -1199,10 +1114,10 @@ RectTransform: 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: 1902477809} m_Father: {fileID: 192232451} + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -1218,12 +1133,11 @@ MonoBehaviour: m_GameObject: {fileID: 508772383} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, 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} @@ -1233,20 +1147,17 @@ MonoBehaviour: m_NormalColor: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 0.34117648} m_HighlightedColor: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 0.34117648} m_PressedColor: {r: 0.6901961, g: 0.6901961, b: 0.6901961, a: 0.32156864} - m_SelectedColor: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 0.34117648} m_DisabledColor: {r: 0.9529412, g: 0, b: 1, a: 1} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed - m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 508772386} @@ -1254,7 +1165,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 810504353} - m_TargetAssemblyTypeName: m_MethodName: OnClick m_Mode: 1 m_Arguments: @@ -1274,14 +1184,12 @@ MonoBehaviour: m_GameObject: {fileID: 508772383} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, 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: [] @@ -1294,7 +1202,6 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 --- !u!222 &508772387 CanvasRenderer: m_ObjectHideFlags: 0 @@ -1328,16 +1235,15 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 655457571} - serializedVersion: 2 m_LocalRotation: {x: 0.000000021855694, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0.65403485, z: 2.3863304} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 480829269} - {fileID: 315743954} - {fileID: 759060660} m_Father: {fileID: 543450652013950231} + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &655457573 MonoBehaviour: @@ -1462,13 +1368,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 671979174} - serializedVersion: 2 m_LocalRotation: {x: 0.24988215, y: -0, z: -0, w: 0.96827626} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 759060660} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 28.941002, y: 0, z: 0} --- !u!108 &671979176 Light: @@ -1478,14 +1383,12 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 671979174} m_Enabled: 1 - serializedVersion: 10 + serializedVersion: 8 m_Type: 0 - m_Shape: 0 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 0 m_Range: 10 m_SpotAngle: 83 - m_InnerSpotAngle: 64.90425 m_CookieSize: 10 m_Shadows: m_Type: 0 @@ -1495,24 +1398,6 @@ Light: m_Bias: 0.05 m_NormalBias: 0.4 m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 m_Cookie: {fileID: 0} m_DrawHalo: 0 m_Flare: {fileID: 0} @@ -1520,16 +1405,12 @@ Light: m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 - m_RenderingLayerMask: 1 m_Lightmapping: 4 m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 m_ColorTemperature: 6570 m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!1 &730005264 @@ -1562,10 +1443,10 @@ RectTransform: 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: 1088776685} m_Father: {fileID: 192232451} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -1594,12 +1475,11 @@ MonoBehaviour: m_GameObject: {fileID: 730005264} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, 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} @@ -1609,20 +1489,17 @@ MonoBehaviour: m_NormalColor: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 0.34117648} m_HighlightedColor: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 0.34117648} m_PressedColor: {r: 0.6901961, g: 0.6901961, b: 0.6901961, a: 0.32156864} - m_SelectedColor: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 0.34117648} m_DisabledColor: {r: 0.9529412, g: 0, b: 1, a: 1} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed - m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 730005268} @@ -1630,7 +1507,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 730005266} - m_TargetAssemblyTypeName: m_MethodName: PlayAnimation m_Mode: 1 m_Arguments: @@ -1650,14 +1526,12 @@ MonoBehaviour: m_GameObject: {fileID: 730005264} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, 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: [] @@ -1670,7 +1544,6 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 --- !u!222 &730005269 CanvasRenderer: m_ObjectHideFlags: 0 @@ -1702,15 +1575,14 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 759060659} - serializedVersion: 2 m_LocalRotation: {x: -0.000000021855694, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0.753, y: -0.079034865, z: 0.03866959} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 671979175} - {fileID: 1453060463} m_Father: {fileID: 655457572} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &795061382 GameObject: @@ -1740,9 +1612,9 @@ RectTransform: 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: 1755549104} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -1758,14 +1630,12 @@ MonoBehaviour: m_GameObject: {fileID: 795061382} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, 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: [] @@ -1850,9 +1720,9 @@ RectTransform: 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: 1900965550} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -1868,14 +1738,12 @@ MonoBehaviour: m_GameObject: {fileID: 822037459} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, 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: [] @@ -1939,13 +1807,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 843756320} - serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &911097552 GameObject: @@ -1971,13 +1838,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 911097552} - serializedVersion: 2 m_LocalRotation: {x: 0.24988215, y: -0, z: -0, w: 0.96827626} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 315743954} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 28.941002, y: 0, z: 0} --- !u!108 &911097554 Light: @@ -1987,14 +1853,12 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 911097552} m_Enabled: 1 - serializedVersion: 10 + serializedVersion: 8 m_Type: 0 - m_Shape: 0 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 0 m_Range: 10 m_SpotAngle: 83 - m_InnerSpotAngle: 64.90425 m_CookieSize: 10 m_Shadows: m_Type: 0 @@ -2004,24 +1868,6 @@ Light: m_Bias: 0.05 m_NormalBias: 0.4 m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 m_Cookie: {fileID: 0} m_DrawHalo: 0 m_Flare: {fileID: 0} @@ -2029,16 +1875,12 @@ Light: m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 - m_RenderingLayerMask: 1 m_Lightmapping: 4 m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 m_ColorTemperature: 6570 m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!1 &1077484920 @@ -2070,12 +1912,9 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2087,7 +1926,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -2100,7 +1938,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1077484923 MeshFilter: m_ObjectHideFlags: 0 @@ -2116,13 +1953,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1077484920} - serializedVersion: 2 m_LocalRotation: {x: -0, y: 0.38268304, z: -0, w: 0.92387974} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 100, y: 1, z: 100} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 460664917} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 45, z: 0} --- !u!1 &1080535449 GameObject: @@ -2152,9 +1988,9 @@ RectTransform: 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: 1161269158} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.25} m_AnchorMax: {x: 1, y: 0.75} @@ -2170,14 +2006,12 @@ MonoBehaviour: m_GameObject: {fileID: 1080535449} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, 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: [] @@ -2190,7 +2024,6 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 --- !u!222 &1080535452 CanvasRenderer: m_ObjectHideFlags: 0 @@ -2227,9 +2060,9 @@ RectTransform: 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: 730005265} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -2245,14 +2078,12 @@ MonoBehaviour: m_GameObject: {fileID: 1088776684} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, 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: [] @@ -2306,9 +2137,9 @@ RectTransform: 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: 414605617} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -2324,14 +2155,12 @@ MonoBehaviour: m_GameObject: {fileID: 1113543884} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, 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: [] @@ -2384,13 +2213,13 @@ RectTransform: 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: 1080535450} - {fileID: 1859953128} - {fileID: 2061135563} - {fileID: 300583103} m_Father: {fileID: 2027684627} + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 0} @@ -2406,12 +2235,11 @@ MonoBehaviour: m_GameObject: {fileID: 1161269157} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Script: {fileID: -113659843, guid: f70555f144d8491a825f0804e09c671c, 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} @@ -2421,20 +2249,17 @@ MonoBehaviour: 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: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 1703196966} @@ -2476,9 +2301,9 @@ RectTransform: 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: 269285985} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -2494,14 +2319,12 @@ MonoBehaviour: m_GameObject: {fileID: 1287318624} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, 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: [] @@ -2551,13 +2374,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1453060462} - serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0.179} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 759060660} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!108 &1453060464 Light: @@ -2567,14 +2389,12 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1453060462} m_Enabled: 1 - serializedVersion: 10 + serializedVersion: 8 m_Type: 2 - m_Shape: 0 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 0 m_Range: 10 m_SpotAngle: 30 - m_InnerSpotAngle: 21.802082 m_CookieSize: 10 m_Shadows: m_Type: 0 @@ -2584,24 +2404,6 @@ Light: m_Bias: 0.05 m_NormalBias: 0.4 m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 m_Cookie: {fileID: 0} m_DrawHalo: 0 m_Flare: {fileID: 0} @@ -2609,16 +2411,12 @@ Light: m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 - m_RenderingLayerMask: 1 m_Lightmapping: 4 m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 m_ColorTemperature: 6570 m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!114 &1526516044 @@ -2676,9 +2474,9 @@ RectTransform: 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: 1755549104} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -2694,14 +2492,12 @@ MonoBehaviour: m_GameObject: {fileID: 1549457030} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, 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: [] @@ -2756,9 +2552,9 @@ RectTransform: 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: 2027684627} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0} m_AnchorMax: {x: 0.5, y: 0} @@ -2786,14 +2582,12 @@ MonoBehaviour: m_GameObject: {fileID: 1619205709} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, 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: [] @@ -2901,9 +2695,9 @@ RectTransform: 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: 2061135563} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -2919,14 +2713,12 @@ MonoBehaviour: m_GameObject: {fileID: 1703196964} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, 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: [] @@ -2939,7 +2731,6 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 --- !u!222 &1703196967 CanvasRenderer: m_ObjectHideFlags: 0 @@ -2979,11 +2770,11 @@ RectTransform: 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: 1549457031} - {fileID: 795061383} m_Father: {fileID: 2027684627} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -2999,7 +2790,7 @@ MonoBehaviour: m_GameObject: {fileID: 1755549103} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Script: {fileID: 1297475563, guid: f70555f144d8491a825f0804e09c671c, type: 3} m_Name: m_EditorClassIdentifier: m_Padding: @@ -3013,9 +2804,6 @@ MonoBehaviour: m_ChildForceExpandHeight: 1 m_ChildControlWidth: 1 m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 --- !u!114 &1755549106 MonoBehaviour: m_ObjectHideFlags: 0 @@ -3031,13 +2819,16 @@ MonoBehaviour: logAllocations: 1 logFiltered: 0 logIgnored: 0 - filterAllocations: [] + filterAllocations: + - PrimeTween.Runtime + - PrimeTweenDemo ignoreAllocations: - RaycastHit.get_collider() - Component.get_transform() - Component.get_gameObject() - MeasureMemoryAllocations - DebugInfo + - Slider.set_value --- !u!114 &1755549107 MonoBehaviour: m_ObjectHideFlags: 0 @@ -3062,14 +2853,12 @@ MonoBehaviour: m_GameObject: {fileID: 1755549103} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.6981132, g: 0.6981132, b: 0.6981132, a: 0.28627452} m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] @@ -3082,7 +2871,6 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 --- !u!222 &1755549109 CanvasRenderer: m_ObjectHideFlags: 0 @@ -3117,10 +2905,10 @@ RectTransform: 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: 2107903321} m_Father: {fileID: 1161269158} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.25} m_AnchorMax: {x: 1, y: 0.75} @@ -3186,10 +2974,10 @@ RectTransform: 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: 822037460} m_Father: {fileID: 192232451} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -3205,12 +2993,11 @@ MonoBehaviour: m_GameObject: {fileID: 1900965549} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, 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} @@ -3220,20 +3007,17 @@ MonoBehaviour: m_NormalColor: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 0.34117648} m_HighlightedColor: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 0.34117648} m_PressedColor: {r: 0.6901961, g: 0.6901961, b: 0.6901961, a: 0.32156864} - m_SelectedColor: {r: 0.3962264, g: 0.3962264, b: 0.3962264, a: 0.34117648} m_DisabledColor: {r: 0.9529412, g: 0, b: 1, a: 1} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed - m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 1900965553} @@ -3241,7 +3025,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 69086298} - m_TargetAssemblyTypeName: m_MethodName: ShakeCamera m_Mode: 1 m_Arguments: @@ -3261,14 +3044,12 @@ MonoBehaviour: m_GameObject: {fileID: 1900965549} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, 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: [] @@ -3281,7 +3062,6 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 --- !u!222 &1900965554 CanvasRenderer: m_ObjectHideFlags: 0 @@ -3318,9 +3098,9 @@ RectTransform: 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: 508772384} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -3336,14 +3116,12 @@ MonoBehaviour: m_GameObject: {fileID: 1902477808} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, 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: [] @@ -3397,9 +3175,9 @@ RectTransform: 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: 2027684627} + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1} @@ -3453,13 +3231,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1933132476} - serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0.179} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 315743954} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!108 &1933132478 Light: @@ -3469,14 +3246,12 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1933132476} m_Enabled: 1 - serializedVersion: 10 + serializedVersion: 8 m_Type: 2 - m_Shape: 0 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Intensity: 0 m_Range: 10 m_SpotAngle: 30 - m_InnerSpotAngle: 21.802082 m_CookieSize: 10 m_Shadows: m_Type: 0 @@ -3486,24 +3261,6 @@ Light: m_Bias: 0.05 m_NormalBias: 0.4 m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 m_Cookie: {fileID: 0} m_DrawHalo: 0 m_Flare: {fileID: 0} @@ -3511,16 +3268,12 @@ Light: m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 - m_RenderingLayerMask: 1 m_Lightmapping: 4 m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 m_ColorTemperature: 6570 m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!114 &1946040352 @@ -3577,7 +3330,7 @@ MonoBehaviour: m_GameObject: {fileID: 2027684623} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} m_Name: m_EditorClassIdentifier: m_IgnoreReversedGraphics: 1 @@ -3594,7 +3347,7 @@ MonoBehaviour: m_GameObject: {fileID: 2027684623} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} m_Name: m_EditorClassIdentifier: m_UiScaleMode: 1 @@ -3607,7 +3360,6 @@ MonoBehaviour: m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 0 --- !u!223 &2027684626 Canvas: m_ObjectHideFlags: 0 @@ -3625,9 +3377,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 - m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 m_SortingOrder: 0 m_TargetDisplay: 0 @@ -3641,7 +3391,6 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0, y: 0, z: 0} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 192232451} - {fileID: 1619205710} @@ -3650,6 +3399,7 @@ RectTransform: - {fileID: 1161269158} - {fileID: 1920139812} m_Father: {fileID: 0} + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -3682,10 +3432,10 @@ RectTransform: 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: 1703196965} m_Father: {fileID: 1161269158} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -3720,9 +3470,9 @@ RectTransform: 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: 1859953128} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -3738,14 +3488,12 @@ MonoBehaviour: m_GameObject: {fileID: 2107903320} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, 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: [] @@ -3758,7 +3506,6 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 --- !u!222 &2107903323 CanvasRenderer: m_ObjectHideFlags: 0 @@ -3774,14 +3521,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6291292912582762050} - serializedVersion: 2 m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} m_LocalPosition: {x: -0.22998282, y: 2.7259037, z: -1.4789121} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 8272619152164736657} m_Father: {fileID: 543450652013950231} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &172780826922127087 Transform: @@ -3790,14 +3536,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5769078734430259581} - serializedVersion: 2 m_LocalRotation: {x: 0, y: -2.3140616e-30, z: -0, w: 1} m_LocalPosition: {x: -0, y: -0.0000000120113945, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 7119166486829381719} m_Father: {fileID: 5596421173225246262} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!23 &382836270145210570 MeshRenderer: @@ -3810,12 +3555,9 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3827,7 +3569,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -3840,7 +3581,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!64 &482691359192624379 MeshCollider: m_ObjectHideFlags: 0 @@ -3849,17 +3589,9 @@ MeshCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1454953783326346074} m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 m_IsTrigger: 0 - m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 5 + serializedVersion: 3 m_Convex: 1 m_CookingOptions: 30 m_Mesh: {fileID: 4300010, guid: c9da341d2d3a64cf8b2adc9bba8ec9ec, type: 3} @@ -3870,13 +3602,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2694482714574987048} - serializedVersion: 2 m_LocalRotation: {x: 0.00000008146034, y: 0, z: -0, w: 1} m_LocalPosition: {x: -0, y: 0.30891964, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 543450652013950231} + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &543450652013950231 Transform: @@ -3885,11 +3616,9 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 919132147486207917} - serializedVersion: 2 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: 95317135125387569} - {fileID: 5596421173225246262} @@ -3902,6 +3631,7 @@ Transform: - {fileID: 8614371467897437538} - {fileID: 655457572} m_Father: {fileID: 0} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!23 &868337851955314430 MeshRenderer: @@ -3914,12 +3644,9 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3931,7 +3658,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -3944,7 +3670,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &919132147486207917 GameObject: m_ObjectHideFlags: 0 @@ -4002,13 +3727,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1834832845902164278} - serializedVersion: 2 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: 8272619152164736657} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!23 &1171545932194268010 MeshRenderer: @@ -4021,12 +3745,9 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4038,7 +3759,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -4051,7 +3771,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!23 &1174928188556136133 MeshRenderer: m_ObjectHideFlags: 0 @@ -4063,12 +3782,9 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4080,7 +3796,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -4093,7 +3808,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &1324398456776219820 Transform: m_ObjectHideFlags: 0 @@ -4101,13 +3815,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3802291232760194840} - serializedVersion: 2 m_LocalRotation: {x: 0.00000008146034, y: 0, z: -0, w: 1} m_LocalPosition: {x: -0, y: 1.3254354, z: 1.2354684} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 543450652013950231} + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &1343927956986588318 MeshFilter: @@ -4128,12 +3841,9 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4145,7 +3855,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -4158,7 +3867,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!23 &1370731719672604263 MeshRenderer: m_ObjectHideFlags: 0 @@ -4170,12 +3878,9 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4187,7 +3892,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -4200,7 +3904,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &1399470409057338219 GameObject: m_ObjectHideFlags: 0 @@ -4224,15 +3927,15 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4651293638409442919} - serializedVersion: 2 - m_LocalRotation: {x: -4.8343667e-14, y: -0.000000061212965, z: 0.0000004897039, w: 1} + m_LocalRotation: {x: -4.8343667e-14, y: -0.000000061212965, z: 0.0000004897039, + w: 1} m_LocalPosition: {x: -0, y: 0.00000001756581, z: 0.00000011920929} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 5811884583841482940} - {fileID: 1920425508572067436} m_Father: {fileID: 7842203396053052413} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1454953783326346074 GameObject: @@ -4269,17 +3972,9 @@ MeshCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4642532271868578956} m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 m_IsTrigger: 0 - m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 5 + serializedVersion: 3 m_Convex: 1 m_CookingOptions: 30 m_Mesh: {fileID: 4300008, guid: c9da341d2d3a64cf8b2adc9bba8ec9ec, type: 3} @@ -4309,13 +4004,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6843584649582098237} - serializedVersion: 2 m_LocalRotation: {x: 0.9360078, y: -0.00000057927593, z: 0.3519793, w: -0.00000003444576} m_LocalPosition: {x: -2.210752, y: 0.66151613, z: 0.86207104} m_LocalScale: {x: 0.99999976, y: 1, z: 0.99999976} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1441162320435695677} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &1957376192961816002 MeshFilter: @@ -4332,17 +4026,16 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7703323664971899662} - serializedVersion: 2 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: 4185769961175156060} - {fileID: 7375368130044152401} - {fileID: 3640928673919294776} - {fileID: 8214177323173603408} m_Father: {fileID: 8614371467897437538} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2694482714574987048 GameObject: @@ -4369,14 +4062,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6438736019791643338} - serializedVersion: 2 m_LocalRotation: {x: 0, y: -2.3140616e-30, z: -0, w: 1} m_LocalPosition: {x: -0, y: 0.000000023258746, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 9120391027429686458} m_Father: {fileID: 6302706739155191070} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2733681770876101857 GameObject: @@ -4408,12 +4100,9 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4425,7 +4114,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -4438,7 +4126,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &3006387494640674227 GameObject: m_ObjectHideFlags: 0 @@ -4502,14 +4189,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5520051320514970037} - serializedVersion: 2 m_LocalRotation: {x: 0.000000015454313, y: 0.70710677, z: -0.000000015454312, w: 0.7071068} m_LocalPosition: {x: 1.0949476, y: 0.9704342, z: 2.1051562} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 7842203396053052413} m_Father: {fileID: 543450652013950231} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!23 &3191571841974369270 MeshRenderer: @@ -4522,12 +4208,9 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4539,7 +4222,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -4552,7 +4234,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!23 &3199042364890404102 MeshRenderer: m_ObjectHideFlags: 0 @@ -4564,12 +4245,9 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4581,7 +4259,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -4594,7 +4271,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &3271767513617999204 Transform: m_ObjectHideFlags: 0 @@ -4602,15 +4278,14 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6252852214270557190} - serializedVersion: 2 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: 3519659678996002217} - {fileID: 8955083193884922905} m_Father: {fileID: 4914293776580820246} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &3419681041113134397 MeshFilter: @@ -4646,13 +4321,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6611973956703832923} - serializedVersion: 2 m_LocalRotation: {x: 0.54812384, y: 0.54812384, z: 0.4467217, w: 0.44672164} m_LocalPosition: {x: -0.00000023841858, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 3271767513617999204} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &3623644531452767477 MeshFilter: @@ -4669,13 +4343,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2733681770876101857} - serializedVersion: 2 m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0.9920766, y: 1.0288258, z: -0.0347642} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2590561584456245742} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &3759489000277892601 GameObject: @@ -4734,13 +4407,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3006387494640674227} - serializedVersion: 2 m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -0.9920766, y: 1.0288258, z: -0.0347642} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2590561584456245742} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!64 &4247479592392523373 MeshCollider: @@ -4750,17 +4422,9 @@ MeshCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6004201493088789044} m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 m_IsTrigger: 0 - m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 5 + serializedVersion: 3 m_Convex: 1 m_CookingOptions: 30 m_Mesh: {fileID: 4300022, guid: c9da341d2d3a64cf8b2adc9bba8ec9ec, type: 3} @@ -4771,13 +4435,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6435797359462470268} - serializedVersion: 2 m_LocalRotation: {x: 0.00000013621633, y: 0.905096, z: -0.000000125865, w: 0.42520732} m_LocalPosition: {x: -2.3136199, y: -0.66151446, z: 0.50435114} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 7119166486829381719} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &4642532271868578956 GameObject: @@ -4839,14 +4502,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1399470409057338219} - serializedVersion: 2 m_LocalRotation: {x: 0.5, y: -0.49999997, z: -0.5, w: -0.5} m_LocalPosition: {x: -0, y: -0.0000001180379, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 3271767513617999204} m_Father: {fileID: 7345334598355961312} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!64 &5106260460584101894 MeshCollider: @@ -4856,17 +4518,9 @@ MeshCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7388158607944762906} m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 m_IsTrigger: 0 - m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 5 + serializedVersion: 3 m_Convex: 1 m_CookingOptions: 30 m_Mesh: {fileID: 4300016, guid: c9da341d2d3a64cf8b2adc9bba8ec9ec, type: 3} @@ -4878,17 +4532,9 @@ MeshCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2733681770876101857} m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 m_IsTrigger: 0 - m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 5 + serializedVersion: 3 m_Convex: 1 m_CookingOptions: 30 m_Mesh: {fileID: 4300024, guid: c9da341d2d3a64cf8b2adc9bba8ec9ec, type: 3} @@ -4911,12 +4557,9 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4928,7 +4571,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -4941,7 +4583,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!64 &5381014078299772781 MeshCollider: m_ObjectHideFlags: 0 @@ -4950,17 +4591,9 @@ MeshCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5663755497419489490} m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 m_IsTrigger: 0 - m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 5 + serializedVersion: 3 m_Convex: 1 m_CookingOptions: 30 m_Mesh: {fileID: 4300012, guid: c9da341d2d3a64cf8b2adc9bba8ec9ec, type: 3} @@ -4972,17 +4605,9 @@ MeshCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3006387494640674227} m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 m_IsTrigger: 0 - m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 5 + serializedVersion: 3 m_Convex: 1 m_CookingOptions: 30 m_Mesh: {fileID: 4300020, guid: c9da341d2d3a64cf8b2adc9bba8ec9ec, type: 3} @@ -5011,14 +4636,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7530153028561895661} - serializedVersion: 2 m_LocalRotation: {x: 0.000000015454313, y: -0.70710677, z: 0.000000015454312, w: 0.7071068} m_LocalPosition: {x: -1.0888067, y: 0.97043407, z: 2.1027858} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 172780826922127087} m_Father: {fileID: 543450652013950231} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!64 &5657825584776022733 MeshCollider: @@ -5028,17 +4652,9 @@ MeshCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3140191690125254210} m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 m_IsTrigger: 0 - m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 5 + serializedVersion: 3 m_Convex: 1 m_CookingOptions: 30 m_Mesh: {fileID: 4300030, guid: c9da341d2d3a64cf8b2adc9bba8ec9ec, type: 3} @@ -5069,17 +4685,9 @@ MeshCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6611973956703832923} m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 m_IsTrigger: 0 - m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 5 + serializedVersion: 3 m_Convex: 1 m_CookingOptions: 30 m_Mesh: {fileID: 4300028, guid: c9da341d2d3a64cf8b2adc9bba8ec9ec, type: 3} @@ -5106,13 +4714,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7388158607944762906} - serializedVersion: 2 m_LocalRotation: {x: 0.9360078, y: -0.00000057927593, z: 0.3519793, w: -0.00000003444576} m_LocalPosition: {x: -2.210752, y: 0.66151613, z: 0.86207104} m_LocalScale: {x: 0.99999976, y: 1, z: 0.99999976} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1441162320435695677} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &6004201493088789044 GameObject: @@ -5160,12 +4767,9 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5177,7 +4781,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -5190,7 +4793,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &6252852214270557190 GameObject: m_ObjectHideFlags: 0 @@ -5232,14 +4834,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4680849219148963205} - serializedVersion: 2 m_LocalRotation: {x: 0.000000015454313, y: -0.70710677, z: 0.000000015454312, w: 0.7071068} m_LocalPosition: {x: -1.2138957, y: 0.3600602, z: -1.4809437} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 2707615149424617030} m_Father: {fileID: 543450652013950231} + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &6435797359462470268 GameObject: @@ -5287,12 +4888,9 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5304,7 +4902,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -5317,7 +4914,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &6553321204619296590 MeshFilter: m_ObjectHideFlags: 0 @@ -5361,17 +4957,9 @@ MeshCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3423717910921782154} m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 m_IsTrigger: 0 - m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 5 + serializedVersion: 3 m_Convex: 1 m_CookingOptions: 30 m_Mesh: {fileID: 4300026, guid: c9da341d2d3a64cf8b2adc9bba8ec9ec, type: 3} @@ -5382,13 +4970,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5663755497419489490} - serializedVersion: 2 m_LocalRotation: {x: 0.000000099748036, y: 0.7071067, z: -0.00000009974802, w: 0.7071068} m_LocalPosition: {x: 0.0012955666, y: 1.3280718, z: 0.007947803} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 9120391027429686458} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &6843584649582098237 GameObject: @@ -5416,15 +5003,15 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 9038607207086042419} - serializedVersion: 2 - m_LocalRotation: {x: -3.1711317e-15, y: -0.00000007093701, z: 0.000000026011023, w: 1} + m_LocalRotation: {x: -3.1711317e-15, y: -0.00000007093701, z: 0.000000026011023, + w: 1} m_LocalPosition: {x: -0, y: 0.00000010719789, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 4268089046573804721} - {fileID: 8179810329907547395} m_Father: {fileID: 172780826922127087} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!64 &7151003084770373271 MeshCollider: @@ -5434,17 +5021,9 @@ MeshCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6843584649582098237} m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 m_IsTrigger: 0 - m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 5 + serializedVersion: 3 m_Convex: 1 m_CookingOptions: 30 m_Mesh: {fileID: 4300018, guid: c9da341d2d3a64cf8b2adc9bba8ec9ec, type: 3} @@ -5455,14 +5034,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 9058890211913245811} - serializedVersion: 2 m_LocalRotation: {x: 1.7112914e-15, y: 1, z: -0.000000021855694, w: 0.0000000754979} m_LocalPosition: {x: -6.344926e-18, y: 2.246028, z: -2.7539887} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 4914293776580820246} m_Father: {fileID: 543450652013950231} + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &7375368130044152401 Transform: @@ -5471,13 +5049,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6004201493088789044} - serializedVersion: 2 m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0.9920766, y: -1.7450808, z: -0.034764405} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2590561584456245742} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &7388158607944762906 GameObject: @@ -5547,14 +5124,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3815856358122545974} - serializedVersion: 2 m_LocalRotation: {x: -0.000000059604645, y: 0.0000000437114, z: 1, w: -0.00000019470718} m_LocalPosition: {x: -0, y: -0.000000011742969, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1441162320435695677} m_Father: {fileID: 3186703855294423644} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &7865082802916841334 MeshFilter: @@ -5580,17 +5156,9 @@ MeshCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6435797359462470268} m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 m_IsTrigger: 0 - m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 5 + serializedVersion: 3 m_Convex: 1 m_CookingOptions: 30 m_Mesh: {fileID: 4300006, guid: c9da341d2d3a64cf8b2adc9bba8ec9ec, type: 3} @@ -5605,12 +5173,9 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5622,7 +5187,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -5635,7 +5199,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!23 &8096064714667366686 MeshRenderer: m_ObjectHideFlags: 0 @@ -5647,12 +5210,9 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5664,7 +5224,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -5677,7 +5236,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &8179810329907547395 Transform: m_ObjectHideFlags: 0 @@ -5685,13 +5243,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4642532271868578956} - serializedVersion: 2 m_LocalRotation: {x: 0.00000013621633, y: 0.905096, z: -0.000000125865, w: 0.42520732} m_LocalPosition: {x: -2.3136199, y: -0.66151446, z: 0.50435114} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 7119166486829381719} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &8214177323173603408 Transform: @@ -5700,13 +5257,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3423717910921782154} - serializedVersion: 2 m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -0.9920766, y: -1.7450808, z: -0.034764405} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2590561584456245742} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &8272619152164736657 Transform: @@ -5715,14 +5271,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1139639555779975955} - serializedVersion: 2 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: 1139714121598866790} m_Father: {fileID: 95317135125387569} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &8295461951754712187 MeshFilter: @@ -5748,17 +5303,9 @@ MeshCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1834832845902164278} m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 m_IsTrigger: 0 - m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 5 + serializedVersion: 3 m_Convex: 1 m_CookingOptions: 30 m_Mesh: {fileID: 4300014, guid: c9da341d2d3a64cf8b2adc9bba8ec9ec, type: 3} @@ -5773,12 +5320,9 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5790,7 +5334,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -5803,7 +5346,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &8614371467897437538 Transform: m_ObjectHideFlags: 0 @@ -5811,14 +5353,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1024366685134399085} - serializedVersion: 2 m_LocalRotation: {x: 0.7071068, y: 0, z: -0, w: 0.7071067} m_LocalPosition: {x: -0, y: 0.39952204, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 2590561584456245742} m_Father: {fileID: 543450652013950231} + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &8728280931639377909 MeshFilter: @@ -5835,13 +5376,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1454953783326346074} - serializedVersion: 2 m_LocalRotation: {x: 0.000000099748036, y: 0.7071067, z: -0.00000009974802, w: 0.7071068} m_LocalPosition: {x: -0, y: -0.00000012575286, z: 0.00000011920929} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 9120391027429686458} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &8949606274296942739 Transform: @@ -5850,13 +5390,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3115097983429087125} - serializedVersion: 2 m_LocalRotation: {x: 0.00000008146034, y: 0, z: -0, w: 1} m_LocalPosition: {x: -0, y: 0.30891964, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 543450652013950231} + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &8955083193884922905 Transform: @@ -5865,13 +5404,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3140191690125254210} - serializedVersion: 2 m_LocalRotation: {x: 0.54812384, y: 0.54812384, z: 0.4467217, w: 0.44672164} m_LocalPosition: {x: 2.3065257, y: 0.0000002092075, z: -2.4529128} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 3271767513617999204} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!23 &9015279149317773823 MeshRenderer: @@ -5884,12 +5422,9 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5901,7 +5436,6 @@ MeshRenderer: m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 - m_ReceiveGI: 1 m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 @@ -5914,7 +5448,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &9038607207086042419 GameObject: m_ObjectHideFlags: 0 @@ -5956,24 +5489,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3759489000277892601} - serializedVersion: 2 m_LocalRotation: {x: 0, y: -2.3140616e-30, z: -0, w: 1} m_LocalPosition: {x: -0, y: -0.00000000654358, z: -0.00000011920929} m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 m_Children: - {fileID: 8884403382647605949} - {fileID: 6826833664794589208} m_Father: {fileID: 2707615149424617030} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1660057539 &9223372036854775807 -SceneRoots: - m_ObjectHideFlags: 0 - m_Roots: - - {fileID: 182366649} - - {fileID: 543450652013950231} - - {fileID: 384398582} - - {fileID: 69086297} - - {fileID: 843756322} - - {fileID: 460664917} - - {fileID: 2027684627} diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Animatable.cs b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Animatable.cs index 63354d5..e9affe6 100644 --- a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Animatable.cs +++ b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Animatable.cs @@ -10,25 +10,5 @@ namespace PrimeTweenDemo { public abstract class Animatable : Clickable { public abstract Sequence Animate(bool toEndValue); } - - #if UNITY_EDITOR - [UnityEditor.CustomEditor(typeof(Clickable), true), UnityEditor.CanEditMultipleObjects] - internal class InspectorWithButton : UnityEditor.Editor { - GUIStyle boldButtonStyle; - - public override void OnInspectorGUI() { - DrawDefaultInspector(); - GUILayout.Space(8); - if (boldButtonStyle == null) { - boldButtonStyle = new GUIStyle(GUI.skin.button) { fontStyle = FontStyle.Bold }; - } - if (GUILayout.Button("Play Animation", boldButtonStyle)) { - foreach (var t in targets) { - (t as Clickable).OnClick(); - } - } - } - } - #endif } #endif diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Baggage.cs b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Baggage.cs index 14ab709..a5d5ee2 100644 --- a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Baggage.cs +++ b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Baggage.cs @@ -18,7 +18,8 @@ namespace PrimeTweenDemo { Sequence PlayFlipAnimation() { if (!sequence.isAlive) { const float jumpDuration = 0.3f; - sequence = Tween.LocalPositionZ(animationAnchor, 0.2f, jumpDuration) + sequence = Sequence.Create() + .Chain(Tween.LocalPositionZ(animationAnchor, 0.2f, jumpDuration)) .Chain(Tween.LocalEulerAngles(animationAnchor, Vector3.zero, new Vector3(0, 360, 0), 0.9f, Ease.InOutBack)) .Chain(Tween.LocalPositionZ(animationAnchor, 0, jumpDuration)); } diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Demo.cs b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Demo.cs index 60b4f46..64f2a4c 100644 --- a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Demo.cs +++ b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Demo.cs @@ -14,7 +14,6 @@ namespace PrimeTweenDemo { [SerializeField] TypewriterAnimatorExample typewriterAnimatorExample; [SerializeField] Animatable[] animatables; [SerializeField] Wheels wheels; - [SerializeField, Range(0.5f, 5f)] float timeScale = 1; bool isAnimatingWithCoroutineOrAsync; public Sequence animateAllSequence; @@ -59,8 +58,6 @@ namespace PrimeTweenDemo { } void Update() { - Time.timeScale = timeScale; - animateAllPartsButton.GetComponent().enabled = !isAnimatingWithCoroutineOrAsync; animateAllPartsButton.GetComponentInChildren().enabled = !isAnimatingWithCoroutineOrAsync; diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Door.cs b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Door.cs index dad5626..f4825d2 100644 --- a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Door.cs +++ b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Door.cs @@ -17,8 +17,9 @@ namespace PrimeTweenDemo { return Sequence.Create(); } isClosed = _isClosed; + var sequence = Sequence.Create(); var rotationTween = Tween.LocalRotation(animationAnchor, _isClosed ? new Vector3(0, -90) : Vector3.zero, 0.7f, Ease.InOutElastic); - var sequence = Sequence.Create(rotationTween); + sequence.Group(rotationTween); if (_isClosed) { sequence.Group(cameraController.Shake(0.5f)); } @@ -26,4 +27,4 @@ namespace PrimeTweenDemo { } } } -#endif \ No newline at end of file +#endif diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/HighlightableElement.cs b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/HighlightableElement.cs index 6d63d0e..21940dd 100644 --- a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/HighlightableElement.cs +++ b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/HighlightableElement.cs @@ -9,9 +9,9 @@ namespace PrimeTweenDemo { void OnEnable() { models = GetComponentsInChildren(); foreach (var mr in models) { - _ = mr.material; // copy shared material + mr.sharedMaterial = new Material(mr.sharedMaterial); // copy shared material } } } } -#endif \ No newline at end of file +#endif diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/HighlightedElementController.cs b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/HighlightedElementController.cs index 4d9cb89..e1543b8 100644 --- a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/HighlightedElementController.cs +++ b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/HighlightedElementController.cs @@ -9,21 +9,25 @@ namespace PrimeTweenDemo { [SerializeField] CameraProjectionMatrixAnimation cameraProjectionMatrixAnimation; [CanBeNull] public HighlightableElement current { get; private set; } + #if UNITY_2019_1_OR_NEWER && !PHYSICS_MODULE_INSTALLED void Awake() { - #if UNITY_2019_1_OR_NEWER && !PHYSICS_MODULE_INSTALLED - Debug.LogError("Please install the package needed for Physics.Raycast(): 'Package Manager/Packages/Built-in/Physics' (com.unity.modules.physics)."); - #endif + Debug.LogError("Please install the package needed for Physics.Raycast(): 'Package Manager/Packages/Built-in/Physics' (com.unity.modules.physics)."); } + #endif void Update() { if (cameraProjectionMatrixAnimation.IsAnimating) { return; } - if (InputController.touchSupported && !InputController.Get()) { + if (Application.isMobilePlatform && InputController.touchSupported && !InputController.Get()) { SetCurrentHighlighted(null); return; } - var ray = mainCamera.ScreenPointToRay(InputController.screenPosition); + var screenPosition = InputController.screenPosition; + if (!new Rect(0f, 0f, Screen.width, Screen.height).Contains(screenPosition)) { + return; + } + var ray = mainCamera.ScreenPointToRay(screenPosition); var highlightableElement = RaycastHighlightableElement(ray); SetCurrentHighlighted(highlightableElement); @@ -59,7 +63,7 @@ namespace PrimeTweenDemo { static void AnimateHighlightedElement([NotNull] HighlightableElement highlightable, bool isHighlighted) { Tween.LocalPositionZ(highlightable.highlightAnchor, isHighlighted ? 0.08f : 0, 0.3f); foreach (var model in highlightable.models) { - Tween.MaterialColor(model.material, emissionColorPropId, isHighlighted ? Color.white * 0.25f : Color.black, 0.2f, Ease.OutQuad); + Tween.MaterialColor(model.sharedMaterial, emissionColorPropId, isHighlighted ? Color.white * 0.25f : Color.black, 0.2f, Ease.OutQuad); } } } diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/MeasureAllocations/MeasureMemoryAllocations.cs b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/MeasureAllocations/MeasureMemoryAllocations.cs index 238f067..0621714 100644 --- a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/MeasureAllocations/MeasureMemoryAllocations.cs +++ b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/MeasureAllocations/MeasureMemoryAllocations.cs @@ -26,11 +26,6 @@ namespace PrimeTweenDemo { readonly List filteredPaths = new List(); int lastProcessedFrame = -1; - void Awake() { - filterAllocations.Add("PrimeTween.Runtime"); - filterAllocations.Add("PrimeTweenDemo"); - } - void OnEnable() { ProfilerDriver.ClearAllFrames(); } diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Pro.meta b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Pro.meta new file mode 100644 index 0000000..465b5c6 --- /dev/null +++ b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Pro.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 515936d411314273be8baba85fc2068a +timeCreated: 1755085955 \ No newline at end of file diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Pro/OnClick.cs b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Pro/OnClick.cs new file mode 100644 index 0000000..cad2ac6 --- /dev/null +++ b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Pro/OnClick.cs @@ -0,0 +1,32 @@ +using UnityEngine; +using UnityEngine.Events; + +namespace PrimeTweenDemo { + // p0 todo replace with AnimateOnClick and serialize TweenAnimation instead? no, because I need to reference all animations from one place to animate them all + // p0 todo create Demo Pro. With which version of Unity? + public class OnClick : MonoBehaviour { + [SerializeField] public UnityEvent onClick = new UnityEvent(); + + void Update() { + if (InputController.GetDown()) { + Vector2 screenPos = InputController.screenPosition; + var ray = Camera.main.ScreenPointToRay(screenPos); + if (Physics.Raycast(ray, out var hit) && IsChild(hit.transform, transform)) { + // Debug.Log("onClick", this); + onClick.Invoke(); + } + } + } + + static bool IsChild(Transform t, Transform other) { + Transform parent = t.parent; + while (parent != null) { + if (parent == other) { + return true; + } + parent = parent.parent; + } + return false; + } + } +} diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Pro/OnClick.cs.meta b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Pro/OnClick.cs.meta new file mode 100644 index 0000000..336c322 --- /dev/null +++ b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Pro/OnClick.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 26e5afea6b0e469b8f640089915afdd2 +timeCreated: 1755085967 \ No newline at end of file diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Road.cs b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Road.cs index 2f88300..ea76c15 100644 --- a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Road.cs +++ b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/Road.cs @@ -9,7 +9,7 @@ namespace PrimeTweenDemo { float currentSpeed; void Awake() { - _ = roadModel.material; // copy shared material + roadModel.sharedMaterial = new Material(roadModel.sharedMaterial); // copy shared material } public override Sequence Animate(bool isAnimating) { @@ -22,7 +22,7 @@ namespace PrimeTweenDemo { } void Update() { - roadModel.material.mainTextureOffset += new Vector2(-1f, 1f) * currentSpeed * Time.deltaTime; + roadModel.sharedMaterial.mainTextureOffset += new Vector2(-1f, 1f) * currentSpeed * Time.deltaTime; } } } diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/SlidingDoor.cs b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/SlidingDoor.cs index abf1ab2..1438861 100644 --- a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/SlidingDoor.cs +++ b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/SlidingDoor.cs @@ -25,8 +25,8 @@ namespace PrimeTweenDemo { sequence.Stop(); } var tweenSettings = new TweenSettings(0.4f, Ease.OutBack, endDelay: 0.1f); - sequence = Tween.LocalPosition(animationAnchor, midPos, tweenSettings) - .Chain(Tween.LocalPosition(animationAnchor, _isClosed ? closedPos : openedPos, tweenSettings)); + sequence = Tween.LocalPosition(animationAnchor, new TweenSettings(midPos, tweenSettings)) + .Chain(Tween.LocalPosition(animationAnchor, new TweenSettings(_isClosed ? closedPos : openedPos, tweenSettings))); return sequence; } } diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/TestAnimation.cs b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/TestAnimation.cs deleted file mode 100644 index bda890d..0000000 --- a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/TestAnimation.cs +++ /dev/null @@ -1,17 +0,0 @@ -using PrimeTween; -using UnityEngine; - -namespace PrimeTweenDemo -{ - public class TestAnimation:MonoBehaviour - { - [SerializeField] Transform animationAnchor; - public bool _isClosed; - - public void Test() - { - var rotationTween = Tween.LocalRotation(animationAnchor, _isClosed ? new Vector3(0, -90) : Vector3.zero, 0.7f, Ease.InOutElastic); - var sequence = Sequence.Create(rotationTween); - } - } -} diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/TestAnimation.cs.meta b/Client/Assets/Plugins/PrimeTween/Demo/Scripts/TestAnimation.cs.meta deleted file mode 100644 index 3ca0bd9..0000000 --- a/Client/Assets/Plugins/PrimeTween/Demo/Scripts/TestAnimation.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 52c8fdb241904ec08d0206d641fd84cc -timeCreated: 1747275178 \ No newline at end of file diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials/Exterior.mat b/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials/Exterior.mat index 2bb97e4..cddd9ec 100644 --- a/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials/Exterior.mat +++ b/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials/Exterior.mat @@ -2,27 +2,20 @@ %TAG !u! tag:unity3d.com,2011: --- !u!21 &2100000 Material: - serializedVersion: 8 + serializedVersion: 6 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: Exterior m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_Parent: {fileID: 0} - m_ModifiedSerializedProperties: 0 - m_ValidKeywords: - - _EMISSION - - _GLOSSYREFLECTIONS_OFF - - _SPECULARHIGHLIGHTS_OFF - m_InvalidKeywords: [] + m_ShaderKeywords: _EMISSION m_LightmapFlags: 1 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 stringTagMap: {} disabledShaderPasses: [] - m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -62,7 +55,6 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - m_Ints: [] m_Floats: - _BumpScale: 1 - _Cutoff: 0.5 @@ -83,5 +75,3 @@ Material: m_Colors: - _Color: {r: 1, g: 1, b: 1, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - m_BuildTextureStacks: [] - m_AllowLocking: 1 diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials/Wheel.mat b/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials/Wheel.mat index 7470e5c..e13dc9c 100644 --- a/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials/Wheel.mat +++ b/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials/Wheel.mat @@ -2,27 +2,20 @@ %TAG !u! tag:unity3d.com,2011: --- !u!21 &2100000 Material: - serializedVersion: 8 + serializedVersion: 6 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: Wheel m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_Parent: {fileID: 0} - m_ModifiedSerializedProperties: 0 - m_ValidKeywords: - - _EMISSION - - _GLOSSYREFLECTIONS_OFF - - _SPECULARHIGHLIGHTS_OFF - m_InvalidKeywords: [] + m_ShaderKeywords: _EMISSION m_LightmapFlags: 1 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 stringTagMap: {} disabledShaderPasses: [] - m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -62,7 +55,6 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - m_Ints: [] m_Floats: - _BumpScale: 1 - _Cutoff: 0.5 @@ -83,5 +75,3 @@ Material: m_Colors: - _Color: {r: 1, g: 1, b: 1, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - m_BuildTextureStacks: [] - m_AllowLocking: 1 diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials/interior.mat b/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials/interior.mat index a3d3ea0..ac8d3da 100644 --- a/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials/interior.mat +++ b/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials/interior.mat @@ -2,27 +2,20 @@ %TAG !u! tag:unity3d.com,2011: --- !u!21 &2100000 Material: - serializedVersion: 8 + serializedVersion: 6 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: interior m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_Parent: {fileID: 0} - m_ModifiedSerializedProperties: 0 - m_ValidKeywords: - - _EMISSION - - _GLOSSYREFLECTIONS_OFF - - _SPECULARHIGHLIGHTS_OFF - m_InvalidKeywords: [] + m_ShaderKeywords: _EMISSION m_LightmapFlags: 1 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 stringTagMap: {} disabledShaderPasses: [] - m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -62,7 +55,6 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - m_Ints: [] m_Floats: - _BumpScale: 1 - _Cutoff: 0.5 @@ -83,5 +75,3 @@ Material: m_Colors: - _Color: {r: 1, g: 1, b: 1, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - m_BuildTextureStacks: [] - m_AllowLocking: 1 diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials_URP/Exterior.mat b/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials_URP/Exterior.mat index 6225d7b..f03c26c 100644 --- a/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials_URP/Exterior.mat +++ b/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials_URP/Exterior.mat @@ -23,8 +23,7 @@ Material: m_CustomRenderQueue: -1 stringTagMap: RenderType: Opaque - disabledShaderPasses: - - MOTIONVECTORS + disabledShaderPasses: [] m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -125,7 +124,6 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] - m_AllowLocking: 1 --- !u!114 &7263079360766289332 MonoBehaviour: m_ObjectHideFlags: 11 @@ -138,4 +136,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 7 diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials_URP/Wheel.mat b/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials_URP/Wheel.mat index 2421297..81d9b39 100644 --- a/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials_URP/Wheel.mat +++ b/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials_URP/Wheel.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 7 --- !u!21 &2100000 Material: serializedVersion: 8 @@ -36,8 +36,7 @@ Material: m_CustomRenderQueue: -1 stringTagMap: RenderType: Opaque - disabledShaderPasses: - - MOTIONVECTORS + disabledShaderPasses: [] m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -138,4 +137,3 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] - m_AllowLocking: 1 diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials_URP/Window.mat b/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials_URP/Window.mat index 5524b41..9bc11c5 100644 --- a/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials_URP/Window.mat +++ b/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials_URP/Window.mat @@ -25,7 +25,6 @@ Material: disabledShaderPasses: - DepthOnly - SHADOWCASTER - - MOTIONVECTORS m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -126,7 +125,6 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] - m_AllowLocking: 1 --- !u!114 &3728866138871552857 MonoBehaviour: m_ObjectHideFlags: 11 @@ -139,4 +137,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 7 diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials_URP/interior.mat b/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials_URP/interior.mat index 86f116d..f16ac94 100644 --- a/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials_URP/interior.mat +++ b/Client/Assets/Plugins/PrimeTween/Demo/Stylized Cartoon Van by Fero Andezo/Materials_URP/interior.mat @@ -23,8 +23,7 @@ Material: m_CustomRenderQueue: -1 stringTagMap: RenderType: Opaque - disabledShaderPasses: - - MOTIONVECTORS + disabledShaderPasses: [] m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -125,7 +124,6 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] - m_AllowLocking: 1 --- !u!114 &6538925729129028096 MonoBehaviour: m_ObjectHideFlags: 11 @@ -138,4 +136,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 7 diff --git a/Client/Assets/Plugins/PrimeTween/Demo/Stylized Sand by Joao Paulo/Stylized_Sand_001_basecolor_URP.mat b/Client/Assets/Plugins/PrimeTween/Demo/Stylized Sand by Joao Paulo/Stylized_Sand_001_basecolor_URP.mat index eed5bb2..ca62cad 100644 --- a/Client/Assets/Plugins/PrimeTween/Demo/Stylized Sand by Joao Paulo/Stylized_Sand_001_basecolor_URP.mat +++ b/Client/Assets/Plugins/PrimeTween/Demo/Stylized Sand by Joao Paulo/Stylized_Sand_001_basecolor_URP.mat @@ -23,8 +23,7 @@ Material: m_CustomRenderQueue: -1 stringTagMap: RenderType: Opaque - disabledShaderPasses: - - MOTIONVECTORS + disabledShaderPasses: [] m_LockedProperties: m_SavedProperties: serializedVersion: 3 @@ -125,7 +124,6 @@ Material: - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] - m_AllowLocking: 1 --- !u!114 &8482762829682952528 MonoBehaviour: m_ObjectHideFlags: 11 @@ -138,4 +136,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 9 + version: 7 diff --git a/Client/Assets/Plugins/PrimeTween/internal/PrimeTweenInstaller.cs b/Client/Assets/Plugins/PrimeTween/internal/PrimeTweenInstaller.cs index 79df9d1..1e829eb 100644 --- a/Client/Assets/Plugins/PrimeTween/internal/PrimeTweenInstaller.cs +++ b/Client/Assets/Plugins/PrimeTween/internal/PrimeTweenInstaller.cs @@ -208,7 +208,7 @@ DefaultImporter: }; } - internal const string version = "1.3.1"; + internal const string version = "1.3.7"; } internal static class FixedUpdateParameterMigration { diff --git a/Client/Assets/Plugins/PrimeTween/internal/com.kyrylokuzyk.primetween.tgz b/Client/Assets/Plugins/PrimeTween/internal/com.kyrylokuzyk.primetween.tgz index 2eb13d5..202a967 100644 Binary files a/Client/Assets/Plugins/PrimeTween/internal/com.kyrylokuzyk.primetween.tgz and b/Client/Assets/Plugins/PrimeTween/internal/com.kyrylokuzyk.primetween.tgz differ diff --git a/Client/Assets/Scenes/Main.unity b/Client/Assets/Scenes/Main.unity index b86196c..0d41737 100644 --- a/Client/Assets/Scenes/Main.unity +++ b/Client/Assets/Scenes/Main.unity @@ -214,6 +214,10 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 1599215827984154130, guid: 8e4808bf30e54a8439a661bfa35ee982, type: 3} + propertyPath: _language + value: ChineseSimplified + objectReference: {fileID: 0} - target: {fileID: 5472542677182214335, guid: 8e4808bf30e54a8439a661bfa35ee982, type: 3} propertyPath: m_Name value: Entry diff --git a/Client/Assets/Test/GameLogic.dll.bytes b/Client/Assets/Test/GameLogic.dll.bytes index 0696f30..c640215 100644 Binary files a/Client/Assets/Test/GameLogic.dll.bytes and b/Client/Assets/Test/GameLogic.dll.bytes differ diff --git a/Client/Assets/Test/GameLogic.pdb.bytes b/Client/Assets/Test/GameLogic.pdb.bytes index 232aea7..0aa63f4 100644 Binary files a/Client/Assets/Test/GameLogic.pdb.bytes and b/Client/Assets/Test/GameLogic.pdb.bytes differ diff --git a/Client/Assets/input_bindings.json b/Client/Assets/input_bindings.json index 30b1438..28c0613 100644 --- a/Client/Assets/input_bindings.json +++ b/Client/Assets/input_bindings.json @@ -1 +1,11 @@ -{"bindings":[{"action":"input.map.player/input.action.movement","id":"15d59094-85d1-408d-b565-724532c15263","path":"/upArrow","interactions":"null","processors":"null"}]} \ No newline at end of file +{ + "bindings": [ + { + "action": "input.map.player/input.action.movement", + "id": "15d59094-85d1-408d-b565-724532c15263", + "path": "/upArrow", + "interactions": "null", + "processors": "null" + } + ] +} diff --git a/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage.version b/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage.version deleted file mode 100644 index de541bb..0000000 --- a/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage.version +++ /dev/null @@ -1 +0,0 @@ -Simulate \ No newline at end of file diff --git a/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.bytes b/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.bytes deleted file mode 100644 index db13999..0000000 Binary files a/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.bytes and /dev/null differ diff --git a/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.hash b/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.hash deleted file mode 100644 index 184f266..0000000 --- a/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.hash +++ /dev/null @@ -1 +0,0 @@ -81bfd4e0 \ No newline at end of file diff --git a/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.json b/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.json deleted file mode 100644 index 3b84518..0000000 --- a/Client/Bundles/StandaloneWindows/DefaultPackage/Simulate/DefaultPackage_Simulate.json +++ /dev/null @@ -1,1686 +0,0 @@ -{ - "FileVersion": "2025.9.30", - "EnableAddressable": true, - "SupportExtensionless": true, - "LocationToLower": false, - "IncludeAssetGUID": false, - "ReplaceAssetPathWithAddress": false, - "OutputNameStyle": 0, - "BuildBundleType": 1, - "BuildPipeline": "EditorSimulateBuildPipeline", - "PackageName": "DefaultPackage", - "PackageVersion": "Simulate", - "PackageNote": "2025/11/18 16:08:53", - "AssetList": [ - { - "Address": "A1", - "AssetPath": "Assets/Bundles/Audios/AudioClip/A1.ogg", - "AssetGUID": "", - "AssetTags": [ - "Audios" - ], - "BundleID": 0, - "DependBundleIDs": [] - }, - { - "Address": "A2", - "AssetPath": "Assets/Bundles/Audios/AudioClip/A2.ogg", - "AssetGUID": "", - "AssetTags": [ - "Audios" - ], - "BundleID": 0, - "DependBundleIDs": [] - }, - { - "Address": "A3", - "AssetPath": "Assets/Bundles/Audios/AudioClip/A3.ogg", - "AssetGUID": "", - "AssetTags": [ - "Audios" - ], - "BundleID": 0, - "DependBundleIDs": [] - }, - { - "Address": "A4", - "AssetPath": "Assets/Bundles/Audios/AudioClip/A4.ogg", - "AssetGUID": "", - "AssetTags": [ - "Audios" - ], - "BundleID": 0, - "DependBundleIDs": [] - }, - { - "Address": "AirDash_01", - "AssetPath": "Assets/Bundles/Audios/AudioClip/AirDash_01.ogg", - "AssetGUID": "", - "AssetTags": [ - "Audios" - ], - "BundleID": 0, - "DependBundleIDs": [] - }, - { - "Address": "tables_tbachievement", - "AssetPath": "Assets/Bundles/Configs/bytes/tables_tbachievement.bytes", - "AssetGUID": "", - "AssetTags": [ - "WEBGL_PRELOAD", - "Configs" - ], - "BundleID": 2, - "DependBundleIDs": [] - }, - { - "Address": "LocalizationTable", - "AssetPath": "Assets/Bundles/Configs/LocalizationTable.asset", - "AssetGUID": "", - "AssetTags": [ - "WEBGL_PRELOAD", - "Configs" - ], - "BundleID": 1, - "DependBundleIDs": [] - }, - { - "Address": "AlicizaX.Framework.Runtime.dll", - "AssetPath": "Assets/Bundles/DLL/AlicizaX.Framework.Runtime.dll.bytes", - "AssetGUID": "", - "AssetTags": [ - "DLL" - ], - "BundleID": 3, - "DependBundleIDs": [] - }, - { - "Address": "GameBase.dll", - "AssetPath": "Assets/Bundles/DLL/GameBase.dll.bytes", - "AssetGUID": "", - "AssetTags": [ - "DLL" - ], - "BundleID": 3, - "DependBundleIDs": [] - }, - { - "Address": "GameLib.dll", - "AssetPath": "Assets/Bundles/DLL/GameLib.dll.bytes", - "AssetGUID": "", - "AssetTags": [ - "DLL" - ], - "BundleID": 3, - "DependBundleIDs": [] - }, - { - "Address": "GameLogic.dll", - "AssetPath": "Assets/Bundles/DLL/GameLogic.dll.bytes", - "AssetGUID": "", - "AssetTags": [ - "DLL" - ], - "BundleID": 3, - "DependBundleIDs": [] - }, - { - "Address": "GameProto.dll", - "AssetPath": "Assets/Bundles/DLL/GameProto.dll.bytes", - "AssetGUID": "", - "AssetTags": [ - "DLL" - ], - "BundleID": 3, - "DependBundleIDs": [] - }, - { - "Address": "mscorlib.dll", - "AssetPath": "Assets/Bundles/DLL/mscorlib.dll.bytes", - "AssetGUID": "", - "AssetTags": [ - "DLL" - ], - "BundleID": 3, - "DependBundleIDs": [] - }, - { - "Address": "System.Core.dll", - "AssetPath": "Assets/Bundles/DLL/System.Core.dll.bytes", - "AssetGUID": "", - "AssetTags": [ - "DLL" - ], - "BundleID": 3, - "DependBundleIDs": [] - }, - { - "Address": "UniTask.Runtime.dll", - "AssetPath": "Assets/Bundles/DLL/UniTask.Runtime.dll.bytes", - "AssetGUID": "", - "AssetTags": [ - "DLL" - ], - "BundleID": 3, - "DependBundleIDs": [] - }, - { - "Address": "Unity.InputSystem.dll", - "AssetPath": "Assets/Bundles/DLL/Unity.InputSystem.dll.bytes", - "AssetGUID": "", - "AssetTags": [ - "DLL" - ], - "BundleID": 3, - "DependBundleIDs": [] - }, - { - "Address": "Map1000", - "AssetPath": "Assets/Bundles/Scenes/Map1000.unity", - "AssetGUID": "", - "AssetTags": [ - "Scenes" - ], - "BundleID": 4, - "DependBundleIDs": [] - }, - { - "Address": "MyShaderVariants", - "AssetPath": "Assets/Bundles/ShaderVariants/MyShaderVariants.shadervariants", - "AssetGUID": "", - "AssetTags": [ - "ShaderVariants" - ], - "BundleID": 11, - "DependBundleIDs": [] - }, - { - "Address": "UICardWidget", - "AssetPath": "Assets/Bundles/UI/UICardWidget.prefab", - "AssetGUID": "", - "AssetTags": [ - "UI" - ], - "BundleID": 5, - "DependBundleIDs": [] - }, - { - "Address": "UILoadUpdateWindow", - "AssetPath": "Assets/Bundles/UI/UILoadUpdateWindow.prefab", - "AssetGUID": "", - "AssetTags": [ - "UI" - ], - "BundleID": 6, - "DependBundleIDs": [] - }, - { - "Address": "add_hover", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/bg/add_hover.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 7, - "DependBundleIDs": [] - }, - { - "Address": "BottomLine", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/bg/BottomLine.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 7, - "DependBundleIDs": [] - }, - { - "Address": "BottomLine3D", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/bg/BottomLine3D.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 7, - "DependBundleIDs": [] - }, - { - "Address": "cloud01", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/bg/cloud01.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 7, - "DependBundleIDs": [] - }, - { - "Address": "cloud02", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/bg/cloud02.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 7, - "DependBundleIDs": [] - }, - { - "Address": "cloud03", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/bg/cloud03.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 7, - "DependBundleIDs": [] - }, - { - "Address": "TopLine3D", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/bg/TopLine3D.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 7, - "DependBundleIDs": [] - }, - { - "Address": "TopLineBack", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/bg/TopLineBack.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 7, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_GreatSword", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_GreatSword.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_GreatSword_RGBA", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_GreatSword_RGBA.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_01", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_01.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_02", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_02.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_03", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_03.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_04", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_04.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_05", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_05.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_06", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_06.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_A", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_A.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_Alt", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_Alt.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_Ctrl_Hold", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_Ctrl_Hold.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_D", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_D.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_E", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_E.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_Enter", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_Enter.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_ESC", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_ESC.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_ESC_Hold", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_ESC_Hold.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_F", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_F.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_F1", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_F1.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_G", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_G.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_LB_btn_Normal", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_LB_btn_Normal.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_Move_A", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_Move_A.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_Move_A_Hold", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_Move_A_Hold.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_Move_D", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_Move_D.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_Move_D_Hold", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_Move_D_Hold.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_Move_S", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_Move_S.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_Move_S_Hold", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_Move_S_Hold.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_Move_W", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_Move_W.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_Move_W_Hold", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_Move_W_Hold.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_Move_WASD", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_Move_WASD.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_Move_WASD_Hold", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_Move_WASD_Hold.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_Q", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_Q.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_R", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_R.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_RB_btn_Normal", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_RB_btn_Normal.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_S", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_S.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_Shift", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_Shift.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_Space", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_Space.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_Tab", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_Tab.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_Text", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_Text.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_U", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_U.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_V", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_V.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Keyboard_W", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Keyboard_W.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Mouse_L", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Mouse_L.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Mouse_L_Hold", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Mouse_L_Hold.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Mouse_LR_Hold", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Mouse_LR_Hold.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Mouse_Nokey", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Mouse_Nokey.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Mouse_R", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Mouse_R.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Mouse_R_Hold", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Mouse_R_Hold.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Mouse_Stop", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Mouse_Stop.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_MouseSmall_Wheel", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_MouseSmall_Wheel.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_MouseWheel_UpDown", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_MouseWheel_UpDown.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_MouseSmall_L", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Nonuse/GuideIcon_MouseSmall_L.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 9, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_MouseSmall_R", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Nonuse/GuideIcon_MouseSmall_R.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 9, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_Small_L", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Nonuse/GuideIcon_Xbox_Small_L.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 9, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_XboxSmall_A", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Nonuse/GuideIcon_XboxSmall_A.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 9, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Skill_Xbox_Left", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Skill_Xbox_Left.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_A", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_A.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_AClick", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_AClick.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_B", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_B.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_Back", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_Back.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_Dpad_All", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_Dpad_All.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_Dpad_Down", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_Dpad_Down.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_Dpad_Right", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_Dpad_Right.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_Dpad_Right_Left", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_Dpad_Right_Left.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_Dpad_Up", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_Dpad_Up.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_Dpad_Up_Down", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_Dpad_Up_Down.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_Hold", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_Hold.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_L", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_L.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_L_Click", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_L_Click.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_L_Down", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_L_Down.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_L_Down_Hold", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_L_Down_Hold.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_L_Left", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_L_Left.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_L_Left_Hold", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_L_Left_Hold.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_L_Right", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_L_Right.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_L_Right_Hold", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_L_Right_Hold.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_L_Up", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_L_Up.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_L_Up_Hold", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_L_Up_Hold.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_LB", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_LB.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_LeftStick_Hold", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_LeftStick_Hold.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_LT", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_LT.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_MENU", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_MENU.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_R", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_R.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_R_Click", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_R_Click.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_RB", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_RB.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_RB_Hold", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_RB_Hold.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_RB_RT_Hold", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_RB_RT_Hold.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_RB_RT_Stop", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_RB_RT_Stop.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_RT", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_RT.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_RT_Hold", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_RT_Hold.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_X", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_X.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "GuideIcon_Xbox_Y", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/GuideIcon/GuideIcon_Xbox_Y.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 8, - "DependBundleIDs": [] - }, - { - "Address": "add_normal", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/add_normal.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "btn_hover", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/btn_hover.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "btn_normal", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/btn_normal.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "btn_press", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/btn_press.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "btnLast", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/btnLast.PNG", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "btnNext", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/btnNext.PNG", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "cancel_40px", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/cancel_40px.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "cancel_hover", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/cancel_hover.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "cancel_normal", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/cancel_normal.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "catb_disable", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/catb_disable.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "catb_hover", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/catb_hover.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "check_hover", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/check_hover.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "check_normal", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/check_normal.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "defaul_normal", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/defaul_normal.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "default", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/default.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "default_hover", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/default_hover.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "default_press", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/default_press.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "hp_icon", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/hp_icon.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "item_hover", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/item_hover.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "item_normal", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/item_normal.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "item_press", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/item_press.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "list_disable", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/list_disable.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "list_hover", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/list_hover.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "list_normal", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/list_normal.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "list_press", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/list_press.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "list_select", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/list_select.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "ok_hover", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/ok_hover.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "ok_normal", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/ok_normal.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "panel_about", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/panel_about.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "panel_appearance", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/panel_appearance.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "panel_general", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/panel_general.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "panel_performance", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/panel_performance.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "panel_plugin", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/panel_plugin.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - }, - { - "Address": "panel_sound", - "AssetPath": "Assets/Bundles/UIRaw/Atlas/icon/panel_sound.png", - "AssetGUID": "", - "AssetTags": [ - "UIRaw" - ], - "BundleID": 10, - "DependBundleIDs": [] - } - ], - "BundleList": [ - { - "BundleName": "assets_bundles_audios_audioclip.bundle", - "UnityCRC": 0, - "FileHash": "09f560261f6874b6843182b4782f6d5e", - "FileCRC": 0, - "FileSize": 268950, - "Encrypted": false, - "Tags": [ - "Audios" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "assets_bundles_configs.bundle", - "UnityCRC": 0, - "FileHash": "da9fc5dda26736fb80cbda4c72d87b82", - "FileCRC": 0, - "FileSize": 4749, - "Encrypted": false, - "Tags": [ - "WEBGL_PRELOAD", - "Configs" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "assets_bundles_configs_bytes.bundle", - "UnityCRC": 0, - "FileHash": "213948d92addb839c79a02a5c756408c", - "FileCRC": 0, - "FileSize": 281, - "Encrypted": false, - "Tags": [ - "WEBGL_PRELOAD", - "Configs" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "assets_bundles_dll.bundle", - "UnityCRC": 0, - "FileHash": "d54634bab862367eddd45455893f6a44", - "FileCRC": 0, - "FileSize": 4342272, - "Encrypted": false, - "Tags": [ - "DLL" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "assets_bundles_scenes_map1000.bundle", - "UnityCRC": 0, - "FileHash": "f9e9af0a1482d58280d517bbf6fd3908", - "FileCRC": 0, - "FileSize": 11828, - "Encrypted": false, - "Tags": [ - "Scenes" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "assets_bundles_ui_uicardwidget.bundle", - "UnityCRC": 0, - "FileHash": "8382993c3598a4a2e8d429b0d7a6f9f1", - "FileCRC": 0, - "FileSize": 9704, - "Encrypted": false, - "Tags": [ - "UI" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "assets_bundles_ui_uiloadupdatewindow.bundle", - "UnityCRC": 0, - "FileHash": "e0807c700d7f154aa3711c1bf07383d6", - "FileCRC": 0, - "FileSize": 34611, - "Encrypted": false, - "Tags": [ - "UI" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "assets_bundles_uiraw_atlas_bg.bundle", - "UnityCRC": 0, - "FileHash": "c824533757904cd2aea7ed3154adbc9c", - "FileCRC": 0, - "FileSize": 551955, - "Encrypted": false, - "Tags": [ - "UIRaw" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "assets_bundles_uiraw_atlas_guideicon.bundle", - "UnityCRC": 0, - "FileHash": "57dc380c1fc46aec5f55e4d5d9dacf04", - "FileCRC": 0, - "FileSize": 95314, - "Encrypted": false, - "Tags": [ - "UIRaw" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "assets_bundles_uiraw_atlas_guideicon_guideicon_nonuse.bundle", - "UnityCRC": 0, - "FileHash": "5ca745843fab507da8994effdefd51b6", - "FileCRC": 0, - "FileSize": 2686, - "Encrypted": false, - "Tags": [ - "UIRaw" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "assets_bundles_uiraw_atlas_icon.bundle", - "UnityCRC": 0, - "FileHash": "1637fa01c3050af5c246ebc653bb8b9d", - "FileCRC": 0, - "FileSize": 203831, - "Encrypted": false, - "Tags": [ - "UIRaw" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "unityshaders.bundle", - "UnityCRC": 0, - "FileHash": "7d7d1d6498d2ea70864c60b8a4553d8a", - "FileCRC": 0, - "FileSize": 3405, - "Encrypted": false, - "Tags": [ - "ShaderVariants" - ], - "DependBundleIDs": [] - } - ] -} \ No newline at end of file diff --git a/Client/Bundles/StandaloneWindows64/DefaultPackage/Simulate/DefaultPackage.version b/Client/Bundles/StandaloneWindows64/DefaultPackage/Simulate/DefaultPackage.version deleted file mode 100644 index de541bb..0000000 --- a/Client/Bundles/StandaloneWindows64/DefaultPackage/Simulate/DefaultPackage.version +++ /dev/null @@ -1 +0,0 @@ -Simulate \ No newline at end of file diff --git a/Client/Bundles/StandaloneWindows64/DefaultPackage/Simulate/DefaultPackage_Simulate.bytes b/Client/Bundles/StandaloneWindows64/DefaultPackage/Simulate/DefaultPackage_Simulate.bytes deleted file mode 100644 index 5589258..0000000 Binary files a/Client/Bundles/StandaloneWindows64/DefaultPackage/Simulate/DefaultPackage_Simulate.bytes and /dev/null differ diff --git a/Client/Bundles/StandaloneWindows64/DefaultPackage/Simulate/DefaultPackage_Simulate.hash b/Client/Bundles/StandaloneWindows64/DefaultPackage/Simulate/DefaultPackage_Simulate.hash deleted file mode 100644 index db4909e..0000000 --- a/Client/Bundles/StandaloneWindows64/DefaultPackage/Simulate/DefaultPackage_Simulate.hash +++ /dev/null @@ -1 +0,0 @@ -a9923b1a \ No newline at end of file diff --git a/Client/Bundles/StandaloneWindows64/DefaultPackage/Simulate/DefaultPackage_Simulate.json b/Client/Bundles/StandaloneWindows64/DefaultPackage/Simulate/DefaultPackage_Simulate.json deleted file mode 100644 index 10565d3..0000000 --- a/Client/Bundles/StandaloneWindows64/DefaultPackage/Simulate/DefaultPackage_Simulate.json +++ /dev/null @@ -1,332 +0,0 @@ -{ - "FileVersion": "2025.9.30", - "EnableAddressable": true, - "SupportExtensionless": true, - "LocationToLower": false, - "IncludeAssetGUID": false, - "ReplaceAssetPathWithAddress": false, - "OutputNameStyle": 0, - "BuildBundleType": 1, - "BuildPipeline": "EditorSimulateBuildPipeline", - "PackageName": "DefaultPackage", - "PackageVersion": "Simulate", - "PackageNote": "2025/12/25 13:43:46", - "AssetList": [ - { - "Address": "Click", - "AssetPath": "Assets/Bundles/Audios/UI/Click.wav", - "AssetGUID": "", - "AssetTags": [ - "Audios" - ], - "BundleID": 0, - "DependBundleIDs": [] - }, - { - "Address": "Hover", - "AssetPath": "Assets/Bundles/Audios/UI/Hover.wav", - "AssetGUID": "", - "AssetTags": [ - "Audios" - ], - "BundleID": 0, - "DependBundleIDs": [] - }, - { - "Address": "tables_tbachievement", - "AssetPath": "Assets/Bundles/Configs/bytes/tables_tbachievement.bytes", - "AssetGUID": "", - "AssetTags": [ - "WEBGL_PRELOAD", - "Configs" - ], - "BundleID": 2, - "DependBundleIDs": [] - }, - { - "Address": "LocalizationTable", - "AssetPath": "Assets/Bundles/Configs/LocalizationTable.asset", - "AssetGUID": "", - "AssetTags": [ - "WEBGL_PRELOAD", - "Configs" - ], - "BundleID": 1, - "DependBundleIDs": [] - }, - { - "Address": "AlicizaX.Framework.Runtime.dll", - "AssetPath": "Assets/Bundles/DLL/AlicizaX.Framework.Runtime.dll.bytes", - "AssetGUID": "", - "AssetTags": [ - "DLL" - ], - "BundleID": 3, - "DependBundleIDs": [] - }, - { - "Address": "GameBase.dll", - "AssetPath": "Assets/Bundles/DLL/GameBase.dll.bytes", - "AssetGUID": "", - "AssetTags": [ - "DLL" - ], - "BundleID": 3, - "DependBundleIDs": [] - }, - { - "Address": "GameLib.dll", - "AssetPath": "Assets/Bundles/DLL/GameLib.dll.bytes", - "AssetGUID": "", - "AssetTags": [ - "DLL" - ], - "BundleID": 3, - "DependBundleIDs": [] - }, - { - "Address": "GameLogic.dll", - "AssetPath": "Assets/Bundles/DLL/GameLogic.dll.bytes", - "AssetGUID": "", - "AssetTags": [ - "DLL" - ], - "BundleID": 3, - "DependBundleIDs": [] - }, - { - "Address": "GameProto.dll", - "AssetPath": "Assets/Bundles/DLL/GameProto.dll.bytes", - "AssetGUID": "", - "AssetTags": [ - "DLL" - ], - "BundleID": 3, - "DependBundleIDs": [] - }, - { - "Address": "mscorlib.dll", - "AssetPath": "Assets/Bundles/DLL/mscorlib.dll.bytes", - "AssetGUID": "", - "AssetTags": [ - "DLL" - ], - "BundleID": 3, - "DependBundleIDs": [] - }, - { - "Address": "System.Core.dll", - "AssetPath": "Assets/Bundles/DLL/System.Core.dll.bytes", - "AssetGUID": "", - "AssetTags": [ - "DLL" - ], - "BundleID": 3, - "DependBundleIDs": [] - }, - { - "Address": "UniTask.Runtime.dll", - "AssetPath": "Assets/Bundles/DLL/UniTask.Runtime.dll.bytes", - "AssetGUID": "", - "AssetTags": [ - "DLL" - ], - "BundleID": 3, - "DependBundleIDs": [] - }, - { - "Address": "Unity.InputSystem.dll", - "AssetPath": "Assets/Bundles/DLL/Unity.InputSystem.dll.bytes", - "AssetGUID": "", - "AssetTags": [ - "DLL" - ], - "BundleID": 3, - "DependBundleIDs": [] - }, - { - "Address": "Map1000", - "AssetPath": "Assets/Bundles/Scenes/Map1000.unity", - "AssetGUID": "", - "AssetTags": [ - "Scenes" - ], - "BundleID": 4, - "DependBundleIDs": [] - }, - { - "Address": "MyShaderVariants", - "AssetPath": "Assets/Bundles/ShaderVariants/MyShaderVariants.shadervariants", - "AssetGUID": "", - "AssetTags": [ - "ShaderVariants" - ], - "BundleID": 9, - "DependBundleIDs": [] - }, - { - "Address": "Hotkey Component", - "AssetPath": "Assets/Bundles/UI/Component/Hotkey Component.prefab", - "AssetGUID": "", - "AssetTags": [ - "UI" - ], - "BundleID": 5, - "DependBundleIDs": [] - }, - { - "Address": "dsadsa", - "AssetPath": "Assets/Bundles/UI/Window/dsadsa.prefab", - "AssetGUID": "", - "AssetTags": [ - "UI" - ], - "BundleID": 6, - "DependBundleIDs": [] - }, - { - "Address": "UICardWidget", - "AssetPath": "Assets/Bundles/UI/Window/UICardWidget.prefab", - "AssetGUID": "", - "AssetTags": [ - "UI" - ], - "BundleID": 7, - "DependBundleIDs": [] - }, - { - "Address": "UILoadUpdateWindow", - "AssetPath": "Assets/Bundles/UI/Window/UILoadUpdateWindow.prefab", - "AssetGUID": "", - "AssetTags": [ - "UI" - ], - "BundleID": 8, - "DependBundleIDs": [] - } - ], - "BundleList": [ - { - "BundleName": "assets_bundles_audios_ui.bundle", - "UnityCRC": 0, - "FileHash": "77cdb65b7cfb324f9e511e95ee2e394f", - "FileCRC": 0, - "FileSize": 35951, - "Encrypted": false, - "Tags": [ - "Audios" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "assets_bundles_configs.bundle", - "UnityCRC": 0, - "FileHash": "3a378d308429cd99b280d880a27af478", - "FileCRC": 0, - "FileSize": 5280, - "Encrypted": false, - "Tags": [ - "WEBGL_PRELOAD", - "Configs" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "assets_bundles_configs_bytes.bundle", - "UnityCRC": 0, - "FileHash": "589b0dd91da2eee9c4e3146135170d34", - "FileCRC": 0, - "FileSize": 281, - "Encrypted": false, - "Tags": [ - "WEBGL_PRELOAD", - "Configs" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "assets_bundles_dll.bundle", - "UnityCRC": 0, - "FileHash": "ba45bd2617fcfa1e64a95d7741dc8012", - "FileCRC": 0, - "FileSize": 4342272, - "Encrypted": false, - "Tags": [ - "DLL" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "assets_bundles_scenes_map1000.bundle", - "UnityCRC": 0, - "FileHash": "4530edb970dd229fed5dd3259fee4ece", - "FileCRC": 0, - "FileSize": 12277, - "Encrypted": false, - "Tags": [ - "Scenes" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "assets_bundles_ui_component_hotkey_component.bundle", - "UnityCRC": 0, - "FileHash": "bc3db7c732b0a641c72c594787b6027a", - "FileCRC": 0, - "FileSize": 24744, - "Encrypted": false, - "Tags": [ - "UI" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "assets_bundles_ui_window_dsadsa.bundle", - "UnityCRC": 0, - "FileHash": "b63a46898c5fc9d7c7ddf1c887ca0642", - "FileCRC": 0, - "FileSize": 3325, - "Encrypted": false, - "Tags": [ - "UI" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "assets_bundles_ui_window_uicardwidget.bundle", - "UnityCRC": 0, - "FileHash": "abe9622ac433e5d039830d047bb7d28f", - "FileCRC": 0, - "FileSize": 6852, - "Encrypted": false, - "Tags": [ - "UI" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "assets_bundles_ui_window_uiloadupdatewindow.bundle", - "UnityCRC": 0, - "FileHash": "82253a65841b8f1db612149ec8c9a317", - "FileCRC": 0, - "FileSize": 54180, - "Encrypted": false, - "Tags": [ - "UI" - ], - "DependBundleIDs": [] - }, - { - "BundleName": "unityshaders.bundle", - "UnityCRC": 0, - "FileHash": "c9f21eee9f3febcafa65a26802cf31f0", - "FileCRC": 0, - "FileSize": 3518, - "Encrypted": false, - "Tags": [ - "ShaderVariants" - ], - "DependBundleIDs": [] - } - ] -} \ No newline at end of file diff --git a/Client/Packages/com.alicizax.unity.framework b/Client/Packages/com.alicizax.unity.framework index 80d3a48..0a5ef91 160000 --- a/Client/Packages/com.alicizax.unity.framework +++ b/Client/Packages/com.alicizax.unity.framework @@ -1 +1 @@ -Subproject commit 80d3a482b77520f2018673cc24c9b4e0bcfb0056 +Subproject commit 0a5ef9135ccb240227cf655e2251a63bf2d5da7a diff --git a/Client/Packages/com.alicizax.unity.ui.extension b/Client/Packages/com.alicizax.unity.ui.extension index ca46f80..f92e919 160000 --- a/Client/Packages/com.alicizax.unity.ui.extension +++ b/Client/Packages/com.alicizax.unity.ui.extension @@ -1 +1 @@ -Subproject commit ca46f80d674efe7410e3988512eeb97e3d40b9ff +Subproject commit f92e91920dc4c31b41e36e3fa40058d4e6aace34 diff --git a/Client/Packages/com.alicizax.uxtool/Editor.meta b/Client/Packages/com.alicizax.uxtool/Editor.meta deleted file mode 100644 index ed329ce..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: bd291d07a2484ac49af2ac1ced61963f -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/AlicizaUXTool.Editor.asmdef b/Client/Packages/com.alicizax.uxtool/Editor/AlicizaUXTool.Editor.asmdef deleted file mode 100644 index 7a36ae4..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/AlicizaUXTool.Editor.asmdef +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "AlicizaUXTool.Editor", - "rootNamespace": "", - "references": [ - "GUID:760f1778adc613f49a4394fb41ff0bbc", - "GUID:5d6fc8d2af5717244b925e7db309edd1", - "GUID:fb064c8bf96bac94e90d2f39090daa94", - "GUID:1619e00706139ce488ff80c0daeea8e7", - "GUID:4d1926c9df5b052469a1c63448b7609a", - "GUID:99a2a63c2a1143c4ba448165a98a5108", - "GUID:8d62da4aabd2a19419c7378d23ea5849", - "GUID:313320016f75fd24e9885858267ed35c", - "GUID:189d55e03d78888459720d730f4d2424" - ], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": true, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [], - "versionDefines": [], - "noEngineReferences": false -} \ No newline at end of file diff --git a/Client/Packages/com.alicizax.uxtool/Editor/AlicizaUXTool.Editor.asmdef.meta b/Client/Packages/com.alicizax.uxtool/Editor/AlicizaUXTool.Editor.asmdef.meta deleted file mode 100644 index ff864af..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/AlicizaUXTool.Editor.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: f7a54d99aea1f544194a344d7b71c22b -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/AlicizaUXUIGeneratorRuleHelper.cs b/Client/Packages/com.alicizax.uxtool/Editor/AlicizaUXUIGeneratorRuleHelper.cs deleted file mode 100644 index 9cd848f..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/AlicizaUXUIGeneratorRuleHelper.cs +++ /dev/null @@ -1,249 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using AlicizaX.UI; -using AlicizaX.UI.Editor; -using AlicizaX.UI.Runtime; -using UnityEditor; -using UnityEngine; -using YooAsset.Editor; - -namespace AlicizaX.UXTool -{ - public class AlicizaUXUIGeneratorRuleHelper : IUIGeneratorRuleHelper - { - public string GetPrivateComponentByNameRule(string regexName, string componentName, EBindType bindType) - { - var endPrefix = bindType == EBindType.ListCom ? "List" : string.Empty; - var common = UIGenerateConfiguration.Instance.UIGenerateCommonData; - var endNameIndex = componentName.IndexOf(common.ComCheckEndName, StringComparison.Ordinal); - - var componentSuffix = endNameIndex >= 0 ? componentName.Substring(endNameIndex + 1) : componentName; - return $"m{regexName}{componentSuffix}{endPrefix}"; - } - - public string GetPublicComponentByNameRule(string variableName) - { - if (string.IsNullOrEmpty(variableName)) return variableName; - return variableName.Length > 1 ? variableName.Substring(1) : variableName; - } - - public string GetClassGenerateName(GameObject targetObject, UIScriptGenerateData scriptGenerateData) - { - var config = UIGenerateConfiguration.Instance.UIGenerateCommonData; - var prefix = config.GeneratePrefix ?? "ui"; - return $"{prefix}_{targetObject.name}"; - } - - public string GetUIResourceSavePath(GameObject targetObject, UIScriptGenerateData scriptGenerateData) - { - if (targetObject == null) return $"\"{nameof(targetObject)}\""; - - var defaultPath = targetObject.name; - var assetPath = UIGenerateQuick.GetPrefabAssetPath(targetObject); - - if (string.IsNullOrEmpty(assetPath) || !assetPath.StartsWith("Assets/", StringComparison.Ordinal)) - return defaultPath; - - assetPath = assetPath.Replace('\\', '/'); - return scriptGenerateData.LoadType switch - { - EUIResLoadType.Resources => GetResourcesPath(assetPath, scriptGenerateData, defaultPath), - EUIResLoadType.AssetBundle => GetAssetBundlePath(assetPath, scriptGenerateData, defaultPath), - _ => defaultPath - }; - } - - private static string GetResourcesPath(string assetPath, UIScriptGenerateData scriptGenerateData, string defaultPath) - { - var resourcesRoot = scriptGenerateData.UIPrefabRootPath; - var relPath = GetResourcesRelativePath(assetPath, resourcesRoot); - - if (relPath == null) - { - Debug.LogWarning($"[UI生成] 资源 {assetPath} 不在配置的 Resources 根目录下: {resourcesRoot}"); - return defaultPath; - } - - return relPath; - } - - private static string GetAssetBundlePath(string assetPath, UIScriptGenerateData scriptGenerateData, string defaultPath) - { - try - { - var defaultPackage = AssetBundleCollectorSettingData.Setting.GetPackage("DefaultPackage"); - if (defaultPackage?.EnableAddressable == true) - return defaultPath; - } - catch - { - // 忽略异常,继续处理 - } - - var bundleRoot = scriptGenerateData.UIPrefabRootPath; - if (!assetPath.StartsWith(bundleRoot, StringComparison.OrdinalIgnoreCase)) - { - Debug.LogWarning($"[UI生成] 资源 {assetPath} 不在配置的 AssetBundle 根目录下: {bundleRoot}"); - return defaultPath; - } - - return Path.ChangeExtension(assetPath, null); - } - - private static string GetResourcesRelativePath(string assetPath, string resourcesRoot) - { - if (string.IsNullOrEmpty(assetPath) || string.IsNullOrEmpty(resourcesRoot)) return null; - - assetPath = assetPath.Replace('\\', '/'); - resourcesRoot = resourcesRoot.Replace('\\', '/'); - - if (!assetPath.StartsWith(resourcesRoot, StringComparison.OrdinalIgnoreCase)) - return null; - - var relPath = assetPath.Substring(resourcesRoot.Length).TrimStart('/'); - return Path.ChangeExtension(relPath, null); - } - - public void WriteUIScriptContent(GameObject targetObject, string className, string scriptContent, UIScriptGenerateData scriptGenerateData) - { - if (string.IsNullOrEmpty(className)) throw new ArgumentNullException(nameof(className)); - if (scriptContent == null) throw new ArgumentNullException(nameof(scriptContent)); - if (scriptGenerateData == null) throw new ArgumentNullException(nameof(scriptGenerateData)); - - var scriptFolderPath = scriptGenerateData.GenerateHolderCodePath; - var scriptFilePath = Path.Combine(scriptFolderPath, $"{className}.cs"); - - Directory.CreateDirectory(scriptFolderPath); - UXController controller = targetObject.GetComponent(); - - if (controller != null && controller.Controllers.Count > 0) - { - StringBuilder sb = new StringBuilder(); - sb.Append("\t\t#region Controller"); - sb.AppendLine(); - - foreach (var ctl in controller.Controllers) - { - string upperName = ctl.Name[0].ToString().ToUpper() + ctl.Name.Substring(1); - sb.AppendLine($"\t\tpublic UXController.ControllerHandle {upperName} {{ get; private set; }}"); - } - - sb.AppendLine("\t\tpublic override void Awake()"); - sb.AppendLine("\t\t{"); - sb.AppendLine("\t\t\tbase.Awake();"); - sb.AppendLine("\t\t\tvar controller = gameObject.GetComponent();"); - foreach (var ctl in controller.Controllers) - { - string upperName = ctl.Name[0].ToString().ToUpper() + ctl.Name.Substring(1); - sb.AppendLine($"\t\t\t{upperName} = controller.GetController(\"{ctl.Name}\");"); - } - - sb.AppendLine("\t\t}"); - sb.AppendLine("\t\t#endregion"); - scriptContent = scriptContent.Replace("#Controller#", sb.ToString()); - } - else - { - scriptContent = scriptContent.Replace("#Controller#", string.Empty); - } - - - if (File.Exists(scriptFilePath) && IsContentUnchanged(scriptFilePath, scriptContent)) - { - UIScriptGeneratorHelper.BindUIScript(); - return; - } - - File.WriteAllText(scriptFilePath, scriptContent, Encoding.UTF8); - AssetDatabase.Refresh(); - } - - private static bool IsContentUnchanged(string filePath, string newContent) - { - var oldText = File.ReadAllText(filePath, Encoding.UTF8); - return oldText.Equals(newContent, StringComparison.Ordinal); - } - - public bool CheckCanGenerate(GameObject targetObject, UIScriptGenerateData scriptGenerateData) - { - if (targetObject == null || scriptGenerateData == null) return false; - - var assetPath = UIGenerateQuick.GetPrefabAssetPath(targetObject); - if (string.IsNullOrEmpty(assetPath) || !assetPath.StartsWith("Assets/", StringComparison.Ordinal)) - return false; - - assetPath = assetPath.Replace('\\', '/'); - var isValidPath = assetPath.StartsWith(scriptGenerateData.UIPrefabRootPath, StringComparison.OrdinalIgnoreCase); - - if (!isValidPath) - { - Debug.LogWarning($"UI存储位置与配置生成规则不符合 请检查对应配置的UIPrefabRootPath\n[AssetPath]{assetPath}\n[ConfigPath]{scriptGenerateData.UIPrefabRootPath}"); - } - - return isValidPath; - } - - public string GetReferenceNamespace(List uiBindDatas) - { - var namespaceSet = new HashSet(StringComparer.Ordinal) { "UnityEngine" }; - - if (uiBindDatas?.Any(d => d.BindType == EBindType.ListCom) == true) - { - namespaceSet.Add("System.Collections.Generic"); - } - - uiBindDatas? - .Where(bindData => bindData?.Objs?.FirstOrDefault() != null) - .Select(bindData => bindData.GetFirstOrDefaultType().Namespace) - .Where(ns => !string.IsNullOrEmpty(ns)) - .ToList() - .ForEach(ns => namespaceSet.Add(ns)); - - return string.Join(Environment.NewLine, namespaceSet.Select(ns => $"using {ns};")); - } - - public string GetVariableContent(List uiBindDatas) - { - if (uiBindDatas == null || uiBindDatas.Count == 0) return string.Empty; - - var variableBuilder = new StringBuilder(); - var variables = uiBindDatas - .Where(b => b != null && !string.IsNullOrEmpty(b.Name)) - .Select(b => GenerateVariableDeclaration(b)) - .Where(declaration => !string.IsNullOrEmpty(declaration)); - - return string.Join("\n\n", variables); - } - - private string GenerateVariableDeclaration(UIBindData bindData) - { - var variableName = bindData.Name; - var publicName = GetPublicComponentByNameRule(variableName); - var firstType = bindData.GetFirstOrDefaultType(); - var typeName = firstType?.Name ?? "Component"; - - var declaration = new StringBuilder(); - declaration.AppendLine("\t\t[SerializeField]"); - - switch (bindData.BindType) - { - case EBindType.None: - case EBindType.Widget: - declaration.AppendLine($"\t\tprivate {typeName} {variableName};"); - declaration.Append($"\t\tpublic {typeName} {publicName} => {variableName};"); - break; - - case EBindType.ListCom: - var count = Math.Max(0, bindData.Objs?.Count ?? 0); - declaration.AppendLine($"\t\tprivate {typeName}[] {variableName} = new {typeName}[{count}];"); - declaration.Append($"\t\tpublic {typeName}[] {publicName} => {variableName};"); - break; - } - - return declaration.ToString(); - } - } -} diff --git a/Client/Packages/com.alicizax.uxtool/Editor/AlicizaUXUIGeneratorRuleHelper.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/AlicizaUXUIGeneratorRuleHelper.cs.meta deleted file mode 100644 index 294a47d..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/AlicizaUXUIGeneratorRuleHelper.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 48bb3b6017052894fbcebf49a41e6b61 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Base.meta b/Client/Packages/com.alicizax.uxtool/Editor/Base.meta deleted file mode 100644 index 0ed84b0..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Base.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 971b3a6d43d84485bc82a92f677c431d -timeCreated: 1763975420 \ No newline at end of file diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Base/ScriptableSingleton.cs b/Client/Packages/com.alicizax.uxtool/Editor/Base/ScriptableSingleton.cs deleted file mode 100644 index 18543e3..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Base/ScriptableSingleton.cs +++ /dev/null @@ -1,98 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using UnityEditorInternal; -using UnityEngine; - -namespace AlicizaX.UXTool -{ - internal class ScriptableSingleton : ScriptableObject where T : ScriptableObject - { - private static T s_Instance; - - public static T Instance - { - get - { - if (!s_Instance) - { - LoadOrCreate(); - } - - return s_Instance; - } - } - - public static T LoadOrCreate() - { - string filePath = GetFilePath(); - if (!string.IsNullOrEmpty(filePath)) - { - var arr = InternalEditorUtility.LoadSerializedFileAndForget(filePath); - s_Instance = arr.Length > 0 ? arr[0] as T : s_Instance ?? CreateInstance(); - } - else - { - Debug.LogError($"save location of {nameof(ScriptableSingleton)} is invalid"); - } - - return s_Instance; - } - - public static void Save(bool saveAsText = true) - { - if (!s_Instance) - { - Debug.LogError("Cannot save ScriptableSingleton: no instance!"); - return; - } - - string filePath = GetFilePath(); - if (!string.IsNullOrEmpty(filePath)) - { - string directoryName = Path.GetDirectoryName(filePath); - if (!Directory.Exists(directoryName)) - { - Directory.CreateDirectory(directoryName); - } - - UnityEngine.Object[] obj = new T[1] { s_Instance }; - InternalEditorUtility.SaveToSerializedFileAndForget(obj, filePath, saveAsText); - } - } - - protected static string GetFilePath() - { - return typeof(T).GetCustomAttributes(inherit: true) - .Where(v => v is FilePathAttribute) - .Cast() - .FirstOrDefault() - ?.filepath; - } - } - - [AttributeUsage(AttributeTargets.Class)] - public class FilePathAttribute : Attribute - { - internal string filepath; - - /// - /// 单例存放路径 - /// - /// 相对 Project 路径 - public FilePathAttribute(string path) - { - if (string.IsNullOrEmpty(path)) - { - throw new ArgumentException("Invalid relative path (it is empty)"); - } - - if (path[0] == '/') - { - path = path.Substring(1); - } - - filepath = path; - } - } -} diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Base/ScriptableSingleton.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/Base/ScriptableSingleton.cs.meta deleted file mode 100644 index 898a5f8..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Base/ScriptableSingleton.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 611899e70b4f424091a58af4e485db0b -timeCreated: 1763975423 \ No newline at end of file diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Common.meta b/Client/Packages/com.alicizax.uxtool/Editor/Common.meta deleted file mode 100644 index 5e1aca5..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Common.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 11e0c553755e49e9bb95b35bd924cdc6 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Common/ContextMenu.meta b/Client/Packages/com.alicizax.uxtool/Editor/Common/ContextMenu.meta deleted file mode 100644 index 20e3290..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Common/ContextMenu.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: dc242d8f56ba469cac5f90603b46b1a8 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Common/ContextMenu/ContextMenuFunction.cs b/Client/Packages/com.alicizax.uxtool/Editor/Common/ContextMenu/ContextMenuFunction.cs deleted file mode 100644 index c9e6724..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Common/ContextMenu/ContextMenuFunction.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using UnityEditor; -using UnityEngine; - -namespace AlicizaX.UXTool -{ - public static partial class ContextMenuUtils - { - public static class Menu - { - public static void BuildPrefabTabMenuItem(string guid) - { - ResetMenu(); - BuildContextMenu("关闭右侧全部", false,null); - BuildContextMenu("关闭左侧全部", false, null); - BuildContextMenu("关闭全部", false, null); - BuildContextMenu("关闭当前", false, null); - } - } - } -} diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Common/ContextMenu/ContextMenuFunction.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/Common/ContextMenu/ContextMenuFunction.cs.meta deleted file mode 100644 index eb67cd5..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Common/ContextMenu/ContextMenuFunction.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 835d2b9493e24712925e98a7a3da62a2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Common/ContextMenu/ContextMenuUtils.cs b/Client/Packages/com.alicizax.uxtool/Editor/Common/ContextMenu/ContextMenuUtils.cs deleted file mode 100644 index d6e3538..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Common/ContextMenu/ContextMenuUtils.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System; -using System.Collections.Generic; -using UnityEditor; -using UnityEngine; - -namespace AlicizaX.UXTool -{ - public static partial class ContextMenuUtils - { - private static GenericMenu contextMenu = new GenericMenu(); // 保存当前菜单 - private static HashSet menuItems = new HashSet(); // 用于跟踪菜单项,防止重复 - private static bool menuBuilt = false; // 标记是否已构建菜单 - - // 清空现有菜单和菜单项,重新构建菜单 - static void ResetMenu() - { - contextMenu = new GenericMenu(); - menuItems.Clear(); - menuBuilt = false; - } - - // 判断菜单是否为空 - public static bool IsMenuEmpty() - { - // 判断contextMenu是否有任何项,若没有,则菜单为空 - return contextMenu.GetItemCount() == 0; // 如果没有菜单项,返回 true - } - - // 显示菜单 - public static void ShowContextMenu() - { - if (!menuBuilt) BuildContextMenu(); // 如果菜单尚未构建,则构建菜单 - if (!IsMenuEmpty()) // 如果菜单项不为空,则显示菜单 - { - contextMenu.ShowAsContext(); - } - ResetMenu(); // 显示完菜单后重置 - } - - // 构建普通菜单项 - public static void BuildContextMenu(string label, bool check, GenericMenu.MenuFunction clickEvent) - { - if (menuItems.Contains(label)) return; // 防止重复添加相同的菜单项 - contextMenu.AddItem(new GUIContent(label), check, clickEvent); - menuItems.Add(label); - menuBuilt = true; - } - - // 构建带参数的菜单项 - public static void BuildContextMenuWithArgs(string label, bool check, GenericMenu.MenuFunction2 clickEvent, object arg1) - { - if (menuItems.Contains(label)) return; // 防止重复添加相同的菜单项 - contextMenu.AddItem(new GUIContent(label), check, clickEvent, arg1); - menuItems.Add(label); - menuBuilt = true; - } - - // 添加分隔符 - public static void BuildSeparator() - { - contextMenu.AddSeparator(string.Empty); // 添加一个通用的分隔符 - menuBuilt = true; - } - - // 为了确保每次显示菜单之前都进行初始化 - static void BuildContextMenu() - { - // 在这里可以添加额外的默认菜单项(如果有需要的话) - menuBuilt = true; // 表示菜单已经构建 - } - } -} diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Common/ContextMenu/ContextMenuUtils.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/Common/ContextMenu/ContextMenuUtils.cs.meta deleted file mode 100644 index 3697c7e..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Common/ContextMenu/ContextMenuUtils.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7ede2a32054642119314d6875e9d8615 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Common/Logic.meta b/Client/Packages/com.alicizax.uxtool/Editor/Common/Logic.meta deleted file mode 100644 index 0ffee4e..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Common/Logic.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d974406a2b96e2049970825025bdaa38 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Common/Logic/FindContainerLogic.cs b/Client/Packages/com.alicizax.uxtool/Editor/Common/Logic/FindContainerLogic.cs deleted file mode 100644 index ba53da4..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Common/Logic/FindContainerLogic.cs +++ /dev/null @@ -1,67 +0,0 @@ -#if UNITY_EDITOR -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.UI; - -namespace AlicizaX.UXTool -{ - public class FindContainerLogic - { - public static bool ObjectFit(GameObject obj) - { - if (obj == null) return false; - //Graphic[] components = obj.GetComponents(); - //if (components == null || components.Length == 0) return false; - return obj.activeInHierarchy && obj.GetComponent() != null && obj.GetComponent() == null && obj != PrefabStageUtils.StageRoot.gameObject; - } - - /// - /// 只选中一个非 Root的节点时,拖动出来的节点应该和该节点同层级 - /// 未选中或者选中 根Canvas 节点,拖动出来的节点都在 根Canvas 子节点层级 - /// 选中多个时 拖动出来的节点在 根Canvas 子节点层级 - /// - public static Transform GetObjectParent(GameObject[] selection) - { - var prefabStage = PrefabStageUtils.GetCurrentPrefabStage(); - if (prefabStage != null) - { - //Prefab编辑模式下,需要额外区分是否是Canvas (Environment) - if (selection.Length == 1 - && !selection[0].name.Equals("Canvas (Environment)") - && selection[0].transform != prefabStage.prefabContentsRoot.transform) - { - return selection[0].transform.parent.transform; - } - else - { - return prefabStage.prefabContentsRoot.transform; - } - } - else - { - if (selection.Length == 1) - { - if (selection[0].transform == selection[0].transform.root) - { - return selection[0].transform.root; - } - else - { - return selection[0].transform.parent.transform; - } - } - else - { - if (Object.FindObjectsOfType().Length == 0) - { - new GameObject("Canvas", typeof(Canvas), typeof(CanvasScaler), typeof(GraphicRaycaster)); - } - - return Object.FindObjectsOfType()[0].transform; - } - } - } - } -} -#endif \ No newline at end of file diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Common/Logic/FindContainerLogic.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/Common/Logic/FindContainerLogic.cs.meta deleted file mode 100644 index c2f613a..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Common/Logic/FindContainerLogic.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 67cc1404d938c9942896d12f3832cff5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Common/Undo.meta b/Client/Packages/com.alicizax.uxtool/Editor/Common/Undo.meta deleted file mode 100644 index f19c88e..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Common/Undo.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3e53dd6d150f78d4d9239f98eef08fb2 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Common/Undo/UndoCommand.cs b/Client/Packages/com.alicizax.uxtool/Editor/Common/Undo/UndoCommand.cs deleted file mode 100644 index d0224e5..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Common/Undo/UndoCommand.cs +++ /dev/null @@ -1,91 +0,0 @@ -#if UNITY_EDITOR -using UnityEngine; -using UnityEditor; -namespace AlicizaX.UXTool -{ - //所有需要执行撤销的操作 在这里定义Commond,通过Execute执行Undo记录 - //目的是为了不让Undo. 代码乱飞 - public abstract class UXUndoCommand - { - public abstract void Execute(); - } - - public class QuickCreateCommand : UXUndoCommand - { - private GameObject m_quickObj; - - public QuickCreateCommand(GameObject qucikObj) - { - m_quickObj = qucikObj; - } - - public override void Execute() - { - Undo.IncrementCurrentGroup(); - Undo.RegisterCreatedObjectUndo(m_quickObj, "Create" + m_quickObj.name); - Undo.IncrementCurrentGroup(); - } - } - - - public class CombineCommand : UXUndoCommand - { - private GameObject m_combineRoot; - private RectTransform[] m_combineObjects; - - public CombineCommand(GameObject combineRoot, RectTransform[] combineObjects) - { - m_combineRoot = combineRoot; - m_combineObjects = combineObjects; - } - - public override void Execute() - { - //var id = Undo.GetCurrentGroup(); - Undo.IncrementCurrentGroup(); - - Undo.RegisterCreatedObjectUndo(m_combineRoot, "Combine Operation"); - foreach (var rect in m_combineObjects) - { - Undo.SetTransformParent(rect.transform, m_combineRoot.transform, "Combine Operation"); - } - - Undo.IncrementCurrentGroup(); - } - } - - public class AlignCommand : UXUndoCommand - { - private RectTransform[] m_alignObjects; - public AlignCommand(RectTransform[] alignObjects) - { - m_alignObjects = alignObjects; - } - - public override void Execute() - { - Undo.IncrementCurrentGroup(); - Undo.RecordObjects(m_alignObjects, "Align Operation"); - } - - } - // public class LocationLineCommand : UXUndoCommand - // { - // private static LocationLinesData m_LinesData; - // //private static TextAsset m_datajson; - // private string undoName; - // public LocationLineCommand(LocationLinesData linesData, string OperationName) - // { - // m_LinesData = linesData; - // undoName = OperationName; - // //m_datajson = AssetDatabase.LoadAssetAtPath(ThunderFireUIToolConfig.LocationLinesDataPath); - // } - // public override void Execute() - // { - // Undo.IncrementCurrentGroup(); - // Undo.RecordObject(m_LinesData, undoName); - // //Undo.RecordObject(m_datajson, undoName); - // } - // } -} -#endif diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Common/Undo/UndoCommand.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/Common/Undo/UndoCommand.cs.meta deleted file mode 100644 index e15deb1..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Common/Undo/UndoCommand.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ee529be6285730e48a42ee2573e5fd8a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Common/Utils.meta b/Client/Packages/com.alicizax.uxtool/Editor/Common/Utils.meta deleted file mode 100644 index 8889281..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Common/Utils.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 51515c3febc44da9bc96e216fb4f2c52 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Common/Utils/Utils.cs b/Client/Packages/com.alicizax.uxtool/Editor/Common/Utils/Utils.cs deleted file mode 100644 index b49a535..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Common/Utils/Utils.cs +++ /dev/null @@ -1,811 +0,0 @@ -#if UNITY_EDITOR -using System.Collections.Generic; -using UnityEngine; -using UnityEditor; -using UnityEditor.SceneManagement; -using System.Reflection; -using System; -using System.IO; -using Object = UnityEngine.Object; -using System.Linq; -using System.Text.RegularExpressions; -using UnityEngine.UIElements; -using UnityEditor.UIElements; -#if UNITY_2021_3_OR_NEWER -using PrefabStageUtility = UnityEditor.SceneManagement.PrefabStageUtility; - -#else -using PrefabStageUtility = UnityEditor.Experimental.SceneManagement.PrefabStageUtility; -#endif - -namespace AlicizaX.UXTool -{ - public static partial class Utils - { -#if !UNITY_2021_3_OR_NEWER - private static readonly float m_WindowToolbarHeight = 21f; - private static readonly float m_StageHandlingFixedHeight = 25f; - private static readonly float m_TabHeight = 19f; -#endif - - #region Reflection - - //反射方法 性能消耗较大 调用后尽量缓存结果 - /// - /// 有可能引起window重新生成实例 暂时废弃 - /// - /// - [Obsolete] - public static EditorWindow GetGameView() - { - var type = typeof(UnityEditor.Editor).Assembly.GetType("UnityEditor.GameView"); - var gameview = EditorWindow.GetWindow(type); - return gameview; - } - - /// - /// 获取GameView对象 - /// - /// - public static object GetMainPlayModeView() - { - var playModeViewType = System.Type.GetType("UnityEditor.PlayModeView,UnityEditor"); - var GetMainPlayModeView = playModeViewType.GetMethod("GetMainPlayModeView", BindingFlags.NonPublic | BindingFlags.Static); - var view = GetMainPlayModeView.Invoke(null, null); - return view; - } - - /// - /// 获取所有的GameView对象 - /// - /// - public static Object[] GetPlayViews() - { - Assembly assembly = typeof(EditorWindow).Assembly; - Type type = assembly.GetType("UnityEditor.GameView"); - return UnityEngine.Resources.FindObjectsOfTypeAll(type); - } - - public static EditorWindow GetHierarchyWindow() - { - var HierarchyViewType = System.Type.GetType("UnityEditor.SceneHierarchyWindow,UnityEditor"); - - //var GetSceneHierarchyWindow = HierarchyViewType.GetMethod("GetSceneHierarchyWindowToFocusForNewGameObjects", BindingFlags.NonPublic | BindingFlags.Static); - //var hierarchyWindow = GetSceneHierarchyWindow.Invoke(null, null); - - object hierarchyWindow = GetPropertyValue(HierarchyViewType, "lastInteractedHierarchyWindow"); - EditorWindow window = hierarchyWindow as EditorWindow; - - return window; - } - - public static SceneView GetSceneView() - { - return SceneView.currentDrawingSceneView; - } - - public static EditorWindow GetEditorWindow(string EditorWindowClassName) - { - var assembly = typeof(EditorWindow).Assembly; - var type = assembly.GetType(EditorWindowClassName); - var editorWindow = EditorWindow.GetWindow(type); - return editorWindow; - } - - public static UnityEditor.Editor GetEditor(Object[] targets, string EditorClassName) - { - var assembly = typeof(UnityEditor.Editor).Assembly; - var type = assembly.GetType(EditorClassName); - var editor = UnityEditor.Editor.CreateEditor(targets, type); - return editor; - } - - public static UnityEditor.Editor GetEditor(Object target, string EditorClassName) - { - var assembly = typeof(UnityEditor.Editor).Assembly; - var type = assembly.GetType(EditorClassName); - var editor = UnityEditor.Editor.CreateEditor(target, type); - return editor; - } - - /// - /// 获取Editor中的类方法 - /// - /// - /// - /// 要获取的method的参数个数,用于区分重载方法 - /// - public static List GetEditorMethod(Type editorClassType, string methodName, int paraCount = -1) - { - List m = new List(); - - MethodInfo[] methods = editorClassType.GetMethods(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static); - foreach (var method in methods) - { - if (method.Name == methodName && method.GetParameters().Length == paraCount) - { - m.Add(method); - } - } - - return m; - } - - /// - /// 获取没有重载的Editor方法 - /// - /// - /// - /// - public static MethodInfo GetEditorMethod(Type editorClassType, string methodName) - { - MethodInfo[] methods = editorClassType.GetMethods(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance); - foreach (var method in methods) - { - if (method.Name == methodName) - { - return method; - } - } - - return null; - } - - /// - /// 通过反射调用非静态方法 - /// - /// 调用对象,若调用静态函数请使用typeof(className) - /// 方法名称 - /// 方法的参数,默认为null,表示不传参 - /// 非静态方法的返回值 - public static object InvokeMethod(object obj, string methodName, object[] parameters = null) - { - if (parameters == null) - { - return obj.GetType().GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance).Invoke(obj, null); - } - - Type[] types = new Type[parameters.Length]; - for (int i = 0; i < parameters.Length; i++) - { - types[i] = parameters[i].GetType(); - } - - return obj.GetType().GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, types, null).Invoke(obj, parameters); - } - - /// - /// 通过反射调用静态方法 - /// - /// 调用静态函数请使用typeof(className) - /// 方法名称 - /// 方法的参数,默认为null,表示不传参 - /// 静态方法的返回值 - public static object InvokeMethod(Type type, string methodName, object[] parameters = null) - { - if (parameters == null) - { - return type.GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static).Invoke(null, null); - } - - Type[] types = new Type[parameters.Length]; - for (int i = 0; i < parameters.Length; i++) - { - types[i] = parameters[i].GetType(); - } - - return type.GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static, null, types, null).Invoke(null, parameters); - } - - /// - /// 通过反射获取非静态属性的值 - /// - /// 调用对象,若调用静态属性请使用typeof(className) - /// 属性名称 - /// 索引属性的参数,默认为null,表示获取非索引属性 - /// 非静态属性的值 - public static object GetPropertyValue(object obj, string propertyName, object[] index = null) - { - if (index == null) - { - return obj.GetType().GetProperty(propertyName, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance).GetValue(obj); - } - - Type[] types = new Type[index.Length]; - for (int i = 0; i < index.Length; i++) - { - types[i] = index[i].GetType(); - } - - return obj.GetType().GetProperty(propertyName, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, null, types, null).GetValue(obj, index); - } - - /// - /// 通过反射获取静态属性的值 - /// - /// 调用静态属性请使用typeof(className) - /// 属性名称 - /// 索引属性的参数,默认为null,表示获取非索引属性 - /// 静态属性的值 - public static object GetPropertyValue(Type type, string propertyName, object[] index = null) - { - if (index == null) - { - return type.GetProperty(propertyName, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static).GetValue(null); - } - - Type[] types = new Type[index.Length]; - for (int i = 0; i < index.Length; i++) - { - types[i] = index[i].GetType(); - } - - return type.GetProperty(propertyName, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static, null, null, types, null).GetValue(null, index); - } - - /// - /// 通过反射获取非静态变量的值 - /// - /// 调用对象,若调用静态变量请使用typeof(className) - /// 变量名称 - /// 非静态变量的值 - public static object GetFieldValue(object obj, string fieldName) - { - return obj.GetType().GetField(fieldName, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance).GetValue(obj); - } - - /// - /// 通过反射获取静态变量的值 - /// - /// 调用静态变量请使用typeof(className) - /// 变量名称 - /// 静态变量的值 - public static object GetFieldValue(Type type, string fieldName) - { - return type.GetField(fieldName, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static).GetValue(null); - } - - public static Rect GetSceneViewCameraRect() - { - var type = typeof(SceneView); - PropertyInfo info = type.GetProperty("cameraRect", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static); - object r = info.GetValue(SceneView.lastActiveSceneView, null); - Rect rect = (Rect)r; - return rect; - } - - public static float GetSceneViewOffest() - { -#if !UNITY_2021_3_OR_NEWER - //if (SceneView.sceneViews.Count == 0) - //{ - // return 19 + 25; - //} - // - //SceneView sceneView = (SceneView)SceneView.sceneViews[0]; - ////SceneView sceneView = SceneView.currentDrawingSceneView; - // - //var sceneviewtype = typeof(SceneView); - //PropertyInfo toolbarHeightInfo = sceneviewtype.GetProperty("toolbarHeight", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static); - //float toolbarHeight = (float)toolbarHeightInfo.GetValue(sceneView, null); - // - // - //var dockareaType = typeof(Editor).Assembly.GetType("UnityEditor.DockArea"); - //FieldInfo kTabHeightInfo = dockareaType.GetField("kTabHeight", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static); - //float kTabHeight = (float)kTabHeightInfo.GetValue(null); - // - //return kTabHeight + toolbarHeight; - return m_TabHeight + GetSceneViewToolbarHeight(); -#else - var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - if (prefabStage != null) - { - return 19 + 46; - } - else - { - return 19 + 25; - } -#endif - } - - public static float GetSceneViewToolbarHeight() - { -#if !UNITY_2021_3_OR_NEWER - //var sceneviewtype = typeof(SceneView); - //PropertyInfo toolbarHeightInfo = sceneviewtype.GetProperty("toolbarHeight", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static); - //float toolbarHeight = (float)toolbarHeightInfo.GetValue(SceneView.lastActiveSceneView, null); - //return toolbarHeight; - var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - if (prefabStage != null) - { - return m_WindowToolbarHeight + m_StageHandlingFixedHeight; - } - else - { - return m_WindowToolbarHeight; - } -#else - return 0; -#endif - } - - #endregion - - #region GameView - - public static Vector2 GetGameViewSize() - { - MethodInfo GetSizeOfMainGameView = GetEditorMethod(Type.GetType("UnityEditor.GameView,UnityEditor"), "GetSizeOfMainGameView"); - if (GetSizeOfMainGameView != null) - { - var Res = GetSizeOfMainGameView.Invoke(null, null); - return (Vector2)Res; - } - - return Vector2.zero; - } - - #endregion - - #region Prefab - - public static void OpenPrefab(string prefabPath) - { - PrefabStageUtility.OpenPrefab(prefabPath); - List m = GetEditorMethod(typeof(PrefabStageUtility), "OpenPrefab", 1); - m[0].Invoke(null, new object[] { prefabPath }); - } - - public static void SetCursor(Texture2D texture) - { - List m = GetEditorMethod(typeof(EditorGUIUtility), "SetCurrentViewCursor", 3); - m[0].Invoke(null, new object[] { texture, new Vector2(16, 16), MouseCursor.CustomCursor }); - } - - public static void ClearCurrentViewCursor() - { - List m = GetEditorMethod(typeof(EditorGUIUtility), "ClearCurrentViewCursor", 0); - m[0].Invoke(null, null); - } - - #endregion - - #region Editor State - - public static void ExitPrefabStage() - { - StageUtility.GoToMainStage(); - } - - public static void EnterPlayMode() - { - EditorApplication.isPlaying = true; - PlayerPrefs.SetString("previewStage", "true"); - } - - public static void StopPlayMode() - { - EditorApplication.isPlaying = false; - PlayerPrefs.SetString("previewStage", "false"); - } - - #endregion - - #region Selecion - - /// - /// 获得Hierarchy中选中且激活的对象。 - /// - public static GameObject selectionActiveGameObject - { - get - { - if (UXSelectionUtil.activeGameObject == null) return null; - return UXSelectionUtil.activeGameObject.activeInHierarchy ? UXSelectionUtil.activeGameObject : null; - } - } - - /// - /// 获取当前选中对象 - /// 若选中超过1个以上的对象返回False - /// - /// 返回选中对象 - /// 是否成功获取 - public static bool TryGetSelectObject(out GameObject obj) - { - obj = null; - if (selectionActiveGameObject == null || UXSelectionUtil.gameObjects.Length > 1) - return false; - - obj = selectionActiveGameObject; - //这里要避免选中Prefab中用于预览的Canvas - var rect = obj.transform as RectTransform; - bool isCanvasEnvironment = obj.transform.parent == null && obj.name == "Canvas(Environment)"; - return obj != null && !isCanvasEnvironment; - } - - /// - /// 获取当前选中对象的RectTransform - /// 若选中超过1个以上的对象返回False - /// - /// 返回选中对象Rect - /// 是否成功获取 - public static bool TryGetSelectionRectTransform(out RectTransform rect) - { - rect = null; - if (selectionActiveGameObject == null || UXSelectionUtil.gameObjects.Length > 1) - return false; - rect = selectionActiveGameObject.transform as RectTransform; - //这里要避免选中Prefab中用于预览的Canvas - bool isCanvasEnvironment = rect.parent == null && rect.name == "CanvasEnvironment"; - return rect != null && !isCanvasEnvironment; - } - - /// - /// 获取全部选中对象RrectTransform - /// - /// 返回列表 - public static List GetAllSelectionRectTransform() - { - List rects = new List(); - GameObject[] objects = UXSelectionUtil.gameObjects; - foreach (var obj in objects) - { - RectTransform rect = obj.GetComponent(); - if (rect != null) - rects.Add(rect); - } - - return rects; - } - - /// - /// 获取当前选中对象的path - /// 若选中超过1个以上的对象返回False - /// - /// 是否成功获取 - public static bool TryGetSelectionPath(out string path) - { - path = ""; - if (Selection.assetGUIDs.Length == 1) - { - path = AssetDatabase.GUIDToAssetPath(Selection.assetGUIDs[0]); - } - - return !string.IsNullOrEmpty(path); - } - - /// - /// - /// - /// - public static List GetAllSelectionPath() - { - return Selection.assetGUIDs.Select(AssetDatabase.GUIDToAssetPath).ToList(); - } - - #endregion - - #region Texutre&Icon - - //生成和缓存 preview图片 - static Dictionary m_PreviewDict = new Dictionary(); - static Dictionary m_PreviewDict2D = new Dictionary(); - - public static Texture GetAssetsPreviewTexture(string guid, int previewSize = 79) - { - if (!File.Exists(AssetDatabase.GUIDToAssetPath(guid))) return null; - - if (!m_PreviewDict.TryGetValue(guid, out var tex)) - { - tex = GenAssetsPreviewTexture(guid, previewSize); - if (tex != null) - { - m_PreviewDict[guid] = tex; - } - } - - if (tex == null) - { - tex = GenAssetsPreviewTexture(guid, previewSize); - if (tex != null) - m_PreviewDict[guid] = tex; - } - - return tex; - } - - public static Texture UpdatePreviewTexture(string guid, int previewSize = 79) - { - var tex = GenAssetsPreviewTexture(guid, previewSize); - if (tex != null) - m_PreviewDict[guid] = tex; - - return tex; - } - - public static Texture GetAssetsNewPreviewTexture(string guid, int previewSize = 79) - { - Texture tex = GenAssetsPreviewTexture(guid, previewSize); - if (tex != null) - { - m_PreviewDict[guid] = tex; - } - - return tex; - } - - public static Texture2D GetAssetsPreviewTexture2D(string guid, int previewSize = 79) - { - if (!m_PreviewDict2D.TryGetValue(guid, out var tex)) - { - Texture tex1 = GetAssetsPreviewTexture(guid, previewSize); - if (tex1 != null) - { - tex = TextureToTexture2D(tex1); - m_PreviewDict2D[guid] = tex; - } - } - - return tex; - } - - private static Texture2D TextureToTexture2D(Texture texture) - { - Texture2D texture2D = new Texture2D(texture.width, texture.height, TextureFormat.RGBA32, false); - RenderTexture currentRT = RenderTexture.active; - RenderTexture renderTexture = RenderTexture.GetTemporary(texture.width, texture.height, 32); - Graphics.Blit(texture, renderTexture); - - RenderTexture.active = renderTexture; - texture2D.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0); - texture2D.Apply(); - - RenderTexture.active = currentRT; - RenderTexture.ReleaseTemporary(renderTexture); - - return texture2D; - } - - /// - /// 生成prefab的预览图, - /// - /// - /// - /// - public static Texture GenAssetsPreviewTexture(string guid, int previewSize = 79) - { - // if (EditorApplication.isPlaying) - // { - // return null; - // } - - string path = AssetDatabase.GUIDToAssetPath(guid); - GameObject obj = AssetDatabase.LoadAssetAtPath(path); - - GameObject canvas = new GameObject("UXRenderCanvas", typeof(Canvas)); - GameObject cameraObj = new GameObject("UXRenderCamera", typeof(Camera)); - canvas.transform.position = new Vector3(10000, 10000, 10000); - canvas.GetComponent().sizeDelta = new Vector2(Screen.currentResolution.width, Screen.currentResolution.height); - - GameObject go = GameObject.Instantiate(obj, canvas.transform); - - Bounds bound = GetBounds(go); - - cameraObj.transform.position = new Vector3((bound.max.x + bound.min.x) / 2, (bound.max.y + bound.min.y) / 2, (bound.max.z + bound.min.z) / 2 - 100); - cameraObj.transform.LookAt(cameraObj.transform.position); - - Camera camera = cameraObj.GetComponent(); - camera.cameraType = CameraType.SceneView; - camera.orthographic = true; - camera.clearFlags = CameraClearFlags.SolidColor; - camera.backgroundColor = new Color(0, 0, 0, 0f); - - float width = bound.max.x - bound.min.x; - float height = bound.max.y - bound.min.y; - float max_camera_size = (width > height ? width : height) + 10; - camera.orthographicSize = max_camera_size / 2; - - RenderTexture rt = RenderTexture.GetTemporary(previewSize, previewSize, 24); - camera.targetTexture = rt; - camera.RenderDontRestore(); - - RenderTexture tex = new RenderTexture(previewSize, previewSize, 0, RenderTextureFormat.Default); - Graphics.Blit(rt, tex); - - //Texture2D tex = new Texture2D(previewSize, previewSize, TextureFormat.ARGB32, false); - //tex.ReadPixels(new Rect(0, 0, previewSize, previewSize), 0, 0); - //tex.Apply(); - - RenderTexture.active = null; - camera.targetTexture = null; - rt.Release(); - RenderTexture.ReleaseTemporary(rt); - - Object.DestroyImmediate(canvas); - Object.DestroyImmediate(cameraObj); - - return tex; - } - - public static Bounds GetBounds(GameObject obj) - { - Vector3 Min = new Vector3(99999, 99999, 99999); - Vector3 Max = new Vector3(-99999, -99999, -99999); - MeshRenderer[] renders = obj.GetComponentsInChildren(); - if (renders.Length > 0) - { - for (int i = 0; i < renders.Length; i++) - { - if (renders[i].bounds.min.x < Min.x) - Min.x = renders[i].bounds.min.x; - if (renders[i].bounds.min.y < Min.y) - Min.y = renders[i].bounds.min.y; - if (renders[i].bounds.min.z < Min.z) - Min.z = renders[i].bounds.min.z; - - if (renders[i].bounds.max.x > Max.x) - Max.x = renders[i].bounds.max.x; - if (renders[i].bounds.max.y > Max.y) - Max.y = renders[i].bounds.max.y; - if (renders[i].bounds.max.z > Max.z) - Max.z = renders[i].bounds.max.z; - } - } - else - { - RectTransform[] rectTrans = obj.GetComponentsInChildren(); - Vector3[] corner = new Vector3[4]; - for (int i = 0; i < rectTrans.Length; i++) - { - //获取节点的四个角的世界坐标,分别按顺序为左下左上,右上右下 - rectTrans[i].GetWorldCorners(corner); - if (corner[0].x < Min.x) - Min.x = corner[0].x; - if (corner[0].y < Min.y) - Min.y = corner[0].y; - if (corner[0].z < Min.z) - Min.z = corner[0].z; - - if (corner[2].x > Max.x) - Max.x = corner[2].x; - if (corner[2].y > Max.y) - Max.y = corner[2].y; - if (corner[2].z > Max.z) - Max.z = corner[2].z; - } - } - - Vector3 center = (Min + Max) / 2; - Vector3 size = new Vector3(Max.x - Min.x, Max.y - Min.y, Max.z - Min.z); - return new Bounds(center, size); - } - - public static void DrawGreenRect(int instanceID, Rect selectionRect, string text) - { - GameObject go = EditorUtility.InstanceIDToObject(instanceID) as GameObject; - Rect rect = new Rect(selectionRect) - { - width = selectionRect.width + (PrefabUtility.IsAnyPrefabInstanceRoot(go) ? 0 : 20) - }; - EditorGUI.DrawRect(rect, new Color(0.157f, 0.157f, 0.157f, 1f)); - GUI.Label(selectionRect, PrefabUtility.GetIconForGameObject(go)); - GUI.Label(new Rect(selectionRect) { x = selectionRect.x + 20 }, - text, new GUIStyle() { normal = { textColor = Color.green } }); - } - - #endregion - - #region Regex - - public static bool CheckHasAlphanumeric(string input) - { - const string pattern = "^[a-zA-Z0-9_]+$"; - return Regex.IsMatch(input, pattern); - } - - #endregion - - // #region Panel - // public static string SelectFolder(bool needUnderAssets = true) - // { - // string folderPath = PlayerPrefs.GetString("LastParticleCheckPath"); - // string path = EditorUtility.OpenFolderPanel(EditorLocalization.GetLocalization(EditorLocalizationStorage.Def_选择路径), folderPath, ""); - // if (path != "") - // { - // int index = path.IndexOf("Assets"); - // if (index != -1 || !needUnderAssets) - // { - // PlayerPrefs.SetString("LastParticleCheckPath", path); - // if (needUnderAssets) - // { - // path = path.Substring(index); - // } - // return path + "/"; - // } - // else - // { - // EditorUtility.DisplayDialog("messageBox", - // EditorLocalization.GetLocalization(EditorLocalizationStorage.Def_目录不在Assets下Tip), - // EditorLocalization.GetLocalization(EditorLocalizationStorage.Def_确定)); - // } - // } - // return null; - // } - // - // public static string SelectFile() - // { - // string filePath = PlayerPrefs.GetString("LastParticleCheckPath"); - // string path = EditorUtility.OpenFilePanel(EditorLocalization.GetLocalization(EditorLocalizationStorage.Def_选择文件), filePath, ""); - // if (path != "") - // { - // int index = path.IndexOf("Assets"); - // if (index != -1) - // { - // PlayerPrefs.SetString("LastParticleCheckPath", path); - // return path.Substring(index); - // } - // else - // { - // EditorUtility.DisplayDialog("messageBox", - // EditorLocalization.GetLocalization(EditorLocalizationStorage.Def_目录不在Assets下Tip), - // EditorLocalization.GetLocalization(EditorLocalizationStorage.Def_确定)); - // } - // } - // return null; - // } - // - // public static string SaveFile(string defaultName = "", string extension = "") - // { - // string filePath = PlayerPrefs.GetString("LastParticleCheckPath"); - // string path = EditorUtility.SaveFilePanel(EditorLocalization.GetLocalization(EditorLocalizationStorage.Def_保存), filePath, defaultName, extension); - // if (path != "") - // { - // int index = path.IndexOf("Assets"); - // if (index != -1) - // { - // PlayerPrefs.SetString("LastParticleCheckPath", path); - // return path.Substring(index); - // } - // else - // { - // EditorUtility.DisplayDialog("messageBox", - // EditorLocalization.GetLocalization(EditorLocalizationStorage.Def_目录不在Assets下Tip), - // EditorLocalization.GetLocalization(EditorLocalizationStorage.Def_确定)); - // } - // } - // return null; - // } - // #endregion - - public static int EnumPopupEx(Rect rect, string label, Type type, int enumValueIndex, string[] labels) - { - int[] ints = (int[])Enum.GetValues(type); - string[] strings = Enum.GetNames(type); - if (labels.Length != ints.Length) - { - return EditorGUI.IntPopup(rect, label, enumValueIndex, strings, ints); - } - else - { - return EditorGUI.IntPopup(rect, label, enumValueIndex, labels, ints); - } - } - - public static int EnumPopupLayoutEx(string label, Type type, int enumValueIndex, string[] labels) - { - int[] ints = (int[])Enum.GetValues(type); - string[] strings = Enum.GetNames(type); - if (labels.Length != ints.Length) - { - return EditorGUILayout.IntPopup(label, enumValueIndex, strings, ints); - } - else - { - return EditorGUILayout.IntPopup(label, enumValueIndex, labels, ints); - } - } - } -} -#endif \ No newline at end of file diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Common/Utils/Utils.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/Common/Utils/Utils.cs.meta deleted file mode 100644 index 8b6906b..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Common/Utils/Utils.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a90c428d74014a66a7e8c0c3faacd176 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Config.meta b/Client/Packages/com.alicizax.uxtool/Editor/Config.meta deleted file mode 100644 index 8d18578..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Config.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b38dd3e8fb89442baf34c39c99abf56d -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Config/UXPrefabTabsConfig.cs b/Client/Packages/com.alicizax.uxtool/Editor/Config/UXPrefabTabsConfig.cs deleted file mode 100644 index 0443832..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Config/UXPrefabTabsConfig.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System.Collections.Generic; -using System.IO; -using UnityEditor; - -namespace AlicizaX.UXTool -{ - [System.Serializable] - [FilePath("ProjectSettings/UXPrefabTabsConfig.asset")] - internal class UXPrefabTabsConfig : ScriptableSingleton - { - public List tabs = new(); - - public void SyncTabs() - { - var dirty = false; - for (int i = 0; i < tabs.Count; i++) - { - string assetPath = AssetDatabase.GUIDToAssetPath(tabs[i]); -#if UNITY_6000_OR_NEWER - if (string.IsNullOrEmpty(assetPath) || !AssetDatabase.AssetPathExists(assetPath)) - { - tabs.RemoveAt(i); - dirty = true; - } -#else - if (string.IsNullOrEmpty(assetPath) || !File.Exists(assetPath)) - { - tabs.RemoveAt(i); - dirty = true; - } -#endif - } - - if (dirty) Save(); - } - } -} diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Config/UXPrefabTabsConfig.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/Config/UXPrefabTabsConfig.cs.meta deleted file mode 100644 index dcbb9db..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Config/UXPrefabTabsConfig.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c9f1c3d755f245759b4595b65b5e576e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Def.meta b/Client/Packages/com.alicizax.uxtool/Editor/Def.meta deleted file mode 100644 index 2ffce27..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Def.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f206d2f1a2fd4f81b95496801251b88c -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Def/Def_UXGUIPath.cs b/Client/Packages/com.alicizax.uxtool/Editor/Def/Def_UXGUIPath.cs deleted file mode 100644 index c3aedec..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Def/Def_UXGUIPath.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.IO; - -namespace AlicizaX.UXTool -{ - public static class Def_UXGUIPath - { - public static readonly string ConfigPath = "Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Config"; - - public static readonly string ComponentRes = "Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Component/"; - - public static readonly string UIResRootPath = "Assets/Bundles/UI"; - public static readonly string DefaultLayoutPath = "Assets/Default.wlt"; - } -} diff --git a/Client/Packages/com.alicizax.uxtool/Editor/Def/Def_UXGUIPath.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/Def/Def_UXGUIPath.cs.meta deleted file mode 100644 index 95dc333..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/Def/Def_UXGUIPath.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8ef1696f4c864c8c840cb2e637e72189 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI.meta deleted file mode 100644 index 614ace1..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3f498c2f64bbd1e4589a9c8058380495 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res.meta deleted file mode 100644 index 8851087..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e45fc341a3c39f547b39cce778b1c136 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Component.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Component.meta deleted file mode 100644 index 2e51544..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Component.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 9768513809263534088a2f32ed7c34f5 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Component/UIStage.prefab b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Component/UIStage.prefab deleted file mode 100644 index a61b1ed..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Component/UIStage.prefab +++ /dev/null @@ -1,92 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &6407046066269117143 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6186567549948268087} - - component: {fileID: 2482112926894068853} - - component: {fileID: 7955690355910783094} - - component: {fileID: 9148593535310968807} - m_Layer: 5 - m_Name: UIStage - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6186567549948268087 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6407046066269117143} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, 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!223 &2482112926894068853 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6407046066269117143} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 1 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 1 - m_AdditionalShaderChannelsFlag: 27 - m_UpdateRectTransformForStandalone: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!114 &7955690355910783094 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6407046066269117143} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &9148593535310968807 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6407046066269117143} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 21d71bc4606dce64fb65869d11d782df, type: 3} - m_Name: - m_EditorClassIdentifier: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Component/UIStage.prefab.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Component/UIStage.prefab.meta deleted file mode 100644 index 7a9792c..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Component/UIStage.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 0d29cbf8bba5fb34a87e59a5b6ead9a9 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Component/View.prefab b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Component/View.prefab deleted file mode 100644 index f63433b..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Component/View.prefab +++ /dev/null @@ -1,155 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &1398347742421458328 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4677800691646643621} - - component: {fileID: 5154831573443284405} - - component: {fileID: 4279721120777329907} - m_Layer: 0 - m_Name: View - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4677800691646643621 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1398347742421458328} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1431218276088536921} - 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, y: 0} ---- !u!223 &5154831573443284405 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1398347742421458328} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 1 - m_AdditionalShaderChannelsFlag: 0 - m_UpdateRectTransformForStandalone: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!114 &4279721120777329907 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1398347742421458328} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!1 &8524026683550576887 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1431218276088536921} - - component: {fileID: 4882821455657707705} - - component: {fileID: 2892262279528891506} - m_Layer: 0 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1431218276088536921 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8524026683550576887} - 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: 4677800691646643621} - 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 &4882821455657707705 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8524026683550576887} - m_CullTransparentMesh: 1 ---- !u!114 &2892262279528891506 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8524026683550576887} - 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.3962264, g: 0.3962264, b: 0.3962264, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Component/View.prefab.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Component/View.prefab.meta deleted file mode 100644 index feadbdf..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Component/View.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 3b558d5df13733448af9e24b0c779294 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Config.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Config.meta deleted file mode 100644 index 48d0c4f..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Config.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 0fdf05c5b631e734ba52458209687d6a -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Config/DesignLayout.wlt b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Config/DesignLayout.wlt deleted file mode 100644 index 516ea8d..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Config/DesignLayout.wlt +++ /dev/null @@ -1,1492 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &1 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_PixelRect: - serializedVersion: 2 - x: 1920 - y: 48 - width: 1920 - height: 997 - m_ShowMode: 4 - m_Title: UXHierachy - m_RootView: {fileID: 8} - m_MinSize: {x: 875, y: 300} - m_MaxSize: {x: 10000, y: 10000} - m_Maximized: 1 ---- !u!114 &2 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} - m_Name: PrefabTreeViewWindow - m_EditorClassIdentifier: - m_Children: [] - m_Position: - serializedVersion: 2 - x: 0 - y: 0 - width: 227 - height: 941 - m_MinSize: {x: 421, y: 326} - m_MaxSize: {x: 4001, y: 4026} - m_ActualView: {fileID: 12} - m_Panes: - - {fileID: 12} - m_Selected: 0 - m_LastSelected: 0 ---- !u!114 &3 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} - m_Name: ConsoleWindow - m_EditorClassIdentifier: - m_Children: [] - m_Position: - serializedVersion: 2 - x: 0 - y: 690 - width: 455 - height: 251 - m_MinSize: {x: 51, y: 76} - m_MaxSize: {x: 4001, y: 4026} - m_ActualView: {fileID: 16} - m_Panes: - - {fileID: 16} - m_Selected: 0 - m_LastSelected: 0 ---- !u!114 &4 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_Children: - - {fileID: 6} - - {fileID: 3} - m_Position: - serializedVersion: 2 - x: 1465 - y: 0 - width: 455 - height: 941 - m_MinSize: {x: 100, y: 100} - m_MaxSize: {x: 8096, y: 16192} - vertical: 1 - controlID: 35315 - draggingID: 0 ---- !u!114 &5 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} - m_Name: UXHierachyWindow - m_EditorClassIdentifier: - m_Children: [] - m_Position: - serializedVersion: 2 - x: 227 - y: 0 - width: 245 - height: 941 - m_MinSize: {x: 52, y: 76} - m_MaxSize: {x: 4002, y: 4026} - m_ActualView: {fileID: 13} - m_Panes: - - {fileID: 13} - m_Selected: 0 - m_LastSelected: 0 ---- !u!114 &6 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} - m_Name: InspectorWindow - m_EditorClassIdentifier: - m_Children: [] - m_Position: - serializedVersion: 2 - x: 0 - y: 0 - width: 455 - height: 690 - m_MinSize: {x: 276, y: 76} - m_MaxSize: {x: 4001, y: 4026} - m_ActualView: {fileID: 18} - m_Panes: - - {fileID: 18} - - {fileID: 15} - - {fileID: 14} - m_Selected: 0 - m_LastSelected: 1 ---- !u!114 &7 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_Children: - - {fileID: 2} - - {fileID: 5} - - {fileID: 11} - - {fileID: 4} - m_Position: - serializedVersion: 2 - x: 0 - y: 36 - width: 1920 - height: 941 - m_MinSize: {x: 400, y: 100} - m_MaxSize: {x: 32384, y: 16192} - vertical: 0 - controlID: 35269 - draggingID: 0 ---- !u!114 &8 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12008, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_Children: - - {fileID: 9} - - {fileID: 7} - - {fileID: 10} - m_Position: - serializedVersion: 2 - x: 0 - y: 0 - width: 1920 - height: 997 - m_MinSize: {x: 875, y: 300} - m_MaxSize: {x: 10000, y: 10000} - m_UseTopView: 1 - m_TopViewHeight: 36 - m_UseBottomView: 1 - m_BottomViewHeight: 20 ---- !u!114 &9 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12011, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_Children: [] - m_Position: - serializedVersion: 2 - x: 0 - y: 0 - width: 1920 - height: 36 - m_MinSize: {x: 0, y: 0} - m_MaxSize: {x: 0, y: 0} - m_LastLoadedLayoutName: DesignLayout ---- !u!114 &10 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12042, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_Children: [] - m_Position: - serializedVersion: 2 - x: 0 - y: 977 - width: 1920 - height: 20 - m_MinSize: {x: 0, y: 0} - m_MaxSize: {x: 0, y: 0} ---- !u!114 &11 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} - m_Name: SceneView - m_EditorClassIdentifier: - m_Children: [] - m_Position: - serializedVersion: 2 - x: 472 - y: 0 - width: 993 - height: 941 - m_MinSize: {x: 202, y: 226} - m_MaxSize: {x: 4002, y: 4026} - m_ActualView: {fileID: 19} - m_Panes: - - {fileID: 19} - - {fileID: 17} - m_Selected: 0 - m_LastSelected: 1 ---- !u!114 &12 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc4810274e14449aa8d6e0f9ef1ad21a, type: 3} - m_Name: - m_EditorClassIdentifier: - m_MinSize: {x: 420, y: 300} - m_MaxSize: {x: 4000, y: 4000} - m_TitleContent: - m_Text: Prefab Tree View - m_Image: {fileID: 0} - m_Tooltip: - m_TextWithWhitespace: "Prefab Tree View\u200B" - m_Pos: - serializedVersion: 2 - x: 0 - y: 24 - width: 226 - height: 915 - m_SerializedDataModeController: - m_DataMode: 0 - m_PreferredDataMode: 0 - m_SupportedDataModes: - isAutomatic: 1 - m_ViewDataDictionary: {fileID: 0} - m_OverlayCanvas: - m_LastAppliedPresetName: Default - m_SaveData: [] - m_ContainerData: [] - m_OverlaysVisible: 1 ---- !u!114 &13 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 460b36db23659db4cb26ee8ba3234ad9, type: 3} - m_Name: - m_EditorClassIdentifier: - m_MinSize: {x: 50, y: 50} - m_MaxSize: {x: 4000, y: 4000} - m_TitleContent: - m_Text: UXHierachy - m_Image: {fileID: 0} - m_Tooltip: - m_TextWithWhitespace: "UXHierachy\u200B" - m_Pos: - serializedVersion: 2 - x: 2147 - y: 84 - width: 243 - height: 915 - m_SerializedDataModeController: - m_DataMode: 0 - m_PreferredDataMode: 0 - m_SupportedDataModes: - isAutomatic: 1 - m_ViewDataDictionary: {fileID: 0} - m_OverlayCanvas: - m_LastAppliedPresetName: Default - m_SaveData: [] - m_ContainerData: [] - m_OverlaysVisible: 1 ---- !u!114 &14 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 12014, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_MinSize: {x: 230, y: 250} - m_MaxSize: {x: 10000, y: 10000} - m_TitleContent: - m_Text: Project - m_Image: {fileID: -5467254957812901981, guid: 0000000000000000d000000000000000, type: 0} - m_Tooltip: - m_TextWithWhitespace: "Project\u200B" - m_Pos: - serializedVersion: 2 - x: 3385 - y: 84 - width: 454 - height: 664 - m_SerializedDataModeController: - m_DataMode: 0 - m_PreferredDataMode: 0 - m_SupportedDataModes: - isAutomatic: 1 - m_ViewDataDictionary: {fileID: 0} - m_OverlayCanvas: - m_LastAppliedPresetName: Default - m_SaveData: [] - m_ContainerData: [] - m_OverlaysVisible: 1 - m_SearchFilter: - m_NameFilter: - m_ClassNames: [] - m_AssetLabels: [] - m_AssetBundleNames: [] - m_ReferencingInstanceIDs: - m_SceneHandles: - m_ShowAllHits: 0 - m_SkipHidden: 0 - m_SearchArea: 1 - m_Folders: [] - m_Globs: [] - m_ProductIds: - m_AnyWithAssetOrigin: 0 - m_OriginalText: - m_ImportLogFlags: 0 - m_FilterByTypeIntersection: 0 - m_ViewMode: 0 - m_StartGridSize: 16 - m_LastFolders: [] - m_LastFoldersGridSize: -1 - m_LastProjectPath: G:\UnityProject\AlicizaUXTool - m_LockTracker: - m_IsLocked: 0 - m_FolderTreeState: - scrollPos: {x: 0, y: 0} - m_SelectedIDs: 56b40000 - m_LastClickedID: 46166 - m_ExpandedIDs: ffffffff00000000a6a70000a8a70000aaa70000aca70000aea70000b0a70000b2a70000b4a70000b6a70000b8a70000baa70000c0a70000c2a70000c4a70000c6a70000caa70000d0a70000d6a70000d8a70000daa70000dea70000e0a70000e6a70000e8a70000eaa70000eea70000f0a70000f2a70000f4a70000f6a70000f8a70000b8a90000c0aa0000caaa0000e2aa0000e4aa0000e8aa0000ecaa0000eeaa0000f4aa0000f6aa000000ab000002b8000052b80000a2b8000000ca9a3bffffff7f - m_RenameOverlay: - m_UserAcceptedRename: 0 - m_Name: - m_OriginalName: - m_EditFieldRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0 - height: 0 - m_UserData: 0 - m_IsWaitingForDelay: 0 - m_IsRenaming: 0 - m_OriginalEventType: 11 - m_IsRenamingFilename: 1 - m_TrimLeadingAndTrailingWhitespace: 0 - m_ClientGUIView: {fileID: 0} - m_SearchString: - m_CreateAssetUtility: - m_EndAction: {fileID: 0} - m_InstanceID: 0 - m_Path: - m_Icon: {fileID: 0} - m_ResourceFile: - m_AssetTreeState: - scrollPos: {x: 0, y: 0} - m_SelectedIDs: e6f50000 - m_LastClickedID: 0 - m_ExpandedIDs: ffffffff00000000a6a70000a8a70000aaa70000aca70000aea70000b0a70000b2a70000b4a70000b6a70000b8a70000baa70000c0a70000c2a70000c4a70000c6a70000caa70000d0a70000d6a70000d8a70000daa70000dea70000e0a70000e6a70000e8a70000eaa70000eea70000f0a70000f2a70000f4a70000f6a70000f8a70000b8a90000c0aa0000caaa0000e2aa0000e4aa0000e8aa0000ecaa0000eeaa0000f4aa0000f6aa000000ab000002b8000052b80000a2b8000000ca9a3bffffff7f - m_RenameOverlay: - m_UserAcceptedRename: 0 - m_Name: - m_OriginalName: - m_EditFieldRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0 - height: 0 - m_UserData: 0 - m_IsWaitingForDelay: 0 - m_IsRenaming: 0 - m_OriginalEventType: 11 - m_IsRenamingFilename: 1 - m_TrimLeadingAndTrailingWhitespace: 0 - m_ClientGUIView: {fileID: 0} - m_SearchString: - m_CreateAssetUtility: - m_EndAction: {fileID: 0} - m_InstanceID: 0 - m_Path: - m_Icon: {fileID: 0} - m_ResourceFile: - m_ListAreaState: - m_SelectedInstanceIDs: e6f50000 - m_LastClickedInstanceID: 62950 - m_HadKeyboardFocusLastEvent: 0 - m_ExpandedInstanceIDs: - m_RenameOverlay: - m_UserAcceptedRename: 0 - m_Name: - m_OriginalName: - m_EditFieldRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0 - height: 0 - m_UserData: 0 - m_IsWaitingForDelay: 0 - m_IsRenaming: 0 - m_OriginalEventType: 11 - m_IsRenamingFilename: 1 - m_TrimLeadingAndTrailingWhitespace: 0 - m_ClientGUIView: {fileID: 0} - m_CreateAssetUtility: - m_EndAction: {fileID: 0} - m_InstanceID: 0 - m_Path: - m_Icon: {fileID: 0} - m_ResourceFile: - m_NewAssetIndexInList: -1 - m_ScrollPosition: {x: 0, y: 0} - m_GridSize: 16 - m_SkipHiddenPackages: 0 - m_DirectoriesAreaWidth: 157.5 ---- !u!114 &15 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 12061, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_MinSize: {x: 50, y: 50} - m_MaxSize: {x: 4000, y: 4000} - m_TitleContent: - m_Text: Hierarchy - m_Image: {fileID: 7966133145522015247, guid: 0000000000000000d000000000000000, type: 0} - m_Tooltip: - m_TextWithWhitespace: "Hierarchy\u200B" - m_Pos: - serializedVersion: 2 - x: 3385 - y: 84 - width: 454 - height: 664 - m_SerializedDataModeController: - m_DataMode: 0 - m_PreferredDataMode: 0 - m_SupportedDataModes: - isAutomatic: 1 - m_ViewDataDictionary: {fileID: 0} - m_OverlayCanvas: - m_LastAppliedPresetName: Default - m_SaveData: [] - m_ContainerData: [] - m_OverlaysVisible: 1 - m_SceneHierarchy: - m_TreeViewState: - scrollPos: {x: 0, y: 0} - m_SelectedIDs: e6f50000 - m_LastClickedID: 62950 - m_ExpandedIDs: 3662feff4262feffe8f50000 - m_RenameOverlay: - m_UserAcceptedRename: 0 - m_Name: - m_OriginalName: - m_EditFieldRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0 - height: 0 - m_UserData: 0 - m_IsWaitingForDelay: 0 - m_IsRenaming: 0 - m_OriginalEventType: 11 - m_IsRenamingFilename: 0 - m_TrimLeadingAndTrailingWhitespace: 0 - m_ClientGUIView: {fileID: 0} - m_SearchString: - m_ExpandedScenes: [] - m_CurrenRootInstanceID: 0 - m_LockTracker: - m_IsLocked: 0 - m_CurrentSortingName: TransformSorting - m_WindowGUID: 41c0050a86990064a9eb3e2eb22c25c3 ---- !u!114 &16 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 12003, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_MinSize: {x: 50, y: 50} - m_MaxSize: {x: 4000, y: 4000} - m_TitleContent: - m_Text: Console - m_Image: {fileID: -4327648978806127646, guid: 0000000000000000d000000000000000, type: 0} - m_Tooltip: - m_TextWithWhitespace: "Console\u200B" - m_Pos: - serializedVersion: 2 - x: 1 - y: 714 - width: 454 - height: 225 - m_SerializedDataModeController: - m_DataMode: 0 - m_PreferredDataMode: 0 - m_SupportedDataModes: - isAutomatic: 1 - m_ViewDataDictionary: {fileID: 0} - m_OverlayCanvas: - m_LastAppliedPresetName: Default - m_SaveData: [] - m_ContainerData: [] - m_OverlaysVisible: 1 ---- !u!114 &17 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_MinSize: {x: 50, y: 50} - m_MaxSize: {x: 4000, y: 4000} - m_TitleContent: - m_Text: Game - m_Image: {fileID: -6423792434712278376, guid: 0000000000000000d000000000000000, type: 0} - m_Tooltip: - m_TextWithWhitespace: "Game\u200B" - m_Pos: - serializedVersion: 2 - x: 2508 - y: 84 - width: 979 - height: 915 - m_SerializedDataModeController: - m_DataMode: 0 - m_PreferredDataMode: 0 - m_SupportedDataModes: - isAutomatic: 1 - m_ViewDataDictionary: {fileID: 0} - m_OverlayCanvas: - m_LastAppliedPresetName: Default - m_SaveData: [] - m_ContainerData: [] - m_OverlaysVisible: 1 - m_SerializedViewNames: [] - m_SerializedViewValues: [] - m_PlayModeViewName: GameView - m_ShowGizmos: 0 - m_TargetDisplay: 0 - m_ClearColor: {r: 0, g: 0, b: 0, a: 0} - m_TargetSize: {x: 1920, y: 1080} - m_TextureFilterMode: 0 - m_TextureHideFlags: 61 - m_RenderIMGUI: 1 - m_EnterPlayModeBehavior: 0 - m_UseMipMap: 0 - m_VSyncEnabled: 0 - m_Gizmos: 0 - m_Stats: 0 - m_SelectedSizes: 03000000000000000000000000000000000000000000000000000000000000000000000000000000 - m_ZoomArea: - m_HRangeLocked: 0 - m_VRangeLocked: 0 - hZoomLockedByDefault: 0 - vZoomLockedByDefault: 0 - m_HBaseRangeMin: -960 - m_HBaseRangeMax: 960 - m_VBaseRangeMin: -540 - m_VBaseRangeMax: 540 - m_HAllowExceedBaseRangeMin: 1 - m_HAllowExceedBaseRangeMax: 1 - m_VAllowExceedBaseRangeMin: 1 - m_VAllowExceedBaseRangeMax: 1 - m_ScaleWithWindow: 0 - m_HSlider: 1 - m_VSlider: 0 - m_IgnoreScrollWheelUntilClicked: 0 - m_EnableMouseInput: 1 - m_EnableSliderZoomHorizontal: 0 - m_EnableSliderZoomVertical: 0 - m_UniformScale: 1 - m_UpDirection: 1 - m_DrawArea: - serializedVersion: 2 - x: 0 - y: 21 - width: 979 - height: 894 - m_Scale: {x: 0.50989586, y: 0.50989586} - m_Translation: {x: 489.49997, y: 447} - m_MarginLeft: 0 - m_MarginRight: 0 - m_MarginTop: 0 - m_MarginBottom: 0 - m_LastShownAreaInsideMargins: - serializedVersion: 2 - x: -959.9999 - y: -876.6496 - width: 1919.9999 - height: 1753.2992 - m_MinimalGUI: 1 - m_defaultScale: 0.50989586 - m_LastWindowPixelSize: {x: 979, y: 915} - m_ClearInEditMode: 1 - m_NoCameraWarning: 1 - m_LowResolutionForAspectRatios: 01000000000000000000 - m_XRRenderMode: 0 - m_RenderTexture: {fileID: 0} ---- !u!114 &18 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 12019, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_MinSize: {x: 275, y: 50} - m_MaxSize: {x: 4000, y: 4000} - m_TitleContent: - m_Text: Inspector - m_Image: {fileID: -2667387946076563598, guid: 0000000000000000d000000000000000, type: 0} - m_Tooltip: - m_TextWithWhitespace: "Inspector\u200B" - m_Pos: - serializedVersion: 2 - x: 1 - y: 24 - width: 454 - height: 664 - m_SerializedDataModeController: - m_DataMode: 0 - m_PreferredDataMode: 0 - m_SupportedDataModes: - isAutomatic: 1 - m_ViewDataDictionary: {fileID: 0} - m_OverlayCanvas: - m_LastAppliedPresetName: Default - m_SaveData: [] - m_ContainerData: [] - m_OverlaysVisible: 1 - m_ObjectsLockedBeforeSerialization: [] - m_InstanceIDsLockedBeforeSerialization: - m_PreviewResizer: - m_CachedPref: -165 - m_ControlHash: 1412526313 - m_PrefName: Preview_InspectorPreview - m_LastInspectedObjectInstanceID: -1 - m_LastVerticalScrollValue: 0 - m_GlobalObjectId: - m_InspectorMode: 0 - m_LockTracker: - m_IsLocked: 0 - m_PreviewWindow: {fileID: 0} ---- !u!114 &19 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12013, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_MinSize: {x: 200, y: 200} - m_MaxSize: {x: 4000, y: 4000} - m_TitleContent: - m_Text: Scene - m_Image: {fileID: 2593428753322112591, guid: 0000000000000000d000000000000000, type: 0} - m_Tooltip: - m_TextWithWhitespace: "Scene\u200B" - m_Pos: - serializedVersion: 2 - x: 2392 - y: 84 - width: 991 - height: 915 - m_SerializedDataModeController: - m_DataMode: 0 - m_PreferredDataMode: 0 - m_SupportedDataModes: - isAutomatic: 1 - m_ViewDataDictionary: {fileID: 0} - m_OverlayCanvas: - m_LastAppliedPresetName: Default - m_SaveData: - - dockPosition: 0 - containerId: overlay-toolbar__top - displayed: 0 - id: Tool Settings - index: 0 - contents: '{"m_Layout":1,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":-161.0,"y":-26.0},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":3,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: -161, y: -26} - snapOffsetDelta: {x: 0, y: 0} - snapCorner: 3 - layout: 1 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 0 - containerId: overlay-toolbar__top - displayed: 0 - id: unity-grid-and-snap-toolbar - index: 1 - contents: '{"m_Layout":1,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":149.0,"y":25.0},"m_SnapOffsetDelta":{"x":0.0,"y":42.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 149, y: 25} - snapOffsetDelta: {x: 0, y: 42} - snapCorner: 0 - layout: 1 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-toolbar__top - displayed: 0 - id: unity-scene-view-toolbar - index: 0 - contents: '{"m_Layout":1,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":24.0,"y":25.0},"m_SnapOffsetDelta":{"x":0.0,"y":42.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 24, y: 25} - snapOffsetDelta: {x: 0, y: 42} - snapCorner: 0 - layout: 1 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-toolbar__top - displayed: 0 - id: unity-search-toolbar - index: 2 - contents: '{"m_Layout":1,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":-24.0,"y":67.0},"m_FloatingSnapCorner":1,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: -24, y: 67} - snapCorner: 1 - layout: 1 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 0 - containerId: overlay-toolbar__left - displayed: 0 - id: unity-transform-toolbar - index: 3 - contents: '{"m_Layout":2,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":24.0,"y":-26.0},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":2,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 24, y: -26} - snapOffsetDelta: {x: 0, y: 0} - snapCorner: 2 - layout: 2 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 0 - containerId: overlay-container--left - displayed: 1 - id: unity-component-tools - index: 1 - contents: - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 197} - snapOffsetDelta: {x: 0, y: 0} - snapCorner: 0 - layout: 2 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 0 - containerId: overlay-container--right - displayed: 1 - id: Orientation - index: 0 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":24.0,"y":67.0},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 24, y: 67} - snapOffsetDelta: {x: 0, y: 0} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: Scene View/Light Settings - index: 0 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":67.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 24, y: 67} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: Scene View/Camera - index: 1 - contents: - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: -117} - snapOffsetDelta: {x: 0, y: 0} - snapCorner: 2 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: Scene View/Cloth Constraints - index: 1 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":67.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 24, y: 67} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: Scene View/Cloth Collisions - index: 2 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":67.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 24, y: 67} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: Scene View/Navmesh Display - index: 4 - contents: - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 0, y: 0} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: Scene View/Agent Display - index: 5 - contents: - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 0, y: 0} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: Scene View/Obstacle Display - index: 6 - contents: - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 0, y: 0} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: Scene View/Occlusion Culling - index: 3 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":67.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 24, y: 67} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: Scene View/Physics Debugger - index: 4 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":67.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 24, y: 67} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: Scene View/Scene Visibility - index: 5 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":67.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 24, y: 67} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: Scene View/Particles - index: 6 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":67.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 24, y: 67} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: Scene View/Tilemap - index: 11 - contents: - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 0, y: 0} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: Scene View/Tilemap Palette Helper - index: 12 - contents: - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 0, y: 0} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-toolbar__top - displayed: 0 - id: Scene View/Open Tile Palette - index: 3 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 24, y: 0} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-toolbar__top - displayed: 0 - id: Scene View/Tilemap Focus - index: 4 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 24, y: 0} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 0 - containerId: Floating - displayed: 0 - id: AINavigationOverlay - index: 0 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":true,"m_FloatingSnapOffset":{"x":-216.0,"y":-236.0},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":3,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 1 - collapsed: 0 - snapOffset: {x: -216, y: -236} - snapOffsetDelta: {x: 0, y: 0} - snapCorner: 3 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: APV Overlay - index: 8 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":48.0,"y":48.0},"m_SnapOffsetDelta":{"x":0.0,"y":19.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 48, y: 48} - snapOffsetDelta: {x: 0, y: 19} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: Scene View/TrailRenderer - index: 7 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":48.0,"y":48.0},"m_SnapOffsetDelta":{"x":0.0,"y":19.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 48, y: 48} - snapOffsetDelta: {x: 0, y: 19} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 1 - id: UnityEditor.SceneViewCameraOverlay - index: 10 - contents: - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 25} - snapOffsetDelta: {x: 0, y: 0} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 1 - id: UnityEditor.SceneViewCameraOverlay (0) - index: 11 - contents: - floating: 0 - collapsed: 0 - snapOffset: {x: 48, y: 48} - snapOffsetDelta: {x: 0, y: 0} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 0 - containerId: overlay-toolbar__top - displayed: 0 - id: Brush Attributes - index: 2 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":67.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 24, y: 67} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-toolbar__top - displayed: 0 - id: unity-scene-view-camera-mode-toolbar - index: 1 - contents: '{"m_Layout":1,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":24.0,"y":25.0},"m_SnapOffsetDelta":{"x":0.0,"y":42.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 24, y: 25} - snapOffsetDelta: {x: 0, y: 42} - snapCorner: 0 - layout: 1 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 0 - containerId: overlay-toolbar__left - displayed: 0 - id: Terrain Tools - index: 1 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":67.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 24, y: 67} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 0 - containerId: overlay-toolbar__left - displayed: 0 - id: Brush Masks - index: 2 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":67.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 24, y: 67} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--left - displayed: 0 - id: Scene View/Lighting Visualization Colors - index: 0 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":67.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 24, y: 67} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 0 - containerId: overlay-toolbar__bottom - displayed: 0 - id: Overlays/OverlayMenu - index: 0 - contents: '{"m_Layout":1,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":24.0,"y":-56.0},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":2,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 24, y: -56} - snapOffsetDelta: {x: 0, y: 0} - snapCorner: 2 - layout: 1 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: Scene View/Tile Palette Clipboard - index: 0 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 24, y: 0} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: Scene View/Tile Palette Brush Pick - index: 2 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 24, y: 0} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: SceneView/CamerasOverlay - index: 9 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":67.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 24, y: 67} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: Scene View/PBR Validation Settings - index: 10 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":67.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 24, y: 67} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: unity-spline-inspector - index: 13 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":0.0,"y":0.0},"m_SnapOffsetDelta":{"x":24.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 0, y: 0} - snapOffsetDelta: {x: 24, y: 0} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 0 - containerId: overlay-toolbar__left - displayed: 1 - id: Align - index: 0 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":24.0,"y":25.0},"m_SnapOffsetDelta":{"x":0.0,"y":42.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 24, y: 25} - snapOffsetDelta: {x: 0, y: 42} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 0 - id: Align (0) - index: 11 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":24.0,"y":25.0},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 24, y: 25} - snapOffsetDelta: {x: 0, y: 0} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 1 - containerId: overlay-container--right - displayed: 1 - id: Stretch - index: 11 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":24.0,"y":25.0},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":0,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: 24, y: 25} - snapOffsetDelta: {x: 0, y: 0} - snapCorner: 0 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - - dockPosition: 0 - containerId: overlay-toolbar__left - displayed: 1 - id: QuickBar - index: 4 - contents: '{"m_Layout":4,"m_Collapsed":false,"m_Floating":false,"m_FloatingSnapOffset":{"x":-118.0,"y":-43.0},"m_SnapOffsetDelta":{"x":0.0,"y":0.0},"m_FloatingSnapCorner":3,"m_Size":{"x":0.0,"y":0.0},"m_SizeOverridden":false}' - floating: 0 - collapsed: 0 - snapOffset: {x: -118, y: -43} - snapOffsetDelta: {x: 0, y: 0} - snapCorner: 3 - layout: 4 - size: {x: 0, y: 0} - sizeOverridden: 0 - m_ContainerData: - - containerId: overlay-toolbar__top - scrollOffset: 0 - - containerId: overlay-toolbar__left - scrollOffset: 0 - - containerId: overlay-container--left - scrollOffset: 0 - - containerId: overlay-container--right - scrollOffset: 0 - - containerId: overlay-toolbar__right - scrollOffset: 0 - - containerId: overlay-toolbar__bottom - scrollOffset: 0 - - containerId: Floating - scrollOffset: 0 - m_OverlaysVisible: 1 - m_WindowGUID: cc27987af1a868c49b0894db9c0f5429 - m_Gizmos: 1 - m_OverrideSceneCullingMask: 0 - m_SceneIsLit: 0 - m_SceneLighting: 1 - m_2DMode: 1 - m_isRotationLocked: 0 - m_PlayAudio: 0 - m_AudioPlay: 0 - m_DebugDrawModesUseInteractiveLightBakingData: 0 - m_Position: - m_Target: {x: 881.8752, y: -260.9247, z: -10.264009} - speed: 2 - m_Value: {x: 901.4082, y: -225.73424, z: -9.606708} - m_RenderMode: 0 - m_CameraMode: - drawMode: 0 - name: Shaded - section: Shading Mode - m_ValidateTrueMetals: 0 - m_DoValidateTrueMetals: 0 - m_SceneViewState: - m_AlwaysRefresh: 0 - showFog: 1 - showSkybox: 0 - showFlares: 1 - showImageEffects: 1 - showParticleSystems: 1 - showVisualEffectGraphs: 1 - m_FxEnabled: 1 - m_Grid: - xGrid: - m_Fade: - m_Target: 0 - speed: 2 - m_Value: 0 - m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} - m_Pivot: {x: 0, y: 0, z: 0} - m_Size: {x: 0, y: 0} - yGrid: - m_Fade: - m_Target: 0 - speed: 2 - m_Value: 0 - m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} - m_Pivot: {x: 0, y: 0, z: 0} - m_Size: {x: 1, y: 1} - zGrid: - m_Fade: - m_Target: 1 - speed: 2 - m_Value: 1 - m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} - m_Pivot: {x: 0, y: 0, z: 0} - m_Size: {x: 1, y: 1} - m_ShowGrid: 1 - m_GridAxis: 1 - m_gridOpacity: 0.5 - m_Rotation: - m_Target: {x: 0, y: 0, z: 0, w: 1} - speed: 2 - m_Value: {x: 0, y: 0, z: 0, w: 1} - m_Size: - m_Target: 1526.4009 - speed: 2 - m_Value: 1460.6707 - m_Ortho: - m_Target: 1 - speed: 2 - m_Value: 1 - m_CameraSettings: - m_Speed: 1 - m_SpeedNormalized: 0.5 - m_SpeedMin: 0.001 - m_SpeedMax: 2 - m_EasingEnabled: 1 - m_EasingDuration: 0.4 - m_AccelerationEnabled: 1 - m_FieldOfViewHorizontalOrVertical: 60 - m_NearClip: 0.03 - m_FarClip: 10000 - m_DynamicClip: 1 - m_OcclusionCulling: 0 - m_LastSceneViewRotation: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226} - m_LastSceneViewOrtho: 0 - m_Viewpoint: - m_SceneView: {fileID: 19} - m_CameraOverscanSettings: - m_Opacity: 50 - m_Scale: 1 - m_ReplacementShader: {fileID: 0} - m_ReplacementString: - m_SceneVisActive: 1 - m_LastLockedObject: {fileID: 0} - m_LastDebugDrawMode: 35 - m_ViewIsLockedToObject: 0 diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Config/DesignLayout.wlt.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Config/DesignLayout.wlt.meta deleted file mode 100644 index 23f836f..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Config/DesignLayout.wlt.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 4216e337fd7940249a555a2f0543a2da -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView.meta deleted file mode 100644 index e8bbe51..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8db0bb683a284f3192668f83cf1cdf98 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ContextMenu.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ContextMenu.meta deleted file mode 100644 index abcfd0d..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ContextMenu.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 34949e2402051a244b0ba35d0dba372a -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ContextMenu/SceneViewContextMenu.cs b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ContextMenu/SceneViewContextMenu.cs deleted file mode 100644 index 72c5948..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ContextMenu/SceneViewContextMenu.cs +++ /dev/null @@ -1,987 +0,0 @@ -#if UNITY_EDITOR -using UnityEditor; -using UnityEngine; -using System.Collections.Generic; -using UnityEditor.SceneManagement; -using UnityEngine.SceneManagement; -using UnityEngine.UIElements; -using System.Linq; -using UnityEngine.UI; - -namespace AlicizaX.UXTool -{ - public static class SceneViewContextMenu - { - // 右键状态和拖动状态 - private static bool rightMouseDown = false; - private static bool hasDrag = false; - - // 右键菜单的委托,允许外部插件扩展菜单 - public delegate void AddContextMenuFunc(); - - public static AddContextMenuFunc addContextMenuFunc; - - // 用于复制/粘贴RectTransform数据的缓存 - private static RectTransformCache clipboard = null; - - [InitializeOnLoadMethod] - public static void Init() - { - // 在SceneView中注册事件回调 - if (UXDesinUtil.InDesign) - { - SceneView.duringSceneGui += OnSceneGUI; - } - else - { - SceneView.duringSceneGui -= OnSceneGUI; - } - } - - static void OnSceneGUI(SceneView sceneView) - { - if (PrefabStageUtils.InEmptyStage) return; - - // 如果不是右键点击,直接返回 - if (Event.current == null || Event.current.button != 1) - { - return; - } - - // 右键按下,初始化状态 - if (Event.current.type == EventType.MouseDown) - { - hasDrag = false; - rightMouseDown = true; - return; - } - - // 拖动过程中标记状态 - if (Event.current.type == EventType.MouseDrag && rightMouseDown) - { - hasDrag = true; - return; - } - - // 右键松开时弹出菜单 - if (Event.current.type == EventType.MouseUp && rightMouseDown && !hasDrag) - { - HandleRightClick(); - Event.current.Use(); // 防止事件进一步传播 - } - } - - // 右键菜单生成和显示的核心方法 - private static void HandleRightClick() - { - // 生成右键菜单项 - GenerateRectTransformMenu(); - GenerateSelectObjectMenu(); - - // 调用外部扩展菜单 - addContextMenuFunc?.Invoke(); - - // 显示菜单 - ContextMenuUtils.ShowContextMenu(); // 调用修改后的 ShowContextMenu - - // 重置状态 - rightMouseDown = false; - } - - #region RectTransform 操作菜单 - - private static void GenerateRectTransformMenu() - { - if (UXSelectionUtil.gameObjects == null || UXSelectionUtil.gameObjects.Length == 0) return; - if (!(UXSelectionUtil.gameObjects[0].transform is RectTransform)) - { - return; - } - - GameObject[] selected = UXSelectionUtil.gameObjects; - - // 添加分隔符 - ContextMenuUtils.BuildSeparator(); - - // 添加通用菜单项 - AddCommonItem(); - - // 布局与对齐 - ContextMenuUtils.BuildSeparator(); - ContextMenuUtils.BuildContextMenu("对齐/Left", false, () => AlignSelected(AlignType.Left)); - ContextMenuUtils.BuildContextMenu("对齐/Center (水平)", false, () => AlignSelected(AlignType.CenterHorizontal)); - ContextMenuUtils.BuildContextMenu("对齐/Right", false, () => AlignSelected(AlignType.Right)); - ContextMenuUtils.BuildContextMenu("对齐/Top", false, () => AlignSelected(AlignType.Top)); - ContextMenuUtils.BuildContextMenu("对齐/Middle (垂直)", false, () => AlignSelected(AlignType.CenterVertical)); - ContextMenuUtils.BuildContextMenu("对齐/Bottom", false, () => AlignSelected(AlignType.Bottom)); - - ContextMenuUtils.BuildSeparator(); - ContextMenuUtils.BuildContextMenu("分发/水平分发", false, () => DistributeSelected(DistributeAxis.Horizontal)); - ContextMenuUtils.BuildContextMenu("分发/垂直分发", false, () => DistributeSelected(DistributeAxis.Vertical)); - - ContextMenuUtils.BuildSeparator(); - ContextMenuUtils.BuildContextMenu("大小/匹配第一个尺寸", false, () => MatchSizeToFirst()); - ContextMenuUtils.BuildContextMenu("像素对齐/位置取整", false, () => PixelSnapSelected()); - ContextMenuUtils.BuildContextMenu("重置/位置与旋转与缩放", false, () => ResetTransformSelected()); - - ContextMenuUtils.BuildSeparator(); - ContextMenuUtils.BuildContextMenu("锚点/设为四角(保持位置)", false, () => SetAnchorsToCornersKeepPos()); - ContextMenuUtils.BuildContextMenu("锚点/居中锚点(保持位置)", false, () => SetAnchorsToCenterKeepPos()); - - ContextMenuUtils.BuildSeparator(); - ContextMenuUtils.BuildContextMenu("临时操作/复制 RectTransform", false, () => CopyRectTransform()); - ContextMenuUtils.BuildContextMenu("临时操作/粘贴 RectTransform", clipboard == null, () => PasteRectTransform()); - - ContextMenuUtils.BuildSeparator(); - ContextMenuUtils.BuildContextMenu("对象/向前移动(置为最后Sibling)", false, () => BringToFront()); - ContextMenuUtils.BuildContextMenu("对象/发送到最底层(置为第0)", false, () => SendToBack()); - ContextMenuUtils.BuildContextMenu("对象/创建容器并包裹", false, () => CreateContainerAroundSelection()); - ContextMenuUtils.BuildContextMenu("对象/复制(场景内)", false, () => DuplicateSelection()); - ContextMenuUtils.BuildContextMenu("对象/重命名选中", false, () => RenameSelection()); - ContextMenuUtils.BuildContextMenu("对象/选择父对象", false, () => SelectParent()); - ContextMenuUtils.BuildContextMenu("对象/聚焦(场景视图)", false, () => FrameSelection()); - - ContextMenuUtils.BuildSeparator(); - ContextMenuUtils.BuildContextMenu("Graphic/切换 RaycastTarget", false, () => ToggleRaycastTarget()); - ContextMenuUtils.BuildContextMenu("排序/按名称排序同级子项", false, () => SortSiblingsByName()); - - // 如果可以组合RectTransform,则添加组合项 - ContextMenuUtils.BuildSeparator(); - if (CombineWidgetLogic.CanCombine(UXSelectionUtil.gameObjects)) - { - ContextMenuUtils.BuildContextMenu("组合", false, () => CombineWidgetLogic.GenCombineRootRect(UXSelectionUtil.gameObjects)); - } - else - { - ContextMenuUtils.BuildContextMenu("组合", true, null); // Disabled item - } - } - - private static void SetAnchors(GameObject[] selectedObjects) - { - // 这里是设置锚点的逻辑,示例函数 - Debug.Log("设置锚点的功能..."); - } - - #endregion - - private static void AddCommonItem() - { - - } - - #region UI 选择菜单 - - private static void GenerateSelectObjectMenu() - { - var prefabStage = PrefabStageUtils.GetCurrentPrefabStage(); - List inSceneObjs = GetAllUIObjects(prefabStage); - - // 获取鼠标位置并转换为屏幕坐标(GUI坐标调整) - Camera camera = SceneView.currentDrawingSceneView.camera; - Vector2 mousePosGui = Event.current.mousePosition; - Vector2 mousePos = new Vector2(mousePosGui.x, camera.pixelHeight - mousePosGui.y); - - // 排序UI对象 - SortedList sortedUIObjects = SortUIObjects(inSceneObjs); - - // 将UI对象添加到菜单中 - foreach (string key in sortedUIObjects.Keys) - { - RectTransform obj = sortedUIObjects[key]; - if (RectTransformUtility.RectangleContainsScreenPoint(obj, mousePos, camera)) - { - ContextMenuUtils.BuildContextMenu(obj.name, false, () => UXSelectionUtil.activeGameObject = obj.gameObject); - } - } - } - - // 获取场景中的所有UI对象 - private static List GetAllUIObjects(PrefabStage prefabStage) - { - List uiObjects = new List(); - - if (prefabStage != null) - { - RectTransform[] allObjects = prefabStage.prefabContentsRoot.GetComponentsInChildren(true); - foreach (RectTransform obj in allObjects) - { - if (FindContainerLogic.ObjectFit(obj.gameObject)) - { - uiObjects.Add(obj); - } - } - } - else - { - UnityEngine.SceneManagement.Scene scene = SceneManager.GetActiveScene(); - GameObject[] rootObjects = scene.GetRootGameObjects(); - foreach (GameObject rootObj in rootObjects) - { - RectTransform[] childRects = rootObj.GetComponentsInChildren(true); - foreach (RectTransform rect in childRects) - { - if (FindContainerLogic.ObjectFit(rect.gameObject)) - { - uiObjects.Add(rect); - } - } - } - } - - return uiObjects; - } - - // 排序UI对象 - private static SortedList SortUIObjects(List uiObjects) - { - List uiNames = new List(); - foreach (var rect in uiObjects) - { - uiNames.Add(GetTransformHierarchyString("", rect)); - } - - // 按照名称排序 - SortedList sortedList = new SortedList(new DuplicateKeyComparer()); - for (int i = 0; i < uiObjects.Count; i++) - { - // 确保 key 唯一:包含索引 - string key = uiNames[i] + "_" + i; - sortedList.Add(key, uiObjects[i]); - } - - return sortedList; - } - - // 获取UI对象的层级字符串 - private static string GetTransformHierarchyString(string prefix, Transform trans) - { - string str = string.IsNullOrEmpty(prefix) ? trans.GetSiblingIndex().ToString() : $"{trans.GetSiblingIndex()}.{prefix}"; - if (trans.parent != null) - { - return GetTransformHierarchyString(str, trans.parent); - } - - return str; - } - - #endregion - - #region 辅助类与功能实现 - - // 自定义比较器,用于排序UI元素 - private class DuplicateKeyComparer : IComparer - { - public int Compare(string x, string y) - { - return -string.Compare(x, y); // 逆序排序 - } - } - - private enum AlignType - { - Left, - CenterHorizontal, - Right, - Top, - CenterVertical, - Bottom - } - - private enum DistributeAxis - { - Horizontal, - Vertical - } - - private class RectTransformCache - { - public Vector2 anchoredPosition; - public Vector2 sizeDelta; - public Vector2 anchorMin; - public Vector2 anchorMax; - public Vector2 pivot; - public Quaternion rotation; - public Vector3 localScale; - } - - private static void CopyRectTransform() - { - if (UXSelectionUtil.gameObjects == null || UXSelectionUtil.gameObjects.Length == 0) return; - var rt = UXSelectionUtil.gameObjects[0].GetComponent(); - if (rt == null) return; - clipboard = new RectTransformCache() - { - anchoredPosition = rt.anchoredPosition, - sizeDelta = rt.sizeDelta, - anchorMin = rt.anchorMin, - anchorMax = rt.anchorMax, - pivot = rt.pivot, - rotation = rt.localRotation, - localScale = rt.localScale - }; - Debug.Log("已复制 RectTransform 数据到剪贴板"); - } - - private static void PasteRectTransform() - { - if (clipboard == null || UXSelectionUtil.gameObjects == null) return; - foreach (var go in UXSelectionUtil.gameObjects) - { - var rt = go.GetComponent(); - if (rt == null) continue; - Undo.RecordObject(rt, "Paste RectTransform"); - rt.anchorMin = clipboard.anchorMin; - rt.anchorMax = clipboard.anchorMax; - rt.pivot = clipboard.pivot; - rt.sizeDelta = clipboard.sizeDelta; - rt.localRotation = clipboard.rotation; - rt.localScale = clipboard.localScale; - - // 保持世界位置:计算当前 world pos,然后应用 anchoredPosition 使其看起来相同 - Vector3 worldPos = rt.position; - rt.anchoredPosition = clipboard.anchoredPosition; - rt.position = worldPos; - - EditorUtility.SetDirty(rt); - } - } - - private static void AlignSelected(AlignType align) - { - var gos = UXSelectionUtil.gameObjects?.Where(g => g != null).ToArray(); - if (gos == null || gos.Length <= 1) return; - // 统一以第一个为目标 - RectTransform[] rts = gos.Select(g => g.GetComponent()).Where(r => r != null).ToArray(); - if (rts.Length <= 1) return; - - // 计算所有对象在世界空间的边界 - switch (align) - { - case AlignType.Left: - { - float target = rts.Min(rt => GetWorldLeft(rt)); - foreach (var rt in rts) MoveWorldLeftTo(rt, target); - } - break; - case AlignType.Right: - { - float target = rts.Max(rt => GetWorldRight(rt)); - foreach (var rt in rts) MoveWorldRightTo(rt, target); - } - break; - case AlignType.CenterHorizontal: - { - float minX = rts.Min(rt => GetWorldLeft(rt)); - float maxX = rts.Max(rt => GetWorldRight(rt)); - float centerX = (minX + maxX) / 2f; - foreach (var rt in rts) MoveWorldCenterXTo(rt, centerX); - } - break; - case AlignType.Top: - { - float target = rts.Max(rt => GetWorldTop(rt)); - foreach (var rt in rts) MoveWorldTopTo(rt, target); - } - break; - case AlignType.Bottom: - { - float target = rts.Min(rt => GetWorldBottom(rt)); - foreach (var rt in rts) MoveWorldBottomTo(rt, target); - } - break; - case AlignType.CenterVertical: - { - float minY = rts.Min(rt => GetWorldBottom(rt)); - float maxY = rts.Max(rt => GetWorldTop(rt)); - float centerY = (minY + maxY) / 2f; - foreach (var rt in rts) MoveWorldCenterYTo(rt, centerY); - } - break; - } - } - - private static float GetWorldLeft(RectTransform rt) - { - var corners = new Vector3[4]; - rt.GetWorldCorners(corners); - return corners[0].x; // bottom-left.x - } - - private static float GetWorldRight(RectTransform rt) - { - var corners = new Vector3[4]; - rt.GetWorldCorners(corners); - return corners[2].x; // top-right.x - } - - private static float GetWorldTop(RectTransform rt) - { - var corners = new Vector3[4]; - rt.GetWorldCorners(corners); - return corners[1].y; // top-left.y - } - - private static float GetWorldBottom(RectTransform rt) - { - var corners = new Vector3[4]; - rt.GetWorldCorners(corners); - return corners[0].y; // bottom-left.y - } - - // 将世界空间的位移转换为父空间的局部位移,并应用到 rectTransform.localPosition - private static void ApplyWorldDeltaToRectTransform(RectTransform rt, Vector3 worldDelta, string undoName) - { - if (rt == null || rt.parent == null) return; - Undo.RecordObject(rt, undoName); - - // 将世界向量转换为父对象的局部向量(旋转会被考虑,但位置不重要因为这是增量) - Vector3 localDelta = rt.parent.InverseTransformVector(worldDelta); - - // 应用到 localPosition(而不是直接修改 world position),这样对于 UI 更稳定 - rt.localPosition += localDelta; - - EditorUtility.SetDirty(rt); - } - - private static void MoveWorldLeftTo(RectTransform rt, float worldX) - { - var corners = new Vector3[4]; - rt.GetWorldCorners(corners); - float curLeft = corners[0].x; - float delta = worldX - curLeft; - if (Mathf.Approximately(delta, 0f)) return; - ApplyWorldDeltaToRectTransform(rt, new Vector3(delta, 0, 0), "Align Left"); - } - - private static void MoveWorldRightTo(RectTransform rt, float worldX) - { - var corners = new Vector3[4]; - rt.GetWorldCorners(corners); - float curRight = corners[2].x; - float delta = worldX - curRight; - if (Mathf.Approximately(delta, 0f)) return; - ApplyWorldDeltaToRectTransform(rt, new Vector3(delta, 0, 0), "Align Right"); - } - - private static void MoveWorldTopTo(RectTransform rt, float worldY) - { - var corners = new Vector3[4]; - rt.GetWorldCorners(corners); - float curTop = corners[1].y; - float delta = worldY - curTop; - if (Mathf.Approximately(delta, 0f)) return; - ApplyWorldDeltaToRectTransform(rt, new Vector3(0, delta, 0), "Align Top"); - } - - private static void MoveWorldBottomTo(RectTransform rt, float worldY) - { - var corners = new Vector3[4]; - rt.GetWorldCorners(corners); - float curBottom = corners[0].y; - float delta = worldY - curBottom; - if (Mathf.Approximately(delta, 0f)) return; - ApplyWorldDeltaToRectTransform(rt, new Vector3(0, delta, 0), "Align Bottom"); - } - - private static void MoveWorldCenterXTo(RectTransform rt, float worldX) - { - var corners = new Vector3[4]; - rt.GetWorldCorners(corners); - float curCenterX = (corners[0].x + corners[2].x) / 2f; - float delta = worldX - curCenterX; - if (Mathf.Approximately(delta, 0f)) return; - ApplyWorldDeltaToRectTransform(rt, new Vector3(delta, 0, 0), "Align Center X"); - } - - private static void MoveWorldCenterYTo(RectTransform rt, float worldY) - { - var corners = new Vector3[4]; - rt.GetWorldCorners(corners); - float curCenterY = (corners[0].y + corners[2].y) / 2f; - float delta = worldY - curCenterY; - if (Mathf.Approximately(delta, 0f)) return; - ApplyWorldDeltaToRectTransform(rt, new Vector3(0, delta, 0), "Align Center Y"); - } - - private static void DistributeSelected(DistributeAxis axis) - { - var gos = UXSelectionUtil.gameObjects?.Where(g => g != null).ToArray(); - if (gos == null || gos.Length <= 2) return; // 两个对象没必要 - RectTransform[] rts = gos.Select(g => g.GetComponent()).Where(r => r != null).ToArray(); - if (rts.Length <= 2) return; - - // 按中心排序 - if (axis == DistributeAxis.Horizontal) - { - var ordered = rts.OrderBy(rt => GetWorldCenter(rt).x).ToArray(); - float left = GetWorldLeft(ordered.First()); - float right = GetWorldRight(ordered.Last()); - float totalWidth = ordered.Sum(rt => GetWidthWorld(rt)); - float space = (right - left - totalWidth) / (ordered.Length - 1); - float curX = left; - for (int i = 0; i < ordered.Length; i++) - { - float w = GetWidthWorld(ordered[i]); - float targetCenter = curX + w / 2f; - MoveWorldCenterXTo(ordered[i], targetCenter); - curX += w + space; - } - } - else - { - var ordered = rts.OrderBy(rt => GetWorldCenter(rt).y).ToArray(); - float bottom = GetWorldBottom(ordered.First()); - float top = GetWorldTop(ordered.Last()); - float totalHeight = ordered.Sum(rt => GetHeightWorld(rt)); - float space = (top - bottom - totalHeight) / (ordered.Length - 1); - float curY = bottom; - for (int i = 0; i < ordered.Length; i++) - { - float h = GetHeightWorld(ordered[i]); - float targetCenter = curY + h / 2f; - MoveWorldCenterYTo(ordered[i], targetCenter); - curY += h + space; - } - } - } - - private static Vector2 GetWorldCenter(RectTransform rt) - { - var corners = new Vector3[4]; - rt.GetWorldCorners(corners); - return (corners[0] + corners[2]) / 2f; - } - - private static float GetWidthWorld(RectTransform rt) - { - var corners = new Vector3[4]; - rt.GetWorldCorners(corners); - return Mathf.Abs(corners[2].x - corners[0].x); - } - - private static float GetHeightWorld(RectTransform rt) - { - var corners = new Vector3[4]; - rt.GetWorldCorners(corners); - return Mathf.Abs(corners[1].y - corners[0].y); - } - - private static void MatchSizeToFirst() - { - var gos = UXSelectionUtil.gameObjects; - if (gos == null || gos.Length <= 1) return; - var first = gos[0].GetComponent(); - if (first == null) return; - for (int i = 1; i < gos.Length; i++) - { - var rt = gos[i].GetComponent(); - if (rt == null) continue; - Undo.RecordObject(rt, "Match Size"); - rt.sizeDelta = first.sizeDelta; - EditorUtility.SetDirty(rt); - } - } - - private static void PixelSnapSelected() - { - foreach (var go in UXSelectionUtil.gameObjects ?? new GameObject[0]) - { - var rt = go.GetComponent(); - if (rt == null) continue; - Undo.RecordObject(rt, "Pixel Snap"); - Vector2 ap = rt.anchoredPosition; - ap.x = Mathf.Round(ap.x); - ap.y = Mathf.Round(ap.y); - rt.anchoredPosition = ap; - EditorUtility.SetDirty(rt); - } - } - - private static void ResetTransformSelected() - { - foreach (var go in UXSelectionUtil.gameObjects ?? new GameObject[0]) - { - var rt = go.GetComponent(); - if (rt == null) continue; - Undo.RecordObject(rt, "Reset Transform"); - rt.anchoredPosition = Vector2.zero; - rt.localRotation = Quaternion.identity; - rt.localScale = Vector3.one; - EditorUtility.SetDirty(rt); - } - } - - private static void SetAnchorsToCornersKeepPos() - { - foreach (var go in UXSelectionUtil.gameObjects ?? new GameObject[0]) - { - var rt = go.GetComponent(); - if (rt == null) continue; - Undo.RecordObject(rt, "Set Anchors to Corners Keep Position"); - - Transform parent = rt.parent; - if (parent == null) continue; - RectTransform parentRT = parent as RectTransform; - if (parentRT == null) continue; - - Vector3[] corners = new Vector3[4]; - rt.GetWorldCorners(corners); - Vector3[] parentCorners = new Vector3[4]; - parentRT.GetWorldCorners(parentCorners); - - Vector2 newAnchorMin = new Vector2( - Mathf.InverseLerp(parentCorners[0].x, parentCorners[2].x, corners[0].x), - Mathf.InverseLerp(parentCorners[0].y, parentCorners[2].y, corners[0].y)); - Vector2 newAnchorMax = new Vector2( - Mathf.InverseLerp(parentCorners[0].x, parentCorners[2].x, corners[2].x), - Mathf.InverseLerp(parentCorners[0].y, parentCorners[2].y, corners[2].y)); - - Vector2 oldAnchored = rt.anchoredPosition; - rt.anchorMin = newAnchorMin; - rt.anchorMax = newAnchorMax; - rt.anchoredPosition = oldAnchored; // 尝试保留视觉位置 - - EditorUtility.SetDirty(rt); - } - } - - private static void SetAnchorsToCenterKeepPos() - { - foreach (var go in UXSelectionUtil.gameObjects ?? new GameObject[0]) - { - var rt = go.GetComponent(); - if (rt == null) continue; - Undo.RecordObject(rt, "Set Anchors to Center Keep Position"); - Transform parent = rt.parent; - if (parent == null) continue; - RectTransform parentRT = parent as RectTransform; - if (parentRT == null) continue; - - Vector3[] corners = new Vector3[4]; - rt.GetWorldCorners(corners); - Vector3[] parentCorners = new Vector3[4]; - parentRT.GetWorldCorners(parentCorners); - - float centerX = (corners[0].x + corners[2].x) / 2f; - float centerY = (corners[0].y + corners[2].y) / 2f; - - Vector2 anchor = new Vector2( - Mathf.InverseLerp(parentCorners[0].x, parentCorners[2].x, centerX), - Mathf.InverseLerp(parentCorners[0].y, parentCorners[2].y, centerY)); - - Vector2 oldAnchored = rt.anchoredPosition; - rt.anchorMin = anchor; - rt.anchorMax = anchor; - rt.anchoredPosition = oldAnchored; - - EditorUtility.SetDirty(rt); - } - } - - private static void BringToFront() - { - foreach (var go in UXSelectionUtil.gameObjects ?? new GameObject[0]) - { - Transform parent = go.transform.parent; - Undo.RecordObject(go.transform, "Bring To Front"); - if (parent != null) - { - go.transform.SetSiblingIndex(parent.childCount - 1); - } - else - { - go.transform.SetSiblingIndex(go.transform.GetSiblingIndex()); - } - - EditorUtility.SetDirty(go); - } - } - - private static void SendToBack() - { - foreach (var go in UXSelectionUtil.gameObjects ?? new GameObject[0]) - { - Transform parent = go.transform.parent; - Undo.RecordObject(go.transform, "Send To Back"); - go.transform.SetSiblingIndex(0); - EditorUtility.SetDirty(go); - } - } - - private static void CreateContainerAroundSelection() - { - var gos = UXSelectionUtil.gameObjects?.Where(g => g != null).ToArray(); - if (gos == null || gos.Length == 0) return; - // 只允许相同父级 - Transform parent = gos[0].transform.parent; - if (gos.Any(g => g.transform.parent != parent)) - { - Debug.LogWarning("创建容器要求所有对象在同一父级下"); - return; - } - - // 计算包围盒(世界坐标) - var rts = gos.Select(g => g.GetComponent()).Where(r => r != null).ToArray(); - if (rts.Length == 0) return; - - Vector3 worldMin = new Vector3(float.MaxValue, float.MaxValue, float.MaxValue); - Vector3 worldMax = new Vector3(float.MinValue, float.MinValue, float.MinValue); - foreach (var rt in rts) - { - Vector3[] corners = new Vector3[4]; - rt.GetWorldCorners(corners); - worldMin = Vector3.Min(worldMin, corners[0]); - worldMax = Vector3.Max(worldMax, corners[2]); - } - - // 创建容器 - GameObject root = UIBuilderUtil.CreateUIObj("Container"); - Undo.RegisterCreatedObjectUndo(root, "Create Container"); - var rootRT = root.GetComponent(); - root.transform.SetParent(parent); - root.transform.SetSiblingIndex(rts.Min(r => r.GetSiblingIndex())); - rootRT.localScale = Vector3.one; - - // 将世界包围盒转换为父本地坐标 - RectTransform parentRT = parent as RectTransform; - if (parentRT == null) - { - Debug.LogWarning("父对象不是 RectTransform,无法创建容器"); - return; - } - - Vector3 localMin = parentRT.InverseTransformPoint(worldMin); - Vector3 localMax = parentRT.InverseTransformPoint(worldMax); - Vector2 size = new Vector2(localMax.x - localMin.x, localMax.y - localMin.y); - Vector2 center = (localMin + localMax) / 2f; - - rootRT.sizeDelta = size; - rootRT.anchoredPosition = center; - - // 将选中对象设置为容器子对象并保持位置 - foreach (var g in gos) - { - Undo.SetTransformParent(g.transform, root.transform, "Wrap In Container"); - } - - Selection.activeGameObject = root; - EditorUtility.SetDirty(rootRT); - } - - private static void DuplicateSelection() - { - var gos = UXSelectionUtil.gameObjects?.Where(g => g != null).ToArray(); - if (gos == null || gos.Length == 0) return; - List newOnes = new List(); - foreach (var g in gos) - { - GameObject dup = Object.Instantiate(g, g.transform.parent); - dup.name = g.name + " Copy"; - Undo.RegisterCreatedObjectUndo(dup, "Duplicate UI Element"); - dup.transform.SetSiblingIndex(g.transform.GetSiblingIndex() + 1); - newOnes.Add(dup); - } - - Selection.objects = newOnes.ToArray(); - } - - private static void RenameSelection() - { - if (UXSelectionUtil.gameObjects == null || UXSelectionUtil.gameObjects.Length == 0) return; - Selection.activeGameObject = UXSelectionUtil.gameObjects[0]; - // 调用编辑器的重命名命令 - EditorApplication.ExecuteMenuItem("Edit/Rename"); - } - - private static void SelectParent() - { - if (UXSelectionUtil.gameObjects == null || UXSelectionUtil.gameObjects.Length == 0) return; - var go = UXSelectionUtil.gameObjects[0]; - if (go.transform.parent != null) - { - Selection.activeGameObject = go.transform.parent.gameObject; - } - } - - private static void FrameSelection() - { - SceneView.lastActiveSceneView?.FrameSelected(); - } - - private static void ToggleRaycastTarget() - { - foreach (var go in UXSelectionUtil.gameObjects ?? new GameObject[0]) - { - var g = go.GetComponent(); - if (g == null) continue; - Undo.RecordObject(g, "Toggle RaycastTarget"); - g.raycastTarget = !g.raycastTarget; - EditorUtility.SetDirty(g); - } - } - - private static void SortSiblingsByName() - { - var gos = UXSelectionUtil.gameObjects?.Where(g => g != null).ToArray(); - if (gos == null || gos.Length == 0) return; - Transform parent = gos[0].transform.parent; - if (parent == null) return; - - var children = parent.Cast().Select(t => t.gameObject).OrderBy(o => o.name).ToArray(); - for (int i = 0; i < children.Length; i++) - { - Undo.RecordObject(children[i].transform, "Sort By Name"); - children[i].transform.SetSiblingIndex(i); - } - } - - #endregion - } - - // CombineWidgetLogic 放在同一文件以便完整交付 - public static class CombineWidgetLogic - { - /// - /// 组合节点 - /// - /// 需要组合的对象 需要所有对象在同一层级 - /// 组合之后的父节点 - public static GameObject GenCombineRootRect(List rects) - { - if (rects == null || rects.Count == 0) return null; - - // 确保所有在同一父级 - Transform parent = rects[0].transform.parent; - if (rects.Any(r => r.transform.parent != parent)) - { - Debug.LogWarning("所有对象必须在同一父级下才能组合"); - return null; - } - - // 计算世界包围盒 - Vector3 worldMin = Vector3.positiveInfinity; - Vector3 worldMax = Vector3.negativeInfinity; - foreach (var rt in rects) - { - Vector3[] corners = new Vector3[4]; - rt.GetWorldCorners(corners); - worldMin = Vector3.Min(worldMin, corners[0]); - worldMax = Vector3.Max(worldMax, corners[2]); - } - - // 创建容器 - GameObject root = UIBuilderUtil.CreateUIObj("CombineRoot"); - RectTransform rootRT = root.GetComponent(); - root.transform.SetParent(parent); - rootRT.localScale = Vector3.one; - - // 将世界包围盒转换为父本地坐标 - RectTransform parentRT = parent as RectTransform; - if (parentRT == null) - { - Debug.LogWarning("父对象不是 RectTransform,无法创建组合容器"); - return null; - } - - Vector3 localMin = parentRT.InverseTransformPoint(worldMin); - Vector3 localMax = parentRT.InverseTransformPoint(worldMax); - Vector2 size = new Vector2(localMax.x - localMin.x, localMax.y - localMin.y); - Vector2 center = (localMin + localMax) / 2f; - - rootRT.sizeDelta = size; - rootRT.anchoredPosition = center; - - // 按原顺序设置为子对象 - rects.Sort((a, b) => a.GetSiblingIndex() - b.GetSiblingIndex()); - foreach (var rt in rects) - { - Undo.SetTransformParent(rt.transform, root.transform, "Combine Widgets"); - } - - Selection.activeGameObject = root; - return root; - } - - /// - /// 组合节点 - /// - /// - /// - public static GameObject GenCombineRootRect(GameObject[] objs) - { - List rects = objs.ToList().Select(a => a.GetComponent()).Where(r => r != null).ToList(); - - return GenCombineRootRect(rects); - } - - /// - /// - /// - /// - /// - private static bool AllHaveSameParent(GameObject[] objs) - { - if (objs.Length == 1) - { - return true; - } - - Transform parent = objs[0].transform.parent; - for (int i = 1; i < objs.Length; i++) - { - if (objs[i].transform.parent != parent) - { - return false; - } - } - - return true; - } - - private static bool AllHaveRectTransform(GameObject[] objs) - { - for (int i = 0; i < objs.Length; i++) - { - if (objs[i].GetComponent() == null) - { - return false; - } - } - - return true; - } - - public static bool CanCombine(GameObject[] objs) - { - if (objs == null || objs.Length <= 1) - { - return false; - } - - bool SameLevelUI = false; - if (AllHaveSameParent(objs)) - { - SameLevelUI = true; - } - - bool UIInPrefab = false; - foreach (GameObject go in objs) - { - string assetPath = PrefabUtility.GetPrefabAssetPathOfNearestInstanceRoot(go); - if (!string.IsNullOrEmpty(assetPath)) - { - UIInPrefab = true; - } - } - - if (SameLevelUI && !UIInPrefab) - { - return true; - } - - return false; - } - } -} -#endif diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ContextMenu/SceneViewContextMenu.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ContextMenu/SceneViewContextMenu.cs.meta deleted file mode 100644 index 65736ca..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ContextMenu/SceneViewContextMenu.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: deac8fa4e6a7d8348b7fd4f2e06676b2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit.meta deleted file mode 100644 index 1c2b26e..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: ae357567eebc45eb8847bd1d2ad0eab8 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit/UXControllerAddWindow.cs b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit/UXControllerAddWindow.cs deleted file mode 100644 index 0353dbf..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit/UXControllerAddWindow.cs +++ /dev/null @@ -1,107 +0,0 @@ -using AlicizaX.UI; -using AlicizaX.UI.Runtime; -using UnityEditor; -using UnityEditor.SceneManagement; -using UnityEngine; -using UnityEngine.UIElements; - -namespace AlicizaX.UXTool -{ - public class UXControllerAddWindow : EditorWindow - { - private UXController _ux; - private TextField _nameField; - private IntegerField _lengthField; - - public static void ShowWindow(UXController ux) - { - var w = CreateInstance(); - w.titleContent = new GUIContent("添加控制器"); - w._ux = ux; - w.position = new Rect(Screen.width / 2f - 150f, Screen.height / 2f - 60f, 320, 120); - w.ShowUtility(); - } - - private void OnEnable() - { - var root = rootVisualElement; - root.style.paddingLeft = 8; - root.style.paddingTop = 8; - root.style.paddingRight = 8; - root.style.paddingBottom = 8; - - var title = new Label("添加控制器"); - title.style.unityFontStyleAndWeight = FontStyle.Bold; - title.style.marginBottom = 6; - root.Add(title); - - _nameField = new TextField("Name"); - _nameField.value = _ux != null ? $"Controller{_ux.Controllers.Count}" : "Controller"; - root.Add(_nameField); - - _lengthField = new IntegerField("Length"); - _lengthField.value = 2; - root.Add(_lengthField); - - var row = new VisualElement(); - row.style.flexDirection = FlexDirection.Row; - row.style.justifyContent = Justify.FlexEnd; - row.style.marginTop = 8; - - var add = new Button(() => - { - if (_ux != null) - { - Undo.RecordObject(_ux, "Add Controller"); - // 使用 SerializedObject 能保证序列化 - var so = new SerializedObject(_ux); - var controllersProp = so.FindProperty("_controllers"); - int newIndex = controllersProp.arraySize; - controllersProp.InsertArrayElementAtIndex(newIndex); - var el = controllersProp.GetArrayElementAtIndex(newIndex); - var nameProp = el.FindPropertyRelative("Name"); - var lengthProp = el.FindPropertyRelative("Length"); - nameProp.stringValue = _nameField.value; - lengthProp.intValue = Mathf.Max(1, _lengthField.value); - so.ApplyModifiedProperties(); - EditorUtility.SetDirty(_ux); - } - else - { - // 如果外部没有提供 UXController,尝试在 prefab root 上添加 - var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - if (prefabStage != null && prefabStage.prefabContentsRoot != null) - { - var comp = Undo.AddComponent(prefabStage.prefabContentsRoot); - EditorUtility.SetDirty(prefabStage.prefabContentsRoot); - if (comp != null) - { - Undo.RecordObject(comp, "Add Controller"); - var so = new SerializedObject(comp); - var controllersProp = so.FindProperty("_controllers"); - controllersProp.InsertArrayElementAtIndex(0); - var el = controllersProp.GetArrayElementAtIndex(0); - var nameProp = el.FindPropertyRelative("Name"); - var lengthProp = el.FindPropertyRelative("Length"); - nameProp.stringValue = _nameField.value; - lengthProp.intValue = Mathf.Max(1, _lengthField.value); - so.ApplyModifiedProperties(); - EditorUtility.SetDirty(comp); - } - } - } - - Close(); - }); - add.text = "添加"; - row.Add(add); - - var cancel = new Button(() => Close()); - cancel.text = "取消"; - cancel.style.marginLeft = 8; - row.Add(cancel); - - root.Add(row); - } - } -} diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit/UXControllerAddWindow.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit/UXControllerAddWindow.cs.meta deleted file mode 100644 index 793cd5f..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit/UXControllerAddWindow.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 67b9bfb10302d6d43aaee21321c53818 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit/UXControllerEditWindow.cs b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit/UXControllerEditWindow.cs deleted file mode 100644 index 4e2ab40..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit/UXControllerEditWindow.cs +++ /dev/null @@ -1,136 +0,0 @@ -using System; -using System.Drawing; -using AlicizaX.UI; -using AlicizaX.UI.Runtime; -using UnityEditor; -using UnityEngine; -using UnityEngine.UIElements; -using FontStyle = UnityEngine.FontStyle; - -namespace AlicizaX.UXTool -{ - public class UXControllerEditWindow : EditorWindow - { - private UXController _ux; - private int _index; - private TextField _nameField; - private IntegerField _lengthField; - - public static void ShowWindow(UXController ux, int index, string currentName, int currentLength) - { - var w = CreateInstance(); - w.titleContent = new GUIContent("编辑控制器"); - w._ux = ux; - w._index = index; - w.position = new Rect(Screen.width / 2f - 150f, Screen.height / 2f - 60f, 320, 120); - w.ShowUtility(); - } - - private void CreateGUI() - { - var root = rootVisualElement; - root.style.paddingLeft = 8; - root.style.paddingTop = 8; - root.style.paddingRight = 8; - root.style.paddingBottom = 8; - - var title = new Label($"编辑控制器 [{_index}]"); - title.style.unityFontStyleAndWeight = FontStyle.Bold; - title.style.marginBottom = 6; - root.Add(title); - - _nameField = new TextField("Name"); - if (_ux != null && _index >= 0 && _index < _ux.Controllers.Count) _nameField.value = _ux.Controllers[_index].Name; - root.Add(_nameField); - - _lengthField = new IntegerField("Length"); - if (_ux != null && _index >= 0 && _index < _ux.Controllers.Count) - { - _lengthField.value = _ux.Controllers[_index].Length; - } - - _lengthField.value = Mathf.Max(1, _lengthField.value); - root.Add(_lengthField); - - var row = new VisualElement(); - row.style.flexDirection = FlexDirection.Row; - row.style.justifyContent = Justify.FlexEnd; - row.style.marginTop = 8; - - var save = new Button(() => - { - if (_ux != null && _index >= 0 && !string.IsNullOrEmpty(_nameField.value)) - { - var so = new SerializedObject(_ux); - var controllersProp = so.FindProperty("_controllers"); - if (controllersProp != null) - { - Undo.RecordObject(_ux, "Edit Controller"); - var el = controllersProp.GetArrayElementAtIndex(_index); - var nameProp = el.FindPropertyRelative("Name"); - string oldValue = nameProp.stringValue; - var lengthProp = el.FindPropertyRelative("Length"); - nameProp.stringValue = _nameField.value; - lengthProp.intValue = Mathf.Max(1, _lengthField.value); - so.ApplyModifiedProperties(); - - var recorders = so.FindProperty("_recorders"); - - for (int i = 0; i < recorders.arraySize; i++) - { - var recorderProp = recorders.GetArrayElementAtIndex(i); - var recorderSo = new SerializedObject(recorderProp.objectReferenceValue); - var stateEntriesProp = recorderSo.FindProperty("_stateEntries"); - for (int j = 0; j < stateEntriesProp.arraySize; j++) - { - var entry = stateEntriesProp.GetArrayElementAtIndex(j); - var controllerNameProp = entry.FindPropertyRelative("ControllerName"); - if (controllerNameProp.stringValue.Equals(oldValue)) - { - controllerNameProp.stringValue = _nameField.value; - } - } - - recorderSo.ApplyModifiedProperties(); - } - - EditorUtility.SetDirty(_ux); - } - } - - Close(); - }); - save.text = "保存"; - row.Add(save); - - var delete = new Button(() => - { - if (_ux != null && _index >= 0) - { - var so = new SerializedObject(_ux); - var controllersProp = so.FindProperty("_controllers"); - if (controllersProp != null) - { - Undo.RecordObject(_ux, "Edit Controller"); - controllersProp.DeleteArrayElementAtIndex(_index); - so.ApplyModifiedProperties(); - EditorUtility.SetDirty(_ux); - } - } - - Close(); - }); - delete.text = "删除"; - row.Add(delete); - - var cancel = new Button(() => Close()); - cancel.text = "取消"; - cancel.style.marginLeft = 8; - - row.Add(cancel); - - - root.Add(row); - } - } -} diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit/UXControllerEditWindow.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit/UXControllerEditWindow.cs.meta deleted file mode 100644 index f2a37c7..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit/UXControllerEditWindow.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2c4d51bc600e38a4f9100a50edc69771 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit/UXControllerSceneOverlay.cs b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit/UXControllerSceneOverlay.cs deleted file mode 100644 index 34dec46..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit/UXControllerSceneOverlay.cs +++ /dev/null @@ -1,433 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Reflection; -using AlicizaX.UXTool; -using UnityEditor; -using UnityEditor.Experimental.SceneManagement; -using UnityEditor.SceneManagement; -using UnityEngine; -using UnityEngine.UIElements; -using UnityEditor.Callbacks; -using AlicizaX.UI; -using AlicizaX.UI.Runtime; - -public static class UXControllerSceneOverlayManager -{ - private static readonly Dictionary s_map = new Dictionary(); - - [InitializeOnLoadMethod] - public static void Initialize() - { - UXDesinUtil.OnEnterDesignMode += RegisterEvents; - UXDesinUtil.OnExitDesignMode += UnRegisterEvents; - - if (UXDesinUtil.InDesign) - { - RegisterEvents(); - } - else - { - UnRegisterEvents(); - } - } - - private static void RegisterEvents() - { - SceneView.duringSceneGui += OnSceneGui; - EditorApplication.update += EditorUpdate; - EditorApplication.playModeStateChanged += OnPlayModeStateChanged; - } - - private static void UnRegisterEvents() - { - SceneView.duringSceneGui -= OnSceneGui; - EditorApplication.update -= EditorUpdate; - EditorApplication.playModeStateChanged -= OnPlayModeStateChanged; - - RemoveAllOverlays(); - } - - private static void RemoveAllOverlays() - { - var views = SceneView.sceneViews; - foreach (var obj in views) - { - var sv = obj as SceneView; - if (sv == null) continue; - try - { - var root = sv.rootVisualElement; - if (root == null) continue; - var existing = root.Q("ux-controller-ve"); - if (existing != null) - { - root.Remove(existing); - } - } - catch (Exception) - { - } - } - - // 清理字典 - s_map.Clear(); - } - - private static void OnPlayModeStateChanged(PlayModeStateChange state) - { - SceneView.RepaintAll(); - } - - private static void OnSceneGui(SceneView sv) - { - if (sv == null) return; - if (PrefabStageUtils.InEmptyStage) return; - // ensure overlay exists for this SceneView - var root = sv.rootVisualElement; - if (root == null) return; - - int id = sv.GetInstanceID(); - if (!s_map.ContainsKey(id)) - { - // avoid duplicate q by name - var existing = root.Q("ux-controller-ve"); - if (existing != null) - { - // if already present (from another vm), keep it and track - var ve = existing as UXControllerOverlayVE; - if (ve != null) s_map[id] = ve; - } - else - { - var ve = new UXControllerOverlayVE(); - ve.name = "ux-controller-ve"; - // place at top so it overlays scene view content - ve.style.position = Position.Absolute; - ve.style.left = 0; - ve.style.top = 0; - ve.style.width = Length.Percent(100); - // z-index: bring to front - // ve.style.unityZIndex = 1000; - root.Add(ve); - s_map[id] = ve; - } - } - } - - private static void EditorUpdate() - { - // Refresh all overlays (they check for changes internally and early out) - foreach (var kv in s_map) - { - var ve = kv.Value; - if (ve != null) ve.EditorUpdate(); - } - } -} - -public class UXControllerOverlayVE : VisualElement -{ - private VisualElement _root; - private VisualElement _controllerList; - private Button _addBtn; - private PrefabStage _currentPrefabStage; - private UXController _currentUX; - private int _lastControllersHash = 0; - - public UXControllerOverlayVE() - { - style.flexDirection = FlexDirection.Column; - style.paddingLeft = 6; - style.paddingTop = 6; - style.paddingRight = 6; - style.paddingBottom = 6; - style.width = Length.Percent(100); - style.unityBackgroundImageTintColor = Color.white; - style.height = Length.Percent(5); - - - style.backgroundColor = new StyleColor(new Color(0.12f, 0.12f, 0.12f, 0.95f)); - style.borderTopWidth = 1; - style.borderBottomWidth = 1; - style.borderLeftWidth = 1; - style.borderRightWidth = 1; - style.borderTopColor = new StyleColor(new Color(0, 0, 0, 0.6f)); - style.borderBottomColor = new StyleColor(new Color(0, 0, 0, 0.6f)); - style.borderLeftColor = new StyleColor(new Color(0, 0, 0, 0.6f)); - style.borderRightColor = new StyleColor(new Color(0, 0, 0, 0.6f)); - style.paddingBottom = 8; - style.paddingTop = 6; - style.paddingLeft = 6; - style.paddingRight = 6; - - _addBtn = new Button(() => - { - if (_currentUX != null) - { - UXControllerAddWindow.ShowWindow(_currentUX); - } - else - { - var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - if (prefabStage != null && prefabStage.prefabContentsRoot != null) - { - Undo.AddComponent(prefabStage.prefabContentsRoot); - EditorUtility.SetDirty(prefabStage.prefabContentsRoot); - } - } - - Refresh(); - }); - - _addBtn.style.width = 22; - _addBtn.style.height = 22; - _addBtn.style.backgroundColor = new StyleColor(new Color(0.26f, 0.26f, 0.26f)); - _addBtn.style.marginRight = 0; - _addBtn.style.borderBottomLeftRadius = 4; - _addBtn.style.borderBottomRightRadius = 4; - _addBtn.style.borderTopLeftRadius = 4; - _addBtn.style.borderTopRightRadius = 4; - _addBtn.style.alignSelf = Align.Center; - _addBtn.style.justifyContent = Justify.Center; - _addBtn.tooltip = "添加新的控制器"; - - var cLabel = new Label("+"); - cLabel.style.unityFontStyleAndWeight = FontStyle.Bold; - cLabel.style.unityTextAlign = TextAnchor.MiddleCenter; - cLabel.style.color = new StyleColor(Color.white); - cLabel.style.fontSize = 12; - cLabel.style.flexGrow = 0; - _addBtn.Add(cLabel); - - - var scroll = new ScrollView(ScrollViewMode.Horizontal); - scroll.style.flexDirection = FlexDirection.Row; - scroll.style.paddingLeft = 0; - scroll.style.paddingRight = 2; - scroll.style.paddingBottom = 0; - scroll.style.paddingTop = 0; - scroll.horizontalScrollerVisibility = ScrollerVisibility.Hidden; - scroll.verticalScrollerVisibility = ScrollerVisibility.Hidden; - - _controllerList = new VisualElement(); - _controllerList.style.flexDirection = FlexDirection.Row; - _controllerList.style.flexWrap = Wrap.Wrap; - _controllerList.style.alignItems = Align.FlexStart; - - scroll.Add(_controllerList); - scroll.Add(_addBtn); - this.Add(scroll); - - Refresh(); - } - - public void EditorUpdate() - { - // called by manager on EditorApplication.update - var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - if (prefabStage != _currentPrefabStage) - { - _currentPrefabStage = prefabStage; - Refresh(); - return; - } - - if (_currentUX != null) - { - int h = ComputeControllersHash(_currentUX); - if (h != _lastControllersHash) - { - _lastControllersHash = h; - Refresh(); - } - } - } - - private int ComputeControllersHash(UXController ux) - { - if (ux == null) return 0; - unchecked - { - int hash = 17; - var list = ux.Controllers; - if (list != null) - { - foreach (var cd in list) - { - hash = hash * 23 + (cd?.Name?.GetHashCode() ?? 0); - hash = hash * 23 + (cd?.Length.GetHashCode() ?? 0); - hash = hash * 23 + (cd?.CurrentIndex.GetHashCode() ?? 0); - } - } - - return hash; - } - } - - public void Refresh() - { - _controllerList.Clear(); - - var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - _currentPrefabStage = prefabStage; - _currentUX = null; - if (prefabStage != null && prefabStage.prefabContentsRoot != null) - { - _currentUX = prefabStage.prefabContentsRoot.GetComponent(); - } - - if (PrefabStageUtils.InEmptyStage) - { - _addBtn.style.display = DisplayStyle.None; - return; - } - - _addBtn.style.display = DisplayStyle.Flex; - if (_currentUX == null) - { - var empty = new Label("当前 Prefab 未包含 UXController。点击右侧按钮可添加。"); - empty.style.unityFontStyleAndWeight = FontStyle.Italic; - empty.style.color = new StyleColor(new Color(0.75f, 0.75f, 0.75f)); - empty.style.marginLeft = 6; - empty.style.marginTop = 6; - _controllerList.Add(empty); - _lastControllersHash = 0; - return; - } - - var controllers = _currentUX.Controllers; - if (controllers == null) return; - - for (int i = 0; i < controllers.Count; i++) - { - var cd = controllers[i]; - var card = CreateControllerCard(cd, i); - _controllerList.Add(card); - } - - _lastControllersHash = ComputeControllersHash(_currentUX); - } - - private VisualElement CreateControllerCard(UXController.ControllerData cd, int index) - { - var card = new VisualElement(); - card.style.flexDirection = FlexDirection.Row; - card.style.alignItems = Align.Center; - card.style.paddingLeft = 6; - card.style.paddingRight = 6; - card.style.paddingTop = 4; - card.style.paddingBottom = 4; - card.style.backgroundColor = new StyleColor(new Color(0.13f, 0.13f, 0.13f)); - card.style.borderTopLeftRadius = 6; - card.style.borderBottomLeftRadius = 6; - card.style.borderTopRightRadius = 6; - card.style.borderBottomRightRadius = 6; - card.style.minHeight = 28; - card.style.marginRight = 4; - card.style.marginBottom = 6; - - // icon (C with underline) - var cBox = new VisualElement(); - cBox.style.width = 22; - cBox.style.height = 22; - cBox.style.backgroundColor = new StyleColor(new Color(0.26f, 0.26f, 0.26f)); - cBox.style.marginRight = 0; - cBox.style.borderBottomLeftRadius = 4; - cBox.style.borderBottomRightRadius = 4; - cBox.style.borderTopLeftRadius = 4; - cBox.style.borderTopRightRadius = 4; - cBox.style.alignSelf = Align.Center; - cBox.style.justifyContent = Justify.Center; - - var cLabel = new Label("C"); - cLabel.style.unityFontStyleAndWeight = FontStyle.Bold; - cLabel.style.unityTextAlign = TextAnchor.MiddleCenter; - cLabel.style.color = new StyleColor(Color.white); - cLabel.style.fontSize = 12; - cLabel.style.flexGrow = 0; - cBox.Add(cLabel); - - var underline = new VisualElement(); - underline.style.position = Position.Absolute; - underline.style.height = 2; - underline.style.width = 14; - underline.style.left = 4; - underline.style.bottom = 3; - underline.style.backgroundColor = new StyleColor(Color.white); - - cBox.Add(underline); - - card.Add(cBox); - - - var nameBtn = new Button(() => { UXControllerEditWindow.ShowWindow(_currentUX, index, cd.Name, cd.Length); }); - nameBtn.text = cd.Name; - nameBtn.style.unityTextAlign = TextAnchor.MiddleLeft; - nameBtn.style.width = 120; - nameBtn.style.height = 22; - nameBtn.style.marginRight = 6; - - card.Add(nameBtn); - - - var indicesContainer = new VisualElement(); - indicesContainer.style.flexDirection = FlexDirection.Row; - indicesContainer.style.alignItems = Align.Center; - - int length = Math.Max(1, cd.Length); - for (int idx = 0; idx < length; idx++) - { - int capturedIdx = idx; - bool isSelected = (cd.CurrentIndex == idx); - - var idxBtn = new Button(() => - { - SetControllerIndexViaReflection(_currentUX, index, capturedIdx); - Refresh(); // force update visual state - }); - idxBtn.text = idx.ToString(); - idxBtn.style.width = 22; - idxBtn.style.height = 18; - idxBtn.style.unityTextAlign = TextAnchor.MiddleCenter; - idxBtn.style.paddingLeft = 0; - idxBtn.style.paddingRight = 0; - idxBtn.style.paddingTop = 0; - idxBtn.style.paddingBottom = 0; - idxBtn.style.fontSize = 11; - idxBtn.style.borderTopLeftRadius = 3; - idxBtn.style.borderTopRightRadius = 3; - idxBtn.style.borderBottomLeftRadius = 3; - idxBtn.style.borderBottomRightRadius = 3; - idxBtn.style.marginRight = 4; - - if (isSelected) - { - idxBtn.style.backgroundColor = new StyleColor(new Color(0.9f, 0.55f, 0.1f)); - idxBtn.style.color = new StyleColor(Color.white); - } - else - { - idxBtn.style.backgroundColor = new StyleColor(new Color(0.18f, 0.18f, 0.18f)); - idxBtn.style.color = new StyleColor(Color.white); - } - - indicesContainer.Add(idxBtn); - } - - card.Add(indicesContainer); - - return card; - } - - private static void SetControllerIndexViaReflection(UXController ux, int controllerIndex, int selectedIndex) - { - if (ux == null) return; - var t = ux.GetType(); - var mi = t.GetMethod("SetControllerIndex", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public); - if (mi != null) - { - mi.Invoke(ux, new object[] { controllerIndex, selectedIndex }); - EditorUtility.SetDirty(ux); - } - } -} diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit/UXControllerSceneOverlay.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit/UXControllerSceneOverlay.cs.meta deleted file mode 100644 index 2d1224a..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ControllerEdit/UXControllerSceneOverlay.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3dc3451006fe98b47bffcc2c2a872d91 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Hierachy.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Hierachy.meta deleted file mode 100644 index 9477412..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Hierachy.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d7e417a455885fb468c5aa9c679b6628 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Hierachy/UXHierachyWindow.cs b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Hierachy/UXHierachyWindow.cs deleted file mode 100644 index 9885c99..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Hierachy/UXHierachyWindow.cs +++ /dev/null @@ -1,1305 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using AlicizaX.UXTool; -using AlicizaX.UI; -using UnityEditor; -using UnityEditor.SceneManagement; -using UnityEditor.Experimental.SceneManagement; -using UnityEngine; -using UnityEngine.UIElements; -using Object = UnityEngine.Object; - -public class UXHierarchyWindow : EditorWindow -{ - const string FoldoutPrefsKeyBase = "UXHierarchy_Foldouts_v1"; // base key - const string WindowTitle = "UXHierarchy"; - - VisualElement root; - ScrollView scroll; - VisualElement treeContainer; - TextField searchField; - VisualElement rootDropZone; // accepts drops to root - - // foldout state: instanceID -> bool (true = expanded) - Dictionary foldStates = new Dictionary(); - - // flat ordered list of GameObjects displayed (for shift-range selection) - List flatList = new List(); - - // selection state in the window (keeps synced with UnityEditor.Selection) - List selectedObjects = new List(); - int lastClickedIndex = -1; - - // delete-key auto-repeat - bool deleteKeyHeld = false; - double nextAutoDeleteTime = 0; - const double DeleteInitialDelay = 0.35; - const double DeleteRepeatInterval = 0.08; - - // rename state - TextField activeRenameField = null; - - // drag feedback tracking - VisualElement currentDragTargetRow = null; - - enum DragDropMode - { - None, - InsertBefore, - InsertAfter, - MakeChild - } - - DragDropMode currentDragMode = DragDropMode.None; - - const float DragBorderWidth = 3f; // thickness of the insert line - - public static void ShowWindow() - { - var w = GetWindow(false, WindowTitle); - w.minSize = new Vector2(240, 200); - w.Show(); - } - - void OnEnable() - { - LoadFoldStates(); - - root = rootVisualElement; - root.styleSheets.Clear(); - root.style.paddingTop = 4; - root.style.paddingLeft = 4; - root.style.paddingRight = 4; - - // header row: search + refresh icon (removed title text) - var headerRow = new VisualElement(); - headerRow.style.flexDirection = FlexDirection.Row; - headerRow.style.alignItems = Align.Center; - headerRow.style.marginBottom = 6; - - // search icon - var searchIcon = new Image(); - Texture si = EditorGUIUtility.IconContent("Search Icon").image ?? EditorGUIUtility.IconContent("d_Search Icon").image ?? EditorGUIUtility.IconContent("SearchField").image; - if (si != null) - { - searchIcon.image = si; - searchIcon.style.width = 16; - searchIcon.style.height = 16; - searchIcon.style.marginRight = 4; - headerRow.Add(searchIcon); - } - - searchField = new TextField(); - searchField.name = "uxh-search"; - searchField.style.flexGrow = 1; - searchField.style.minWidth = 80; - searchField.tooltip = "Search by name (case-insensitive)"; - searchField.RegisterValueChangedCallback(evt => RebuildTree()); - headerRow.Add(searchField); - - // refresh icon-only button - var refreshBtn = new Button(() => RebuildTree()); - Texture rtex = EditorGUIUtility.IconContent("Refresh").image ?? EditorGUIUtility.IconContent("d_Refresh").image; - if (rtex != null) - { - var img = new Image() { image = rtex }; - img.style.width = 16; - img.style.height = 16; - refreshBtn.Add(img); - refreshBtn.tooltip = "Refresh"; - } - else - { - refreshBtn.text = "Refresh"; - } - - refreshBtn.style.marginLeft = 6; - headerRow.Add(refreshBtn); - - root.Add(headerRow); - - // scroll area - scroll = new ScrollView(ScrollViewMode.Vertical); - scroll.style.flexGrow = 1; - root.Add(scroll); - - // root drop zone: small area at top to drop to root - rootDropZone = new VisualElement(); - rootDropZone.style.height = 18; - rootDropZone.style.unityTextAlign = TextAnchor.MiddleCenter; - rootDropZone.style.marginBottom = 4; - rootDropZone.style.alignItems = Align.Center; - rootDropZone.style.justifyContent = Justify.Center; - rootDropZone.style.backgroundColor = new StyleColor(new Color(0, 0, 0, 0)); - rootDropZone.Add(new Label("Drop here to make root")); - scroll.contentContainer.Add(rootDropZone); - - treeContainer = new VisualElement(); - treeContainer.name = "treeContainer"; - treeContainer.style.flexDirection = FlexDirection.Column; - scroll.contentContainer.Add(treeContainer); - - // event handlers - root.RegisterCallback(OnKeyDown); - root.RegisterCallback(OnKeyUp); - root.RegisterCallback(e => StopRename()); - - scroll.AddManipulator(new ContextualMenuManipulator(evt => - { - if (PrefabStageUtils.InEmptyStage) return; - - var t = evt.target as VisualElement; - bool hasPathAncestor = false; - while (t != null) - { - if (t.userData is string) - { - hasPathAncestor = true; - break; - } - - t = t.parent as VisualElement; - } - - if (!hasPathAncestor) - { - evt.menu.AppendAction("创建空物体", a => CreateEmptyUI(null), a => DropdownMenuAction.Status.Normal); - CreateCommonUIMenu(evt, null); - } - })); - - scroll.RegisterCallback(evt => - { - if (evt.button != 0) return; - - VisualElement t = evt.target as VisualElement; - bool clickedRow = false; - - while (t != null) - { - if (t.ClassListContains("uxh-row") || t.userData is GameObject) - { - clickedRow = true; - break; - } - - t = t.parent as VisualElement; - } - - if (!clickedRow) - { - selectedObjects.Clear(); - Selection.objects = new Object[0]; - UpdateSelectionHighlighting(); - - evt.StopImmediatePropagation(); - } - }); - - - rootDropZone.RegisterCallback(evt => - { - if (PrefabStageUtils.InEmptyStage) return; - rootDropZone.style.backgroundColor = new StyleColor(new Color(0.2f, 0.2f, 0.2f, 0.06f)); - evt.StopImmediatePropagation(); - }); - rootDropZone.RegisterCallback(evt => - { - if (PrefabStageUtils.InEmptyStage) return; - rootDropZone.style.backgroundColor = new StyleColor(Color.clear); - if (currentDragTargetRow != null) - { - ClearDragHighlight(currentDragTargetRow); - } - - evt.StopImmediatePropagation(); - }); - rootDropZone.RegisterCallback(evt => - { - if (PrefabStageUtils.InEmptyStage) return; - if (DragAndDrop.objectReferences != null && DragAndDrop.objectReferences.Length > 0) DragAndDrop.visualMode = DragAndDropVisualMode.Move; - evt.StopImmediatePropagation(); - }); - rootDropZone.RegisterCallback(evt => - { - if (DragAndDrop.objectReferences != null && DragAndDrop.objectReferences.Length > 0 && !PrefabStageUtils.InEmptyStage) - { - var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - Transform rootParent = null; - if (prefabStage != null && prefabStage.prefabContentsRoot != null) - rootParent = prefabStage.prefabContentsRoot.transform; - else - rootParent = null; // null means scene root - - // perform reparent to root (or to prefabContentsRoot) - foreach (var o in DragAndDrop.objectReferences) - { - var draggedGO = o as GameObject; - if (draggedGO == null) continue; - // if drag source is same prefab, allow - if (rootParent != null) - { - Undo.SetTransformParent(draggedGO.transform, rootParent, "Reparent to root (UXHierarchy)"); - draggedGO.transform.SetSiblingIndex(rootParent.childCount - 1); - } - else - { - // move to scene root - Undo.SetTransformParent(draggedGO.transform, null, "Reparent to root (UXHierarchy)"); - } - } - - if (prefabStage != null) - { - try - { - EditorSceneManager.MarkSceneDirty(prefabStage.scene); - } - catch - { - } - } - else - { - EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); - } - - RebuildTree(); - DragAndDrop.AcceptDrag(); - } - - rootDropZone.style.backgroundColor = new StyleColor(Color.clear); - evt.StopImmediatePropagation(); - }); - - // clear drag highlight when leaving the whole tree or root - treeContainer.RegisterCallback(evt => - { - if (currentDragTargetRow != null) - { - ClearDragHighlight(currentDragTargetRow); - } - - evt.StopImmediatePropagation(); - }); - root.RegisterCallback(evt => - { - if (currentDragTargetRow != null) - { - ClearDragHighlight(currentDragTargetRow); - } - - rootDropZone.style.backgroundColor = new StyleColor(Color.clear); - evt.StopImmediatePropagation(); - }); - - // keep selection in sync if external selection changes - Selection.selectionChanged += OnUnitySelectionChanged; - - // hierarchy changes (scene/prefab content changes) - EditorApplication.hierarchyChanged += OnHierarchyChanged; - EditorApplication.update += EditorUpdate; - - RebuildTree(); - } - - void OnDisable() - { - Selection.selectionChanged -= OnUnitySelectionChanged; - EditorApplication.hierarchyChanged -= OnHierarchyChanged; - EditorApplication.update -= EditorUpdate; - - SaveFoldStates(); - } - - void OnHierarchyChanged() - { - RebuildTree(); - } - - void EditorUpdate() - { - // handle delete auto-repeat while held - if (deleteKeyHeld && EditorApplication.timeSinceStartup >= nextAutoDeleteTime) - { - DoDeleteSelected(); - nextAutoDeleteTime = EditorApplication.timeSinceStartup + DeleteRepeatInterval; - } - } - - void OnUnitySelectionChanged() - { - var sel = Selection.gameObjects.ToList(); - selectedObjects = sel; - UpdateSelectionHighlighting(); - Repaint(); - } - - void RebuildTree() - { - // clear any drag highlight to avoid residual visuals - if (currentDragTargetRow != null) - { - ClearDragHighlight(currentDragTargetRow); - currentDragTargetRow = null; - currentDragMode = DragDropMode.None; - } - - treeContainer.Clear(); - flatList.Clear(); - - string search = (searchField != null) ? searchField.value?.Trim() ?? "" : ""; - - var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - if (prefabStage != null && prefabStage.prefabContentsRoot != null) - { - var root = prefabStage.prefabContentsRoot; - var prefabRoot = prefabStage.prefabContentsRoot.GetComponent() != null ? root.transform : root.transform.parent; - for (int i = 0; i < prefabRoot.transform.childCount; ++i) - { - var child = prefabRoot.transform.GetChild(i).gameObject; - var node = CreateNodeRecursive(child, 0, search); - if (node != null) treeContainer.Add(node); - } - } - else - { - var roots = EditorSceneManager.GetActiveScene().GetRootGameObjects(); - foreach (var go in roots) - { - var node = CreateNodeRecursive(go, 0, search); - if (node != null) treeContainer.Add(node); - } - } - - UpdateSelectionHighlighting(); - } - - VisualElement CreateNodeRecursive(GameObject go, int indent, string search) - { - // decide whether this node or any descendant matches the search - bool matches = string.IsNullOrEmpty(search) || go.name.IndexOf(search, StringComparison.OrdinalIgnoreCase) >= 0; - bool isPrefab = PrefabUtility.IsPartOfAnyPrefab(go); - // process children - List childNodes = new List(); - if (!isPrefab) - { - for (int i = 0; i < go.transform.childCount; ++i) - { - var child = go.transform.GetChild(i).gameObject; - var childNode = CreateNodeRecursive(child, indent + 1, search); - if (childNode != null) childNodes.Add(childNode); - } - } - - // if nothing matches and no children match, skip - if (!matches && childNodes.Count == 0) return null; - - // otherwise build node - flatList.Add(go); - int indexInFlat = flatList.Count - 1; - - var node = new VisualElement(); - node.style.flexDirection = FlexDirection.Column; - node.userData = go; - - // row - var row = new VisualElement(); - row.style.flexDirection = FlexDirection.Row; - row.style.alignItems = Align.Center; - row.style.paddingLeft = indent * 12; - row.style.paddingTop = 2; - row.style.paddingBottom = 2; - row.style.flexGrow = 0; - row.AddToClassList("uxh-row"); - row.style.paddingRight = 6; - - // only show fold icon if we have visible children - bool hasVisibleChildren = childNodes.Count > 0; - Label foldLabel = null; - - if (hasVisibleChildren && !isPrefab) - { - foldLabel = new Label(); - foldLabel.style.width = 16; - foldLabel.style.height = 16; - foldLabel.style.alignSelf = Align.Center; - foldLabel.style.marginRight = 4; - foldLabel.style.unityTextAlign = TextAnchor.MiddleCenter; - foldLabel.tooltip = "Expand / Collapse"; - - int id = go.GetInstanceID(); - bool expanded = foldStates.ContainsKey(id) ? foldStates[id] : true; - foldLabel.text = expanded ? "▼" : "▶"; - foldLabel.style.unityFontStyleAndWeight = FontStyle.Bold; - foldLabel.style.fontSize = 10; - foldLabel.style.color = new StyleColor(new Color(0.55f, 0.55f, 0.55f)); - - // toggle on click - foldLabel.RegisterCallback((evt) => - { - if (evt.button == 0) - { - expanded = !expanded; - foldStates[id] = expanded; - foldLabel.text = expanded ? "▼" : "▶"; - SaveFoldStates(); - var childrenContainer = node.Q("children"); - if (childrenContainer != null) - childrenContainer.style.display = expanded ? DisplayStyle.Flex : DisplayStyle.None; - evt.StopImmediatePropagation(); - } - }); - - // hover color - foldLabel.RegisterCallback((evt) => foldLabel.style.color = new StyleColor(Color.white)); - foldLabel.RegisterCallback((evt) => foldLabel.style.color = new StyleColor(new Color(0.55f, 0.55f, 0.55f))); - - row.Add(foldLabel); - } - else - { - // add spacer so icons align - var spacer = new VisualElement(); - spacer.style.width = 16; - spacer.style.height = 16; - spacer.style.marginRight = 4; - row.Add(spacer); - } - - // icon - var icon = new Image(); - icon.image = GetObjectIcon(go); - icon.style.width = 16; - icon.style.height = 16; - icon.style.alignSelf = Align.Center; - icon.style.marginRight = 4; - row.Add(icon); - - // label - var label = new Label(go.name); - label.style.flexGrow = 1; - label.style.unityTextAlign = TextAnchor.MiddleLeft; - label.userData = indexInFlat; - row.Add(label); - - row.AddManipulator(new ContextualMenuManipulator(evt => - { - // right click: node menu - if (evt.button == 1 && !PrefabStageUtils.InEmptyStage) - { - SelectSingle(go); - evt.menu.AppendAction("创建空物体", a => CreateEmptyUI(go), a => DropdownMenuAction.Status.Normal); - evt.menu.AppendAction("删除", a => - { - SelectSingle(go); - DoDeleteSelected(); - }, a => DropdownMenuAction.Status.Normal); - CreateCommonUIMenu(evt, go); - CreateControlerUIMenu(evt, go); - evt.StopImmediatePropagation(); - } - })); - // mouse handling - row.RegisterCallback(evt => - { - // left click selection - if (evt.button == 0) - { - bool ctrl = evt.ctrlKey || evt.commandKey; - bool shift = evt.shiftKey; - - int clickedIndex = (int)label.userData; - - if (shift && lastClickedIndex >= 0) - { - int a = Math.Min(lastClickedIndex, clickedIndex); - int b = Math.Max(lastClickedIndex, clickedIndex); - var range = flatList.GetRange(a, b - a + 1); - selectedObjects = range.Where(x => x != null).ToList(); - Selection.objects = selectedObjects.ToArray(); - } - else if (ctrl) - { - if (selectedObjects.Contains(go)) selectedObjects.Remove(go); - else selectedObjects.Add(go); - Selection.objects = selectedObjects.ToArray(); - lastClickedIndex = clickedIndex; - } - else - { - SelectSingle(go); - lastClickedIndex = clickedIndex; - } - - evt.StopImmediatePropagation(); - } - - // double-click print name - if (evt.clickCount == 2 && evt.button == 0 && isPrefab) - { - var prefabAsset = PrefabUtility.GetCorrespondingObjectFromSource(go); - var prefabPath = AssetDatabase.GetAssetPath(prefabAsset); - if (prefabPath.StartsWith(Def_UXGUIPath.UIResRootPath)) - { - PrefabStageUtils.SwitchStage(prefabPath); - } - - evt.StopImmediatePropagation(); - } - }); - - // drag start: when moving mouse while left pressed - row.RegisterCallback(evt => - { - if (evt.pressedButtons == 1) - { - if (!selectedObjects.Contains(go)) SelectSingle(go); - DragAndDrop.PrepareStartDrag(); - DragAndDrop.objectReferences = selectedObjects.ToArray(); - DragAndDrop.StartDrag("UXHierarchyDrag"); - evt.StopImmediatePropagation(); - } - }); - - // drag feedback & drop handling on row - row.RegisterCallback(evt => - { - /* highlight handled in DragUpdated */ - evt.StopImmediatePropagation(); - }); - row.RegisterCallback(evt => - { - ClearDragHighlight(row); - evt.StopImmediatePropagation(); - }); - row.RegisterCallback(evt => - { - if (DragAndDrop.objectReferences != null && DragAndDrop.objectReferences.Length > 0) - { - // compute position ratio - float h = Math.Max(1.0f, row.layout.height); - float y = evt.localMousePosition.y; - float ratio = y / h; - - DragAndDrop.visualMode = DragAndDropVisualMode.Move; - - DragDropMode mode; - if (ratio < 0.25f) mode = DragDropMode.InsertBefore; - else if (ratio > 0.75f) mode = DragDropMode.InsertAfter; - else mode = DragDropMode.MakeChild; - - // only update highlight if changed to reduce style churn - if (currentDragTargetRow != row || currentDragMode != mode) - ApplyDragHighlight(row, mode); - } - - evt.StopImmediatePropagation(); - }); - - row.RegisterCallback(evt => - { - if (DragAndDrop.objectReferences != null && DragAndDrop.objectReferences.Length > 0) - { - float h = Math.Max(1.0f, row.layout.height); - float y = evt.localMousePosition.y; - float ratio = y / h; - - DragDropMode mode; - if (ratio < 0.25f) mode = DragDropMode.InsertBefore; - else if (ratio > 0.75f) mode = DragDropMode.InsertAfter; - else mode = DragDropMode.MakeChild; - - PerformDropOnRow(go, mode); - DragAndDrop.AcceptDrag(); - } - - ClearDragHighlight(row); - evt.StopImmediatePropagation(); - }); - - // add row to node - node.Add(row); - - // children container - var childrenContainer = new VisualElement(); - childrenContainer.name = "children"; - childrenContainer.style.flexDirection = FlexDirection.Column; - childrenContainer.style.marginLeft = 0; - childrenContainer.style.display = hasVisibleChildren ? DisplayStyle.Flex : DisplayStyle.None; - node.Add(childrenContainer); - - // populate visible children - foreach (var cn in childNodes) childrenContainer.Add(cn); - - return node; - } - - void ApplyDragHighlight(VisualElement row, DragDropMode mode) - { - // clear previous if different - if (currentDragTargetRow != null && currentDragTargetRow != row) - { - ClearDragHighlight(currentDragTargetRow); - currentDragTargetRow = null; - currentDragMode = DragDropMode.None; - } - - // store - currentDragTargetRow = row; - currentDragMode = mode; - - // reset style first - row.style.borderTopWidth = new StyleFloat(0f); - row.style.borderBottomWidth = new StyleFloat(0f); - row.style.borderLeftWidth = new StyleFloat(0f); - row.style.borderRightWidth = new StyleFloat(0f); - row.style.borderTopColor = new StyleColor(Color.clear); - row.style.borderBottomColor = new StyleColor(Color.clear); - row.style.backgroundColor = new StyleColor(Color.clear); - - if (mode == DragDropMode.InsertBefore) - { - row.style.borderTopWidth = new StyleFloat(DragBorderWidth); - row.style.borderTopColor = new StyleColor(Color.cyan); - } - else if (mode == DragDropMode.InsertAfter) - { - row.style.borderBottomWidth = new StyleFloat(DragBorderWidth); - row.style.borderBottomColor = new StyleColor(Color.cyan); - } - else if (mode == DragDropMode.MakeChild) - { - row.style.backgroundColor = new StyleColor(new Color(0.2f, 0.2f, 0.2f, 0.06f)); - } - } - - void ClearDragHighlight(VisualElement row) - { - if (row == null) return; - row.style.borderTopWidth = new StyleFloat(0f); - row.style.borderBottomWidth = new StyleFloat(0f); - row.style.borderLeftWidth = new StyleFloat(0f); - row.style.borderRightWidth = new StyleFloat(0f); - row.style.borderTopColor = new StyleColor(Color.clear); - row.style.borderBottomColor = new StyleColor(Color.clear); - row.style.backgroundColor = new StyleColor(Color.clear); - if (currentDragTargetRow == row) - { - currentDragTargetRow = null; - currentDragMode = DragDropMode.None; - } - } - - void PerformDropOnRow(GameObject targetGO, DragDropMode mode) - { - var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - Transform targetParent = null; - - if (mode == DragDropMode.MakeChild) - { - targetParent = targetGO.transform; - } - else - { - // insert before/after among targetGO's siblings - targetParent = targetGO.transform.parent; - } - - foreach (var o in DragAndDrop.objectReferences) - { - var draggedGO = o as GameObject; - if (draggedGO == null) continue; - // prevent making parent its own child - if (IsAncestor(draggedGO.transform, targetGO.transform)) continue; - - if (mode == DragDropMode.MakeChild) - { - Undo.SetTransformParent(draggedGO.transform, targetParent, "Reparent GameObject (UXHierarchy)"); - // place at end - draggedGO.transform.SetSiblingIndex(targetParent.childCount - 1); - } - else - { - // when targetParent == null -> scene root - Undo.SetTransformParent(draggedGO.transform, targetParent, "Reparent GameObject (UXHierarchy)"); - - int targetIndex; - if (targetParent != null) - { - var siblings = GetSiblings(targetParent); - targetIndex = Array.IndexOf(siblings, targetGO); - } - else - { - var roots = GetSceneRoots(); - targetIndex = Array.IndexOf(roots, targetGO); - } - - if (targetIndex < 0) targetIndex = 0; - int finalIndex = (mode == DragDropMode.InsertBefore) ? targetIndex : targetIndex + 1; - - // clamp finalIndex - int maxIndex = (targetParent != null) ? targetParent.childCount : GetSceneRoots().Length; - finalIndex = Mathf.Clamp(finalIndex, 0, maxIndex); - - draggedGO.transform.SetSiblingIndex(finalIndex); - } - } - - if (prefabStage != null) - { - try - { - EditorSceneManager.MarkSceneDirty(prefabStage.scene); - } - catch - { - } - } - else - { - EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); - } - - RebuildTree(); - } - - GameObject[] GetSiblings(Transform parent) - { - if (parent == null) return new GameObject[0]; - var arr = new GameObject[parent.childCount]; - for (int i = 0; i < parent.childCount; ++i) arr[i] = parent.GetChild(i).gameObject; - return arr; - } - - GameObject[] GetSceneRoots() - { - var roots = EditorSceneManager.GetActiveScene().GetRootGameObjects(); - return roots; - } - - bool IsAncestor(Transform potentialChild, Transform potentialAncestor) - { - if (potentialChild == null || potentialAncestor == null) return false; - var t = potentialAncestor; - while (t != null) - { - if (t == potentialChild) return true; - t = t.parent; - } - - return false; - } - - Texture GetObjectIcon(GameObject go) - { - try - { - if (PrefabUtility.IsPartOfAnyPrefab(go)) - { - var prefabAsset = PrefabUtility.GetCorrespondingObjectFromSource(go); - if (prefabAsset != null) return EditorGUIUtility.ObjectContent(prefabAsset, typeof(GameObject)).image; - } - } - catch - { - } - - return EditorGUIUtility.ObjectContent(go, typeof(GameObject)).image; - } - - void UpdateSelectionHighlighting() - { - var rows = treeContainer.Query(className: "uxh-row").ToList(); - foreach (var r in rows) - { - var go = r.parent.userData as GameObject; - if (go != null && selectedObjects.Contains(go)) - { - r.style.backgroundColor = new StyleColor(new Color(0.24f, 0.48f, 0.78f, 0.18f)); - } - else - { - r.style.backgroundColor = new StyleColor(Color.clear); - } - } - } - - void SelectSingle(GameObject go) - { - selectedObjects = new List { go }; - Selection.objects = selectedObjects.ToArray(); - UpdateSelectionHighlighting(); - } - - void OnKeyDown(KeyDownEvent evt) - { - if (evt.keyCode == KeyCode.Delete || evt.keyCode == KeyCode.Backspace) - { - deleteKeyHeld = true; - nextAutoDeleteTime = EditorApplication.timeSinceStartup + DeleteInitialDelay; - DoDeleteSelected(); - evt.StopImmediatePropagation(); - return; - } - - if (evt.keyCode == KeyCode.F2) - { - // ensure F2 triggers rename even if UI focus is elsewhere - if (Selection.activeGameObject != null) - StartRenameFor(Selection.activeGameObject); - evt.StopImmediatePropagation(); - return; - } - - if ((evt.ctrlKey || evt.commandKey) && evt.keyCode == KeyCode.A) - { - selectedObjects = flatList.Where(x => x != null).ToList(); - Selection.objects = selectedObjects.ToArray(); - UpdateSelectionHighlighting(); - evt.StopImmediatePropagation(); - return; - } - - if ((evt.ctrlKey || evt.commandKey) && evt.keyCode == KeyCode.D) - { - DuplicateSelected(); - evt.StopImmediatePropagation(); - return; - } - } - - void OnKeyUp(KeyUpEvent evt) - { - if (evt.keyCode == KeyCode.Delete || evt.keyCode == KeyCode.Backspace) - { - deleteKeyHeld = false; - evt.StopImmediatePropagation(); - return; - } - } - - // also catch F2 and Delete in IMGUI OnGUI (helps when UI Toolkit root doesn't have keyboard focus) - void OnGUI() - { - var e = Event.current; - if (e.type == EventType.KeyDown) - { - if (e.keyCode == KeyCode.F2) - { - if (Selection.activeGameObject != null) - { - StartRenameFor(Selection.activeGameObject); - e.Use(); - } - } - else if (e.keyCode == KeyCode.Delete || e.keyCode == KeyCode.Backspace) - { - DoDeleteSelected(); - e.Use(); - } - else if ((e.control || e.command) && e.keyCode == KeyCode.D) - { - DuplicateSelected(); - e.Use(); - } - } - } - - void DuplicateSelected() - { - if (selectedObjects == null || selectedObjects.Count == 0) return; - - var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - Transform rootPrefab = (prefabStage != null && prefabStage.prefabContentsRoot != null) - ? prefabStage.prefabContentsRoot.transform - : null; - - // 收集有效的原对象(排除 null) - var originals = selectedObjects.Where(x => x != null).ToList(); - if (originals.Count == 0) return; - - // 按 parent 分组,这样可以为每个 parent 保持插入索引逻辑 - var grouped = originals.GroupBy(go => go.transform.parent); - - List newSelections = new List(); - - foreach (var grp in grouped) - { - Transform parent = grp.Key; // 可能为 null(场景根) - // 按 sibling index 升序处理,避免插入时索引错乱 - var items = grp.OrderBy(g => g.transform.GetSiblingIndex()).ToList(); - int insertedCount = 0; - - foreach (var original in items) - { - if (original == null) continue; - // 不要复制 prefab contents root 本身 - if (rootPrefab != null && original == rootPrefab.gameObject) continue; - - // 实例化(会复制子物体和所有组件的当前值) - GameObject dup = (GameObject)Object.Instantiate(original); - - // 让名字在同父级下唯一(简单实现),避免大量 "(Clone)" 风格名字 - dup.name = GetUniqueNameInParent(original.name, parent); - - // 注册 Undo(便于撤销) - Undo.RegisterCreatedObjectUndo(dup, "Duplicate GameObject (UXHierarchy)"); - - // 设置 parent & sibling index (使用 SetParent(false) 保持本地变换) - if (parent != null) - { - dup.transform.SetParent(parent, false); - int origIndex = original.transform.GetSiblingIndex(); - int finalIndex = Mathf.Clamp(origIndex + 1 + insertedCount, 0, parent.childCount - 1); - dup.transform.SetSiblingIndex(finalIndex); - } - else - { - // 场景根 - dup.transform.SetParent(null); - int origIndex = original.transform.GetSiblingIndex(); - int finalIndex = Mathf.Clamp(origIndex + 1 + insertedCount, 0, GetSceneRoots().Length - 1); - dup.transform.SetSiblingIndex(finalIndex); - } - - newSelections.Add(dup); - insertedCount++; - } - } - - // 把 Selection 设置为新复制的对象 - Selection.objects = newSelections.Cast().ToArray(); - selectedObjects = newSelections; - - // 标记脏并刷新树视图 - if (prefabStage != null) - { - try - { - EditorSceneManager.MarkSceneDirty(prefabStage.scene); - } - catch - { - } - } - else - { - EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); - } - - RebuildTree(); - UpdateSelectionHighlighting(); - Repaint(); - } - -// 简单的在父级中创建不同名的方法(避免与同名 sibling 冲突) - string GetUniqueNameInParent(string baseName, Transform parent) - { - GameObject[] siblings = parent != null ? GetSiblings(parent) : GetSceneRoots(); - string name = baseName; - int suffix = 1; - // 如果已存在相同名字,则追加 " 1", " 2" ...(你可以改成其它命名规则) - while (siblings.Any(g => g != null && g.name == name)) - { - name = baseName + " " + suffix; - suffix++; - } - - return name; - } - - void DoDeleteSelected() - { - if (selectedObjects == null || selectedObjects.Count == 0) return; - - if (selectedObjects.Count > 10) - { - if (!EditorUtility.DisplayDialog("Delete objects", $"Delete {selectedObjects.Count} objects?", "Delete", "Cancel")) - return; - } - - var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - var rootPrefab = prefabStage.prefabContentsRoot; - - foreach (var go in selectedObjects.ToArray()) - { - if (go == null) continue; - if (rootPrefab == go) - { - Debug.Log("Component Root Node Can Not Delete"); - continue; - } - - Undo.DestroyObjectImmediate(go); - } - - selectedObjects.Clear(); - Selection.objects = new Object[0]; - - if (prefabStage != null) - { - try - { - EditorSceneManager.MarkSceneDirty(prefabStage.scene); - } - catch - { - } - } - else - { - EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); - } - - RebuildTree(); - } - - void StartRenameFor(GameObject go) - { - if (go == null) return; - var nodes = treeContainer.Query().Where(n => n.userData == go).ToList(); - if (nodes.Count > 0) - { - var node = nodes[0]; - var row = node.ElementAt(0); - // find the label child (not other labels) - Label label = null; - foreach (var child in row.Children()) - { - if (child is Label l && l.userData is int) - { - label = l; - break; - } - } - - if (label != null) StartRename(row, go, label); - else Debug.LogWarning("UXHierarchy: cannot find label to rename."); - } - } - - void StartRename(VisualElement row, GameObject go, Label label) - { - StopRename(); - - var tf = new TextField(); - tf.value = go.name; - tf.style.flexGrow = 1; - tf.style.marginLeft = 0; - tf.style.marginRight = 0; - - int idx = row.IndexOf(label); - if (idx >= 0) - { - row.Remove(label); - row.Insert(idx, tf); - tf.Focus(); - tf.SelectAll(); - activeRenameField = tf; - - tf.RegisterCallback(evt => - { - if (evt.keyCode == KeyCode.Return || evt.keyCode == KeyCode.KeypadEnter) - { - CommitRename(go, tf.value); - evt.StopImmediatePropagation(); - } - else if (evt.keyCode == KeyCode.Escape) - { - CancelRename(row, tf, label); - evt.StopImmediatePropagation(); - } - }); - - tf.RegisterCallback(evt => { CommitRename(go, tf.value); }); - } - } - - void CommitRename(GameObject go, string newName) - { - if (go == null) return; - if (newName == go.name) - { - StopRename(); - return; - } - - Undo.RecordObject(go, "Rename GameObject (UXHierarchy)"); - go.name = newName; - EditorUtility.SetDirty(go); - StopRename(); - - var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - if (prefabStage != null) - { - try - { - EditorSceneManager.MarkSceneDirty(prefabStage.scene); - } - catch - { - } - } - - RebuildTree(); - } - - void CancelRename(VisualElement row, TextField tf, Label label) - { - int idx = row.IndexOf(tf); - if (idx >= 0) - { - row.Remove(tf); - row.Insert(idx, label); - } - - activeRenameField = null; - } - - void StopRename() - { - if (activeRenameField == null) return; - var tf = activeRenameField; - var parent = tf.parent; - if (parent != null) - { - var label = new Label(tf.value); - label.style.flexGrow = 1; - int idx = parent.IndexOf(tf); - parent.Remove(tf); - parent.Insert(idx, label); - } - - activeRenameField = null; - } - - // New: create empty UI GameObject with RectTransform. If parentGO is null, create at root or prefab root - void CreateEmptyUI(GameObject parentGO) - { - var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - Transform parentTransform = null; - if (parentGO != null) - parentTransform = parentGO.transform; - else if (prefabStage != null && prefabStage.prefabContentsRoot != null) - parentTransform = prefabStage.prefabContentsRoot.transform; - else - parentTransform = null; // scene root - - var go = new GameObject("New UI Empty", typeof(RectTransform)); - Undo.RegisterCreatedObjectUndo(go, "Create New UI Empty (UXHierarchy)"); - if (parentTransform != null) - { - go.transform.SetParent(parentTransform, false); - } - // else leave at scene root (transform.parent == null) - - Selection.activeGameObject = go; - if (prefabStage != null) - { - try - { - EditorSceneManager.MarkSceneDirty(prefabStage.scene); - } - catch - { - } - } - else - { - EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); - } - - RebuildTree(); - } - - // fold state persistence keyed by context (prefab asset path or scene path) - string GetFoldPrefsKey() - { - var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - if (prefabStage != null) - { - var path = prefabStage.assetPath; - if (string.IsNullOrEmpty(path)) path = "prefab_unknown"; - return $"{FoldoutPrefsKeyBase}::prefab::{path}"; - } - else - { - var scene = EditorSceneManager.GetActiveScene(); - var sp = string.IsNullOrEmpty(scene.path) ? "scene_unsaved" : scene.path; - return $"{FoldoutPrefsKeyBase}::scene::{sp}"; - } - } - - void SaveFoldStates() - { - try - { - var entries = foldStates.Select(kv => $"{kv.Key}:{(kv.Value ? 1 : 0)}"); - var joined = string.Join(",", entries); - EditorPrefs.SetString(GetFoldPrefsKey(), joined); - } - catch (Exception ex) - { - Debug.LogWarning("UXHierarchy could not save fold states: " + ex.Message); - } - } - - void LoadFoldStates() - { - foldStates.Clear(); - var key = GetFoldPrefsKey(); - if (EditorPrefs.HasKey(key)) - { - var joined = EditorPrefs.GetString(key); - if (!string.IsNullOrEmpty(joined)) - { - try - { - var parts = joined.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); - foreach (var p in parts) - { - var kv = p.Split(':'); - if (kv.Length == 2) - { - if (int.TryParse(kv[0], out int id) && int.TryParse(kv[1], out int v)) - { - foldStates[id] = (v == 1); - } - } - } - } - catch - { - foldStates.Clear(); - } - } - } - } - - private void CreateCommonUIMenu(ContextualMenuPopulateEvent evt, GameObject target) - { - MenuCommand command = new MenuCommand(target); - evt.menu.AppendSeparator(); - evt.menu.AppendAction("UXImage", a => { UXCreateHelper.CreateUXImage(command); }, a => DropdownMenuAction.Status.Normal); - evt.menu.AppendAction("UXTextMeshPro", a => { UXCreateHelper.CreateUXTextMeshPro(command); }, a => DropdownMenuAction.Status.Normal); - evt.menu.AppendAction("UXButton", a => { UXCreateHelper.CreateUXButton(command); }, a => DropdownMenuAction.Status.Normal); - evt.menu.AppendAction("UXInput Field", a => { UXCreateHelper.CreateUXInputField(command); }, a => DropdownMenuAction.Status.Normal); - evt.menu.AppendAction("UXScrollView", a => { UXCreateHelper.CreateUxRecyclerView(); }, a => DropdownMenuAction.Status.Normal); - evt.menu.AppendAction("UXSlider", a => { UXCreateHelper.CreateUXToggle(command); }, a => DropdownMenuAction.Status.Normal); - } - - private void CreateControlerUIMenu(ContextualMenuPopulateEvent evt, GameObject target) - { - evt.menu.AppendSeparator(); - evt.menu.AppendAction("添加控制器", a => - { - if (!target.TryGetComponent(typeof(UXControllerStateRecorder), out Component controller)) - { - target.AddComponent(typeof(UXControllerStateRecorder)); - } - }, a => DropdownMenuAction.Status.Normal); - } -} diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Hierachy/UXHierachyWindow.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Hierachy/UXHierachyWindow.cs.meta deleted file mode 100644 index a7b581e..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Hierachy/UXHierachyWindow.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 460b36db23659db4cb26ee8ba3234ad9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/PrefabTab.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/PrefabTab.meta deleted file mode 100644 index 292a649..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/PrefabTab.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8268cda376c28d14db254b78f6c56df7 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/PrefabTab/PrefabSingleTab.cs b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/PrefabTab/PrefabSingleTab.cs deleted file mode 100644 index 85b160b..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/PrefabTab/PrefabSingleTab.cs +++ /dev/null @@ -1,166 +0,0 @@ -#if UNITY_EDITOR -using UnityEditor; -using UnityEngine.UIElements; -using System.IO; -using UnityEngine; -using System; - -namespace AlicizaX.UXTool -{ - public class PrefabSingleTab : VisualElement - { - public Button visual; - private string m_guid; - private static int m_maxwidth = PrefabTabs.m_maxWidth; - private static int m_minwidth = PrefabTabs.m_minWidth; - private static int m_maxcharacters = PrefabTabs.m_maxCharacters; - private static int m_mincharacters = PrefabTabs.m_minCharacters; - - public PrefabSingleTab(FileInfo info, string guid, int prefabcounts, bool isclose, int width) - { - // 计算每个 tab 的推荐宽度(防空) - SceneView sceneView = SceneView.lastActiveSceneView; - int prewidth = 100; - if (sceneView != null && prefabcounts > 0) - { - prewidth = Mathf.Max(1, (int)sceneView.position.width / Math.Max(1, prefabcounts)); - } - - // 根 Button(用于作为 tab 容器并响应 click) - visual = new Button(); - visual.name = "Tab"; - - // 基本样式(尽量还原 UXML 的样式) - visual.style.height = 20; - visual.style.flexDirection = FlexDirection.Row; - visual.style.alignItems = Align.Center; - visual.style.justifyContent = Justify.FlexStart; - visual.style.unityTextAlign = TextAnchor.MiddleCenter; - visual.style.backgroundColor = new StyleColor(new Color(60f / 255f, 60f / 255f, 60f / 255f, 1f)); - // margin、padding、border 等默认即可 - - // Label - Label label = new Label(); - label.name = "Label"; - label.style.paddingLeft = 5; - label.style.whiteSpace = WhiteSpace.NoWrap; - label.style.unityTextAlign = TextAnchor.MiddleCenter; - label.style.alignSelf = Align.Center; - // label 默认宽度稍后设置为 nowwidth - - // 关闭按钮 - Button close = new Button(); - close.name = "Close"; - close.style.width = 20; - close.style.height = 20; - close.style.alignSelf = Align.Center; - close.style.marginLeft = 3; - close.style.marginRight = 3; - - close.style.backgroundImage = new StyleBackground(EditorGUIUtility.IconContent("d_winbtn_mac_close_a").image as Texture2D); - close.style.backgroundSize = new BackgroundSize(new Length(80, LengthUnit.Percent), new Length(80, LengthUnit.Percent)); - close.style.backgroundColor = Color.clear; - close.style.borderLeftWidth = 0; - close.style.borderRightWidth = 0; - - visual.Add(label); - visual.Add(close); - - int nowwidth = m_maxwidth; - if (isclose) - { - label.style.width = width; - nowwidth = width; - } - else - { - int computed = Math.Min(Math.Max(m_minwidth, prewidth), m_maxwidth); - label.style.width = computed; - nowwidth = computed; - } - - int nowCharacterscounts = m_maxcharacters; - if (nowwidth < m_maxwidth) - nowCharacterscounts = Math.Max(m_maxcharacters - (int)((m_maxwidth - nowwidth) / 10), m_mincharacters); - - m_guid = guid; - string fileName = Path.GetFileNameWithoutExtension(info.Name); - label.text = SetTextWithEllipsis(nowCharacterscounts, fileName); - - // 事件绑定(与原逻辑一致) - close.clickable.activators.Add(new ManipulatorActivationFilter { button = MouseButton.LeftMouse }); - close.clicked += OnClose; - close.RegisterCallback(OnHoverClose, close); - close.RegisterCallback(OnHoverClose, close); - - visual.RegisterCallback(OnHoverChange); - visual.RegisterCallback(OnHoverChange); - - visual.clickable.activators.Add(new ManipulatorActivationFilter { button = MouseButton.LeftMouse }); - visual.clicked += OnClick; - visual.RegisterCallback(Callback); - - // 将 visual 作为当前元素的一部分(方便外部访问 this.visual) - this.Add(visual); - } - - private void Callback(MouseDownEvent e) - { - if (e.button == 1) - { - ContextMenuUtils.Menu.BuildPrefabTabMenuItem(m_guid); - ContextMenuUtils.ShowContextMenu(); - } - } - - private void OnHoverChange(EventBase e) - { - if (m_guid == PrefabTabs.SelectedGuid) return; - if (e.eventTypeId == MouseEnterEvent.TypeId()) - { - visual.style.backgroundColor = new StyleColor(new Color(78f / 255f, 78f / 255f, 78f / 255f, 1f)); - } - else if (e.eventTypeId == MouseLeaveEvent.TypeId()) - { - visual.style.backgroundColor = new StyleColor(new Color(60f / 255f, 60f / 255f, 60f / 255f, 1f)); - } - } - - private void OnHoverClose(EventBase e, VisualElement close) - { - // if (e.eventTypeId == MouseEnterEvent.TypeId()) - // { - // close.style.backgroundColor = new StyleColor(new Color(60f / 255f, 60f / 255f, 60f / 255f, 1f)); - // } - // else if (e.eventTypeId == MouseLeaveEvent.TypeId()) - // { - // close.style.backgroundColor = new StyleColor(new Color(60f / 255f, 60f / 255f, 60f / 255f, 0f)); - // } - } - - private void OnClick() - { - PrefabTabs.OpenTab(m_guid, true); - } - - private void OnClose() - { - PrefabTabs.CloseTab(m_guid); - } - - private string SetTextWithEllipsis(int count, string name) - { - if (name.Length <= count) - { - return name; - } - else - { - string ans = name.Substring(0, Math.Max(0, count - 3)); - ans += "..."; - return ans; - } - } - } -} -#endif diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/PrefabTab/PrefabSingleTab.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/PrefabTab/PrefabSingleTab.cs.meta deleted file mode 100644 index 80b1249..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/PrefabTab/PrefabSingleTab.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 99285ec27ea549d99d16c4fd764c42a9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/PrefabTab/PrefabTabs.cs b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/PrefabTab/PrefabTabs.cs deleted file mode 100644 index 851c0e3..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/PrefabTab/PrefabTabs.cs +++ /dev/null @@ -1,250 +0,0 @@ -using UnityEditor; -using UnityEngine; -using UnityEngine.UIElements; -using System.Linq; -using System; -using System.IO; -using System.Collections.Generic; -using UnityEditor.SceneManagement; -using UXScroller = UnityEngine.UIElements.Scroller; - -namespace AlicizaX.UXTool -{ - public static class PrefabTabs - { - public static readonly int m_maxCharacters = 20; - public static readonly int m_minCharacters = 13; - public static readonly int m_maxWidth = 150; - public static readonly int m_minWidth = 100; - - public static VisualElement prefabTabsPanel; - private static ScrollView TabsList; - private static List m_tabs; - private static string m_selectedTab; - private static SceneView sceneView = SceneView.lastActiveSceneView; - private static int width; - - public static string SelectedGuid - { - get { return m_selectedTab; } - set - { - m_selectedTab = value; - EditorPrefs.SetString("AlicizaUXTool_SelectedTab", value); // 记录当前选中的Tab - } - } - - [InitializeOnLoadMethod] - public static void Initialize() - { - UXDesinUtil.OnEnterDesignMode += RegisterEvents; - UXDesinUtil.OnExitDesignMode += UnRegisterEvents; - - if (UXDesinUtil.InDesign) - { - RegisterEvents(); - } - else - { - UnRegisterEvents(); - } - } - - private static void RegisterEvents() - { - PrefabStageUtils.OnEditRootReplaced += OnEditRootReplaced; - EditorApplication.delayCall += OnEditorLoaded; - UXPrefabTabsConfig.Instance.SyncTabs(); - } - - private static void UnRegisterEvents() - { - PrefabStageUtils.OnEditRootReplaced -= OnEditRootReplaced; - EditorApplication.delayCall -= OnEditorLoaded; - } - - private static void OnEditorLoaded() - { - if (UXDesinUtil.InDesign) - { - CreateGUI(); - RefreshTabs(false, 0); - OpenOrFallbackToLastValidTab(); - } - } - - private static void OnEditRootReplaced(string assetPath) - { - string guid = AssetDatabase.AssetPathToGUID(assetPath); - SelectedGuid = guid; - RefreshTabs(false, 0); - } - - private static void CreateGUI() - { - sceneView = SceneView.lastActiveSceneView; - - if (sceneView == null) return; - - prefabTabsPanel = new VisualElement(); - prefabTabsPanel.name = "Tabs"; - prefabTabsPanel.style.height = new StyleLength(new Length(100, LengthUnit.Percent)); - prefabTabsPanel.style.position = Position.Relative; - prefabTabsPanel.style.top = 0; - prefabTabsPanel.style.right = 0; - prefabTabsPanel.style.left = 0; - prefabTabsPanel.style.backgroundColor = new Color(48f / 255f, 48f / 255f, 48f / 255f); // rgb(48, 48, 48) - prefabTabsPanel.style.flexGrow = 0; - prefabTabsPanel.style.paddingRight = 0; - prefabTabsPanel.style.marginRight = 160; - - TabsList = new ScrollView(ScrollViewMode.Horizontal); - TabsList.name = "TabsList"; - TabsList.horizontalScrollerVisibility = ScrollerVisibility.AlwaysVisible; - TabsList.verticalScrollerVisibility = ScrollerVisibility.Hidden; - - - prefabTabsPanel.Add(TabsList); - - prefabTabsPanel.style.flexGrow = 1; - prefabTabsPanel.style.height = Length.Percent(50); - prefabTabsPanel.contentContainer.RegisterCallback((e) => - { - Vector2 old = TabsList.scrollOffset; - TabsList.scrollOffset = old; - width = m_tabs.Count == 0 ? m_minWidth : Math.Min(Math.Max(m_minWidth, (int)sceneView.position.width / m_tabs.Count), m_maxWidth); - RefreshTabs(false, 0); - }); - UXScroller scroller = TabsList.horizontalScroller; - scroller.Remove(scroller.lowButton); - scroller.Remove(scroller.highButton); - scroller.slider.style.height = 4; - scroller.slider.style.marginBottom = 0; - scroller.slider.style.paddingBottom = 0; - scroller.slider.style.marginLeft = scroller.slider.style.marginRight = 0; - scroller.style.height = 5; - scroller.style.bottom = 0; - scroller.style.marginBottom = 0; - - var parent = sceneView.rootVisualElement.parent.parent.parent.parent.parent.Q(); - if (parent != null) parent.Add(prefabTabsPanel); - parent.style.flexShrink = 1; - parent.style.width = Length.Percent(100); - parent.style.flexGrow = 0.08f; - parent.style.height = Length.Percent(5); - - m_tabs = UXPrefabTabsConfig.Instance.tabs; - m_selectedTab = EditorPrefs.GetString("AlicizaUXTool_SelectedTab", string.Empty); - if (m_tabs.Find(p => p == m_selectedTab) == null) m_selectedTab = string.Empty; - RefreshTabs(false, 0); // 初始化时刷新 Tabs - } - - public static void RefreshTabs(bool isclose, int width) - { - if (prefabTabsPanel == null) return; -#if UNITY_2021_3_OR_NEWER - prefabTabsPanel.style.top = 0; -#else - prefabTabsPanel.style.top = string.IsNullOrEmpty(m_selectedTab) ? 21 : 46; -#endif - bool flag = TabsList.contentContainer.childCount == m_tabs.Count; - TabsList.Clear(); - Button selectButton = null; - foreach (var item in m_tabs) - { - string path = AssetDatabase.GUIDToAssetPath(item); - if (path != "" && File.Exists(path)) - { - var tab = new PrefabSingleTab(new FileInfo(path), item, m_tabs.Count, isclose, width); - if (item == m_selectedTab) - { - tab.visual.style.backgroundColor = new Color(95f / 255, 95f / 255, 95f / 255, 1); - selectButton = tab.visual; - } - else - { - tab.visual.style.backgroundColor = new Color(60f / 255, 60f / 255, 60f / 255, 1); - } - - TabsList.Add(tab.visual); - } - } - - if (selectButton != null) - { - if (flag) - { - selectButton.RegisterCallback(FirstLayoutCallback, selectButton); - } - else - { - TabsList.contentContainer.RegisterCallback(FirstLayoutCallback, selectButton); - } - } - - UXPrefabTabsConfig.Instance.tabs = m_tabs; // 保存当前 Tabs 状态 - UXPrefabTabsConfig.Save(); // 保存到磁盘 - } - - private static void OpenOrFallbackToLastValidTab() - { - // 尝试打开当前选中的GUID - if (!string.IsNullOrEmpty(m_selectedTab) && m_tabs.Contains(m_selectedTab)) - { - PrefabStageUtils.SwitchStage(AssetDatabase.GUIDToAssetPath(m_selectedTab)); - } - else - { - // 移除不存在的GUID并选中最后一个有效的 - m_tabs.RemoveAll(guid => - { - string path = AssetDatabase.GUIDToAssetPath(guid); - return string.IsNullOrEmpty(path) || !File.Exists(path); - }); - - if (m_tabs.Count > 0) - { - m_selectedTab = m_tabs.Last(); - PrefabStageUtils.SwitchStage(AssetDatabase.GUIDToAssetPath(m_selectedTab)); - } - else - { - m_selectedTab = string.Empty; - PrefabStageUtils.OpenDefaultStage(); - } - } - - RefreshTabs(false, 0); - } - - - public static void OpenTab(string guid, bool replaceRoot) - { - SelectedGuid = guid; - if (replaceRoot) - { - PrefabStageUtils.SwitchStage(AssetDatabase.GUIDToAssetPath(guid)); - } - - if (!m_tabs.Contains(guid)) - { - m_tabs.Add(guid); - width = Math.Min(Math.Max(m_minWidth, (int)sceneView.position.width / m_tabs.Count), m_maxWidth); - } - - RefreshTabs(false, 0); - } - - public static void CloseTab(string guid) - { - m_tabs.Remove(guid); - OpenOrFallbackToLastValidTab(); - } - - private static void FirstLayoutCallback(GeometryChangedEvent evt, VisualElement v) - { - if (!TabsList.Contains(v)) return; - TabsList.ScrollTo(v); - } - } -} diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/PrefabTab/PrefabTabs.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/PrefabTab/PrefabTabs.cs.meta deleted file mode 100644 index 7227a84..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/PrefabTab/PrefabTabs.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ddadf2863f864c74b994822b0dfcec71 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Project.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Project.meta deleted file mode 100644 index a3ec3b9..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Project.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b118a0eb1d94cad4abc3fbda06d94698 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Project/UXProjectWindow.cs b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Project/UXProjectWindow.cs deleted file mode 100644 index 6dbbbc1..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Project/UXProjectWindow.cs +++ /dev/null @@ -1,1244 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using AlicizaX.UXTool; -using UnityEditor; -using UnityEngine; -using UnityEngine.UIElements; - -public class PrefabTreeViewWindow : EditorWindow -{ - private const string EditorPrefKeyPrefix = "PrefabTreeView_Expanded_"; // key + Root - - private ScrollView treeScroll; - private TextField searchField; - - private Texture2D folderIcon; - private Texture2D folderEmptyIcon; - private Texture2D defaultPrefabIcon; - - private Image previewIcon; - private Label previewLabel; - - private HashSet expandedPaths = new HashSet(StringComparer.InvariantCultureIgnoreCase); - private HashSet expandedSnapshot = null; - private HashSet selectedPaths = new HashSet(StringComparer.InvariantCultureIgnoreCase); - - private string searchText = string.Empty; - - - private string currentDragTargetPath = null; - private VisualElement currentDragTargetElement = null; - - [MenuItem("Window/Prefab Tree View (Fixed Root)")] - public static void ShowWindow() - { - var wnd = GetWindow(); - wnd.titleContent = new GUIContent("Prefab Tree View"); - wnd.minSize = new Vector2(420, 300); - } - - private void OnEnable() - { - folderIcon = EditorGUIUtility.IconContent("Folder Icon").image as Texture2D; - if (folderIcon == null) folderIcon = EditorGUIUtility.IconContent("Folder").image as Texture2D; - - folderEmptyIcon = EditorGUIUtility.IconContent("FolderEmpty Icon").image as Texture2D; - if (folderEmptyIcon == null) folderEmptyIcon = EditorGUIUtility.IconContent("FolderEmpty").image as Texture2D; - if (folderEmptyIcon == null) folderEmptyIcon = folderIcon; // fallback - - defaultPrefabIcon = EditorGUIUtility.IconContent("Prefab Icon").image as Texture2D; - if (defaultPrefabIcon == null) defaultPrefabIcon = EditorGUIUtility.IconContent("PrefabNormal Icon").image as Texture2D; - - rootVisualElement.Clear(); - BuildUI(); - - LoadExpandedState(); - RefreshTree(); - - rootVisualElement.RegisterCallback(OnKeyDown); - - rootVisualElement.focusable = true; - rootVisualElement.RegisterCallback(evt => { rootVisualElement.Focus(); }); - } - - private void OnDisable() - { - SaveExpandedState(); - } - - private VisualElement previewContainer; - - private void BuildUI() - { - var root = rootVisualElement; - - var split = new UnityEngine.UIElements.TwoPaneSplitView(1, 50, TwoPaneSplitViewOrientation.Vertical); - split.style.flexGrow = 1; - - var topContainer = new VisualElement(); - topContainer.name = "TopContainer"; - topContainer.style.flexDirection = FlexDirection.Column; - topContainer.style.flexGrow = 1; - - var searchRow = new VisualElement(); - searchRow.style.flexDirection = FlexDirection.Row; - searchRow.style.alignItems = Align.Center; - searchRow.style.marginBottom = 4; - - searchField = new TextField(); - searchField.style.flexGrow = 1; - searchField.RegisterCallback>(evt => OnSearchChanged(evt.newValue)); - - var clearBtn = new Button(() => - { - searchField.value = string.Empty; - OnSearchChanged(string.Empty); - }) { text = "Clear" }; - var refreshBtn = new Button(() => RefreshTree()); - refreshBtn.style.backgroundImage = new StyleBackground(EditorGUIUtility.IconContent("d_Refresh").image as Texture2D); - refreshBtn.style.height = 20; - refreshBtn.style.width = 20; - refreshBtn.style.backgroundSize = new BackgroundSize(new Length(80, LengthUnit.Percent), new Length(80, LengthUnit.Percent)); - - var createFolder = new Button(() => { CreateFolderUnder(Def_UXGUIPath.UIResRootPath); }); - createFolder.style.backgroundImage = new StyleBackground(EditorGUIUtility.IconContent("Folder Icon").image as Texture2D); - createFolder.style.height = 20; - createFolder.style.width = 20; - createFolder.style.backgroundSize = new BackgroundSize(new Length(80, LengthUnit.Percent), new Length(80, LengthUnit.Percent)); - - - searchRow.Add(searchField); - searchRow.Add(refreshBtn); - searchRow.Add(createFolder); - - topContainer.Add(searchRow); - - treeScroll = new ScrollView(); - treeScroll.style.flexGrow = 1; - // treeScroll.verticalScrollerVisibility = ScrollerVisibility.Hidden; - treeScroll.horizontalScrollerVisibility = ScrollerVisibility.Hidden; - treeScroll.pickingMode = PickingMode.Position; - - treeScroll.RegisterCallback(evt => - { - OnDragEnterOrUpdate(evt.target as VisualElement); - evt.StopPropagation(); - }); - treeScroll.RegisterCallback(evt => - { - OnDragEnterOrUpdate(evt.target as VisualElement); - evt.StopPropagation(); - }); - treeScroll.RegisterCallback(evt => - { - OnDragPerform(evt); - evt.StopPropagation(); - }); - treeScroll.RegisterCallback(evt => - { - ClearDragTarget(); - evt.StopPropagation(); - }); - treeScroll.RegisterCallback(evt => { ClearDragTarget(); }); - treeScroll.AddManipulator(new ContextualMenuManipulator(evt => - { - var t = evt.target as VisualElement; - bool hasPathAncestor = false; - while (t != null) - { - if (t.userData is string) - { - hasPathAncestor = true; - break; - } - - t = t.parent as VisualElement; - } - - if (!hasPathAncestor) - { - evt.menu.AppendAction("新建文件夹", a => CreateFolderUnder(Def_UXGUIPath.UIResRootPath), a => DropdownMenuAction.Status.Normal); - evt.menu.AppendAction("新建组件", a => CreatePrefabUnder(Def_UXGUIPath.UIResRootPath), a => DropdownMenuAction.Status.Normal); - - if (selectedPaths.Count > 0) - { - evt.menu.AppendSeparator(); - evt.menu.AppendAction($"删除选中 ({selectedPaths.Count})", a => DeleteSelectionWithConfirm(), a => DropdownMenuAction.Status.Normal); - } - } - })); - topContainer.Add(treeScroll); - - previewContainer = new VisualElement(); - previewContainer.name = "PreviewContainer"; - previewContainer.style.flexGrow = 1; - previewContainer.style.minHeight = 180; - previewContainer.style.backgroundColor = new StyleColor(new Color(0.2f, 0.2f, 0.2f)); - previewLabel = new Label("Preview"); - previewLabel.name = "previewLabel"; - previewLabel.style.unityFontStyleAndWeight = FontStyle.Bold; - previewLabel.style.height = 24; - previewLabel.style.unityTextAlign = TextAnchor.MiddleCenter; - previewContainer.Add(previewLabel); - previewIcon = new Image(); - previewIcon.style.height = Length.Percent(100); - previewIcon.style.width = Length.Percent(100); - previewContainer.Add(previewIcon); - - split.Add(topContainer); - split.Add(previewContainer); - - root.Add(split); - - root.RegisterCallback(evt => - { - if (evt.button != 0) return; - var target = evt.target as VisualElement; - bool hasPathAncestor = false; - while (target != null) - { - if (target.userData is string) - { - hasPathAncestor = true; - break; - } - - target = target.parent as VisualElement; - } - - if (!hasPathAncestor) ClearSelection(); - }, TrickleDown.TrickleDown); - } - - private void OnSearchChanged(string newValue) - { - var trimmed = (newValue ?? string.Empty).Trim(); - bool wasEmpty = string.IsNullOrEmpty(searchText); - bool nowEmpty = string.IsNullOrEmpty(trimmed); - - if (wasEmpty && !nowEmpty) - { - expandedSnapshot = new HashSet(expandedPaths, StringComparer.InvariantCultureIgnoreCase); - } - - if (!wasEmpty && nowEmpty) - { - if (expandedSnapshot != null) - { - expandedPaths = new HashSet(expandedSnapshot, StringComparer.InvariantCultureIgnoreCase); - expandedSnapshot = null; - } - } - - searchText = trimmed; - RefreshTree(); - } - - private void RefreshTree() - { - treeScroll.Clear(); - selectedPaths.Clear(); - Selection.objects = new UnityEngine.Object[0]; - - - ClearDragTarget(); - - if (!AssetDatabase.IsValidFolder(Def_UXGUIPath.UIResRootPath)) - { - treeScroll.Add(new Label($"Invalid root path: {Def_UXGUIPath.UIResRootPath}. Please create it in Project window.")); - return; - } - - var subfolders = AssetDatabase.GetSubFolders(Def_UXGUIPath.UIResRootPath); - Array.Sort(subfolders, StringComparer.InvariantCultureIgnoreCase); - - foreach (var sf in subfolders) - { - if (string.IsNullOrEmpty(searchText) || FolderMatchesSearchRecursive(sf)) - { - var item = CreateFolderItem(sf, 0, inSearch: !string.IsNullOrEmpty(searchText)); - if (item != null) treeScroll.Add(item); - } - } - } - - private bool FolderMatchesSearchRecursive(string folderPath) - { - if (string.IsNullOrEmpty(searchText)) return true; - var key = searchText.ToLowerInvariant(); - - if (Path.GetFileName(folderPath).ToLowerInvariant().Contains(key)) return true; - - var prefabGuids = AssetDatabase.FindAssets("t:GameObject", new[] { folderPath }); - foreach (var g in prefabGuids) - { - var p = AssetDatabase.GUIDToAssetPath(g); - if (Path.GetFileName(p).ToLowerInvariant().Contains(key)) return true; - } - - - var subs = AssetDatabase.GetSubFolders(folderPath); - foreach (var s in subs) - { - if (FolderMatchesSearchRecursive(s)) return true; - } - - return false; - } - - private VisualElement CreateFolderItem(string folderAssetPath, int indentLevel, bool inSearch = false) - { - var container = new VisualElement(); - container.style.flexDirection = FlexDirection.Column; - container.style.alignSelf = Align.Stretch; - - var header = new VisualElement(); - header.style.flexDirection = FlexDirection.Row; - header.style.alignItems = Align.Center; - header.style.paddingLeft = 2 + indentLevel * 12; - header.style.paddingTop = 2; - header.style.paddingBottom = 2; - header.style.marginLeft = indentLevel > 0 ? -18 : 0; - header.pickingMode = PickingMode.Position; - - bool hasChildren = FolderHasAnyDirectChild(folderAssetPath); - bool isExpanded = expandedPaths.Contains(folderAssetPath); - - var chevron = new Label(hasChildren ? (isExpanded ? "▼" : "▶") : ""); - chevron.style.unityTextAlign = TextAnchor.MiddleLeft; - chevron.style.width = 12; - chevron.style.marginRight = 6; - chevron.style.fontSize = 8; - - var iconImg = new UnityEngine.UIElements.Image(); - iconImg.image = hasChildren ? folderIcon : folderEmptyIcon; - iconImg.style.width = 16; - iconImg.style.height = 16; - iconImg.style.marginRight = 6; - - var nameLabel = new Label(Path.GetFileName(folderAssetPath)); - nameLabel.style.unityTextAlign = TextAnchor.MiddleLeft; - - header.Add(chevron); - header.Add(iconImg); - header.Add(nameLabel); - - header.userData = folderAssetPath; - - var childContainer = new VisualElement(); - childContainer.style.flexDirection = FlexDirection.Column; - childContainer.style.marginLeft = 12; - - bool displayExpanded = isExpanded; - if (inSearch && !string.IsNullOrEmpty(searchText)) - { - if (FolderMatchesSearchRecursive(folderAssetPath)) - { - var selfMatches = Path.GetFileName(folderAssetPath).ToLowerInvariant().Contains(searchText.ToLowerInvariant()); - if (!selfMatches) displayExpanded = true; - } - else - { - return null; - } - } - - childContainer.style.display = displayExpanded ? DisplayStyle.Flex : DisplayStyle.None; - - if (displayExpanded && childContainer.childCount == 0) - { - PopulateFolderChildren(folderAssetPath, childContainer, indentLevel + 1, inSearch); - } - - - chevron.RegisterCallback(evt => - { - if (hasChildren && string.IsNullOrEmpty(searchText)) - { - bool willExpand = childContainer.style.display == DisplayStyle.None; - SetExpanded(chevron, childContainer, willExpand); - if (willExpand && childContainer.childCount == 0) - { - PopulateFolderChildren(folderAssetPath, childContainer, indentLevel + 1, inSearch); - } - - if (willExpand) expandedPaths.Add(folderAssetPath); - else expandedPaths.Remove(folderAssetPath); - SaveExpandedState(); - } - - HandleSelectionClick(folderAssetPath, evt); - evt.StopImmediatePropagation(); - }); - - header.RegisterCallback(evt => - { - if (evt.button != 0) return; - - HandleSelectionClick(folderAssetPath, evt); - - var mouseDownPos = evt.mousePosition; - EventCallback moveCb = null; - EventCallback upCb = null; - - List dragPaths = new List(); - if (selectedPaths.Contains(folderAssetPath)) dragPaths = selectedPaths.ToList(); - else dragPaths.Add(folderAssetPath); - - moveCb = (MouseMoveEvent me) => - { - if ((me.mousePosition - mouseDownPos).sqrMagnitude > 16f) - { - StartDragAssets(dragPaths); - header.UnregisterCallback(moveCb); - header.UnregisterCallback(upCb); - } - }; - - upCb = (MouseUpEvent mu) => - { - header.UnregisterCallback(moveCb); - header.UnregisterCallback(upCb); - }; - - header.RegisterCallback(moveCb); - header.RegisterCallback(upCb); - - evt.StopImmediatePropagation(); - }); - - header.AddManipulator(new ContextualMenuManipulator(evt => - { - evt.menu.ClearItems(); - if (selectedPaths.Count == 1 && selectedPaths.Contains(folderAssetPath)) - { - evt.menu.AppendAction("新建文件夹", a => CreateFolderUnder(folderAssetPath), a => DropdownMenuAction.Status.Normal); - evt.menu.AppendAction("新建组件", a => CreatePrefabUnder(folderAssetPath), a => DropdownMenuAction.Status.Normal); - evt.menu.AppendSeparator(); - evt.menu.AppendAction("删除文件夹", a => DeleteSingleFolderWithConfirm(folderAssetPath), a => DropdownMenuAction.Status.Normal); - } - else if (selectedPaths.Count > 0) - { - evt.menu.AppendAction($"删除选中 ({selectedPaths.Count})", a => DeleteSelectionWithConfirm(), a => DropdownMenuAction.Status.Normal); - } - else - { - evt.menu.AppendAction("新建文件夹", a => CreateFolderUnder(folderAssetPath), a => DropdownMenuAction.Status.Normal); - evt.menu.AppendAction("新建组件", a => CreatePrefabUnder(folderAssetPath), a => DropdownMenuAction.Status.Normal); - evt.menu.AppendSeparator(); - evt.menu.AppendAction("删除文件夹", a => DeleteSingleFolderWithConfirm(folderAssetPath), a => DropdownMenuAction.Status.Normal); - } - })); - - header.RegisterCallback(evt => - { - OnDragEnterOrUpdate(evt.target as VisualElement); - evt.StopPropagation(); - }); - header.RegisterCallback(evt => - { - OnDragEnterOrUpdate(evt.target as VisualElement); - evt.StopPropagation(); - }); - header.RegisterCallback(evt => - { - OnDragPerform(evt); - evt.StopPropagation(); - }); - header.RegisterCallback(evt => - { - ClearDragTarget(); - evt.StopPropagation(); - }); - - container.Add(header); - container.Add(childContainer); - - return container; - } - - private void PopulateFolderChildren(string folderAssetPath, VisualElement childContainer, int indentLevel, bool inSearch) - { - var subfolders = AssetDatabase.GetSubFolders(folderAssetPath); - Array.Sort(subfolders, StringComparer.InvariantCultureIgnoreCase); - foreach (var sf in subfolders) - { - if (string.IsNullOrEmpty(searchText) || FolderMatchesSearchRecursive(sf)) - { - var el = CreateFolderItem(sf, indentLevel, inSearch); - if (el != null) childContainer.Add(el); - } - } - - var prefabs = GetPrefabsInFolder(folderAssetPath); - foreach (var p in prefabs) - { - if (!string.IsNullOrEmpty(searchText)) - { - if (!Path.GetFileName(p).ToLowerInvariant().Contains(searchText.ToLowerInvariant())) continue; - } - - childContainer.Add(CreatePrefabRow(p, indentLevel)); - } - } - - private void SetExpanded(Label chevron, VisualElement childContainer, bool expand) - { - chevron.text = expand ? "▼" : "▶"; - childContainer.style.display = expand ? DisplayStyle.Flex : DisplayStyle.None; - } - - private bool FolderHasAnyDirectChild(string folderAssetPath) - { - var subs = AssetDatabase.GetSubFolders(folderAssetPath); - if (subs != null && subs.Length > 0) return true; - - var guids = AssetDatabase.FindAssets("", new[] { folderAssetPath }); - foreach (var g in guids) - { - var p = AssetDatabase.GUIDToAssetPath(g); - if (string.IsNullOrEmpty(p)) continue; - var parent = Path.GetDirectoryName(p).Replace("\\", "/"); - if (string.Equals(parent, folderAssetPath, StringComparison.InvariantCultureIgnoreCase)) - { - if (p.EndsWith(".meta", StringComparison.InvariantCultureIgnoreCase)) continue; - return true; - } - } - - return false; - } - - private VisualElement CreatePrefabRow(string prefabAssetPath, int indentLevel) - { - var row = new VisualElement(); - row.style.flexDirection = FlexDirection.Row; - row.style.alignItems = Align.Center; - row.style.paddingLeft = 2 + indentLevel * 12; - row.style.paddingTop = 2; - row.style.paddingBottom = 2; - row.pickingMode = PickingMode.Position; - - Texture2D icon = AssetDatabase.GetCachedIcon(prefabAssetPath) as Texture2D; - var mainObj = AssetDatabase.LoadMainAssetAtPath(prefabAssetPath); - if (icon == null && mainObj != null) - { - var objContent = EditorGUIUtility.ObjectContent(mainObj, mainObj.GetType()); - icon = objContent != null ? objContent.image as Texture2D : null; - } - - if (icon == null) icon = defaultPrefabIcon; - - var iconImg = new UnityEngine.UIElements.Image(); - iconImg.image = icon; - iconImg.style.width = 16; - iconImg.style.height = 16; - iconImg.style.marginRight = 6; - - var lbl = new Label(Path.GetFileNameWithoutExtension(prefabAssetPath)); - lbl.style.unityTextAlign = TextAnchor.MiddleLeft; - - row.Add(iconImg); - row.Add(lbl); - - row.userData = prefabAssetPath; - - row.RegisterCallback(evt => - { - if (evt.button != 0) return; - - if (evt.clickCount == 2) - { - if (mainObj != null) - { - PrefabStageUtils.SwitchStage(prefabAssetPath); - } - - evt.StopImmediatePropagation(); - return; - } - - HandleSelectionClick(prefabAssetPath, evt); - - var mouseDownPos = evt.mousePosition; - EventCallback moveCb = null; - EventCallback upCb = null; - - List dragPaths = new List(); - if (selectedPaths.Contains(prefabAssetPath)) dragPaths = selectedPaths.ToList(); - else dragPaths.Add(prefabAssetPath); - - moveCb = (MouseMoveEvent me) => - { - if ((me.mousePosition - mouseDownPos).sqrMagnitude > 16f) - { - StartDragAssets(dragPaths); - row.UnregisterCallback(moveCb); - row.UnregisterCallback(upCb); - } - }; - - upCb = (MouseUpEvent mu) => - { - row.UnregisterCallback(moveCb); - row.UnregisterCallback(upCb); - }; - - row.RegisterCallback(moveCb); - row.RegisterCallback(upCb); - - evt.StopImmediatePropagation(); - }); - - row.AddManipulator(new ContextualMenuManipulator(evt => - { - evt.menu.ClearItems(); - if (selectedPaths.Count > 0) - { - evt.menu.AppendAction($"删除选中 ({selectedPaths.Count})", a => DeleteSelectionWithConfirm(), a => DropdownMenuAction.Status.Normal); - } - else - { - evt.menu.AppendAction("删除预制体", a => DeleteSinglePrefabWithConfirm(prefabAssetPath), a => DropdownMenuAction.Status.Normal); - } - })); - - row.RegisterCallback(evt => - { - OnDragEnterOrUpdate(evt.target as VisualElement); - evt.StopPropagation(); - }); - row.RegisterCallback(evt => - { - OnDragEnterOrUpdate(evt.target as VisualElement); - evt.StopPropagation(); - }); - row.RegisterCallback(evt => - { - OnDragPerform(evt); - evt.StopPropagation(); - }); - row.RegisterCallback(evt => - { - ClearDragTarget(); - evt.StopPropagation(); - }); - - return row; - } - - private string[] GetPrefabsInFolder(string folderAssetPath) - { - var guids = AssetDatabase.FindAssets("t:GameObject", new[] { folderAssetPath }); - List result = new List(); - foreach (var g in guids) - { - var p = AssetDatabase.GUIDToAssetPath(g); - var parent = Path.GetDirectoryName(p).Replace("\\", "/"); - if (string.Equals(parent, folderAssetPath, StringComparison.InvariantCultureIgnoreCase)) - result.Add(p); - } - - result.Sort(StringComparer.InvariantCultureIgnoreCase); - return result.ToArray(); - } - - private void HandleSelectionClick(string assetPath, MouseDownEvent evt) - { - bool isCtrl = evt.ctrlKey || evt.commandKey; - - if (isCtrl) - { - if (selectedPaths.Contains(assetPath)) selectedPaths.Remove(assetPath); - else selectedPaths.Add(assetPath); - } - else - { - selectedPaths.Clear(); - selectedPaths.Add(assetPath); - } - - UpdateEditorSelection(); - UpdateVisualSelectionMarkers(); - } - - private void ClearSelection() - { - if (selectedPaths.Count == 0) return; - selectedPaths.Clear(); - UpdateEditorSelection(); - UpdateVisualSelectionMarkers(); - } - - private void UpdateEditorSelection() - { - var list = new List(); - foreach (var p in selectedPaths) - { - var o = AssetDatabase.LoadMainAssetAtPath(p); - if (o != null) list.Add(o); - } - - Selection.objects = list.ToArray(); - } - - private void UpdateVisualSelectionMarkers() - { - void Mark(VisualElement elem) - { - if (elem.userData is string path) - { - if (selectedPaths.Contains(path)) - elem.style.backgroundColor = new StyleColor(new Color(0.24f, 0.48f, 0.90f, 0.25f)); - else - elem.style.backgroundColor = StyleKeyword.Null; - } - - foreach (var c in elem.Children()) Mark(c); - } - - foreach (var child in treeScroll.Children()) Mark(child); - - UpdatePreviewTexture(); - } - - private void DeleteSelectionWithConfirm() - { - if (selectedPaths.Count == 0) return; - - string message = "Are you sure you want to delete the following assets?\n\n" + string.Join("\n", selectedPaths); - if (!EditorUtility.DisplayDialog("Delete Selected", message, "Delete", "Cancel")) return; - - var prefabList = new List(); - var folderList = new List(); - - foreach (var p in selectedPaths) - { - if (AssetDatabase.IsValidFolder(p)) folderList.Add(p); - else prefabList.Add(p); - } - - foreach (var p in prefabList) AssetDatabase.DeleteAsset(p); - - folderList.Sort((a, b) => b.Length.CompareTo(a.Length)); - foreach (var f in folderList) AssetDatabase.DeleteAsset(f); - - AssetDatabase.Refresh(); - selectedPaths.Clear(); - RefreshTree(); - } - - private void DeleteSinglePrefabWithConfirm(string prefabAssetPath) - { - if (!EditorUtility.DisplayDialog("Delete Prefab", $"Delete prefab:\n{prefabAssetPath}?", "Delete", "Cancel")) return; - AssetDatabase.DeleteAsset(prefabAssetPath); - AssetDatabase.Refresh(); - RefreshTree(); - } - - private void DeleteSingleFolderWithConfirm(string folderAssetPath) - { - if (!EditorUtility.DisplayDialog("Delete Folder", $"Delete folder and all contents:\n{folderAssetPath}?", "Delete", "Cancel")) return; - AssetDatabase.DeleteAsset(folderAssetPath); - AssetDatabase.Refresh(); - RefreshTree(); - } - - private void CreateFolderUnder(string parentAssetFolder) - { - if (!AssetDatabase.IsValidFolder(parentAssetFolder)) parentAssetFolder = Def_UXGUIPath.UIResRootPath; - - string baseName = "NewFolder"; - string newName = baseName; - int i = 1; - while (AssetDatabase.IsValidFolder(PathCombine(parentAssetFolder, newName))) - { - newName = baseName + " " + i; - i++; - } - - AssetDatabase.CreateFolder(parentAssetFolder, newName); - AssetDatabase.Refresh(); - RefreshTree(); - } - - private void CreatePrefabUnder(string parentAssetFolder) - { - if (!AssetDatabase.IsValidFolder(parentAssetFolder)) parentAssetFolder = Def_UXGUIPath.UIResRootPath; - UXComponentCreateWindowHelper.ShowWindow(parentAssetFolder, RefreshTree); - } - - private static string PathCombine(string a, string b) - { - if (a.EndsWith("/")) a = a.Substring(0, a.Length - 1); - return a + "/" + b; - } - - private string GetEditorPrefKey() - { - return EditorPrefKeyPrefix + Def_UXGUIPath.UIResRootPath; - } - - private void SaveExpandedState() - { - try - { - var list = new List(expandedPaths); - var joined = string.Join("|", list); - EditorPrefs.SetString(GetEditorPrefKey(), joined); - } - catch (Exception e) - { - Debug.LogWarning("Failed to save expanded state: " + e.Message); - } - } - - private void LoadExpandedState() - { - expandedPaths.Clear(); - try - { - var joined = EditorPrefs.GetString(GetEditorPrefKey(), ""); - if (!string.IsNullOrEmpty(joined)) - { - var parts = joined.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries); - foreach (var p in parts) expandedPaths.Add(p); - } - } - catch (Exception e) - { - Debug.LogWarning("Failed to load expanded state: " + e.Message); - } - } - - private void OnKeyDown(KeyDownEvent evt) - { - if (evt.keyCode == KeyCode.Delete || evt.keyCode == KeyCode.Backspace) - { - DeleteSelectionWithConfirm(); - evt.StopPropagation(); - return; - } - - if (evt.keyCode == KeyCode.F2) - { - if (selectedPaths.Count == 1) - { - var path = selectedPaths.First(); - StartRename(path); - evt.StopPropagation(); - } - } - } - - private Texture texture; - - private void UpdatePreviewTexture() - { - if (selectedPaths.Count == 0 || selectedPaths.Count > 1 || (selectedPaths.Count > 0 && !selectedPaths.First().Contains(".prefab"))) - { - this.texture = null; - previewIcon.image = null; - previewLabel.text = string.Empty; - return; - } - - string previewPath = selectedPaths.First(); - string guid = AssetDatabase.AssetPathToGUID(previewPath); - texture = Utils.GetAssetsPreviewTexture(guid, 1024); - previewLabel.text = Path.GetFileNameWithoutExtension(previewPath) + " (preview)"; - previewIcon.image = texture; - } - - - private void StartDragAssets(List assetPaths) - { - var objs = new List(); - foreach (var p in assetPaths) - { - var o = AssetDatabase.LoadMainAssetAtPath(p); - if (o != null) objs.Add(o); - } - - DragAndDrop.PrepareStartDrag(); - DragAndDrop.paths = assetPaths.ToArray(); - DragAndDrop.objectReferences = objs.ToArray(); - DragAndDrop.StartDrag("Move Assets"); - } - - /// - /// Called by DragEnter / DragUpdated - determine destination and update visuals. - /// - private void OnDragEnterOrUpdate(VisualElement evtTarget) - { - var destFolder = GetDropDestinationFromVisualTarget(evtTarget); - bool valid = IsDropValid(DragAndDrop.paths, destFolder); - - DragAndDrop.visualMode = valid ? DragAndDropVisualMode.Move : DragAndDropVisualMode.Rejected; - - UpdateDragTargetVisual(destFolder, valid); - } - - private void OnDragPerform(DragPerformEvent evt) - { - var destFolder = GetDropDestinationFromVisualTarget(evt.target as VisualElement); - bool valid = IsDropValid(DragAndDrop.paths, destFolder); - - if (valid && DragAndDrop.paths != null && DragAndDrop.paths.Length > 0) - { - MoveAssetsToFolder(DragAndDrop.paths, destFolder); - DragAndDrop.AcceptDrag(); - } - else - { - // do nothing (either invalid or all no-op) - // Optional: 显示提示 - // Debug.Log("Drop rejected or no-op."); - } - - ClearDragTarget(); - } - - - private string GetDropDestinationFromVisualTarget(VisualElement t) - { - while (t != null) - { - if (t.userData is string dataPath) - { - // if it's a folder path, return directly - if (AssetDatabase.IsValidFolder(dataPath)) - { - return dataPath; - } - else - { - // userData is an asset (prefab) -> return its parent folder - var parent = Path.GetDirectoryName(dataPath); - if (string.IsNullOrEmpty(parent)) return Def_UXGUIPath.UIResRootPath; - return parent.Replace("\\", "/"); - } - } - - t = t.parent as VisualElement; - } - - // no path ancestor -> drop to root - return Def_UXGUIPath.UIResRootPath; - } - - /// - /// Validate drop: prevent moving folder into itself or into its child. - /// Also reject if **all** source items would be no-ops (i.e. already in destFolder). - /// - private bool IsDropValid(string[] srcPaths, string destFolder) - { - if (srcPaths == null || srcPaths.Length == 0) return false; - if (!AssetDatabase.IsValidFolder(destFolder)) destFolder = Def_UXGUIPath.UIResRootPath; - - bool anyValidMove = false; - - foreach (var src in srcPaths) - { - if (string.IsNullOrEmpty(src)) continue; - - if (AssetDatabase.IsValidFolder(src)) - { - // cannot move folder into itself or its descendants - if (destFolder.Equals(src, StringComparison.InvariantCultureIgnoreCase)) continue; - if (destFolder.StartsWith(src + "/", StringComparison.InvariantCultureIgnoreCase)) continue; // into its child -> invalid - - // if the folder's parent already equals destFolder => that item would be no-op - var parent = Path.GetDirectoryName(src); - if (!string.IsNullOrEmpty(parent)) parent = parent.Replace("\\", "/"); - if (string.Equals(parent, destFolder, StringComparison.InvariantCultureIgnoreCase)) - { - // this src would be no-op, continue checking others - continue; - } - - // otherwise it's a valid move - anyValidMove = true; - } - else - { - // file/prefab: parent folder - var parent = Path.GetDirectoryName(src); - if (!string.IsNullOrEmpty(parent)) parent = parent.Replace("\\", "/"); - if (string.Equals(parent, destFolder, StringComparison.InvariantCultureIgnoreCase)) - { - // would be no-op - continue; - } - - anyValidMove = true; - } - } - - return anyValidMove; - } - - /// - /// Highlight target element and display drop hint in preview label. - /// - private void UpdateDragTargetVisual(string destFolder, bool valid) - { - // if same as current, only update visual text - if (!string.IsNullOrEmpty(currentDragTargetPath) && string.Equals(currentDragTargetPath, destFolder, StringComparison.InvariantCultureIgnoreCase)) - { - previewLabel.text = valid ? $"Drop target: {destFolder}" : $"Invalid drop: {destFolder}"; - return; - } - - // clear previous - ClearDragTargetHighlight(); - - currentDragTargetPath = destFolder; - previewLabel.text = valid ? $"Drop target: {destFolder}" : $"Invalid drop or no-op: {destFolder}"; - - var el = FindElementByPathInTree(destFolder); - if (el != null) - { - currentDragTargetElement = el; - el.style.backgroundColor = new StyleColor(new Color(0.1f, 0.8f, 0.1f, valid ? 0.2f : 0.12f)); - } - else - { - currentDragTargetElement = treeScroll; - treeScroll.style.backgroundColor = new StyleColor(new Color(0.1f, 0.8f, 0.1f, valid ? 0.08f : 0.05f)); - } - } - - private void ClearDragTarget() - { - currentDragTargetPath = null; - previewLabel.text = string.Empty; - ClearDragTargetHighlight(); - } - - private void ClearDragTargetHighlight() - { - if (currentDragTargetElement != null) - { - currentDragTargetElement.style.backgroundColor = StyleKeyword.Null; - currentDragTargetElement = null; - } - - treeScroll.style.backgroundColor = StyleKeyword.Null; - } - - /// - /// Recursively search treeScroll children for VisualElement whose userData equals path. - /// Returns that element (the header element we set userData on), or null. - /// - private VisualElement FindElementByPathInTree(string path) - { - if (string.IsNullOrEmpty(path)) return null; - - VisualElement found = null; - - void Search(VisualElement parent) - { - if (found != null) return; - foreach (var c in parent.Children()) - { - if (c.userData is string s && string.Equals(s, path, StringComparison.InvariantCultureIgnoreCase)) - { - found = c; - return; - } - - Search(c); - if (found != null) return; - } - } - - Search(treeScroll); - return found; - } - - private void MoveAssetsToFolder(string[] paths, string destFolder) - { - if (paths == null || paths.Length == 0) return; - if (!AssetDatabase.IsValidFolder(destFolder)) destFolder = Def_UXGUIPath.UIResRootPath; - - var newSelection = new List(); - - foreach (var src in paths) - { - if (string.IsNullOrEmpty(src)) continue; - - if (AssetDatabase.IsValidFolder(src)) - { - if (destFolder.Equals(src, StringComparison.InvariantCultureIgnoreCase)) continue; - if (destFolder.StartsWith(src + "/", StringComparison.InvariantCultureIgnoreCase)) continue; // cannot move into its own child - - // if parent already equals destFolder -> skip (no-op) - var parent = Path.GetDirectoryName(src); - if (!string.IsNullOrEmpty(parent)) parent = parent.Replace("\\", "/"); - if (string.Equals(parent, destFolder, StringComparison.InvariantCultureIgnoreCase)) continue; - } - else - { - // file/prefab: skip if already in destFolder - var parent = Path.GetDirectoryName(src); - if (!string.IsNullOrEmpty(parent)) parent = parent.Replace("\\", "/"); - if (string.Equals(parent, destFolder, StringComparison.InvariantCultureIgnoreCase)) continue; - } - - var fileName = Path.GetFileName(src); - var destPath = PathCombine(destFolder, fileName); - destPath = AssetDatabase.GenerateUniqueAssetPath(destPath); - - var err = AssetDatabase.MoveAsset(src, destPath); - if (!string.IsNullOrEmpty(err)) - { - Debug.LogWarning($"Failed to move {src} -> {destPath}: {err}"); - } - else - { - newSelection.Add(destPath); - } - } - - AssetDatabase.Refresh(); - - if (newSelection.Count > 0) - { - selectedPaths.Clear(); - foreach (var s in newSelection) selectedPaths.Add(s); - } - - RefreshTree(); - } - - // ----- Renaming support (F2) ----- - private void StartRename(string assetPath) - { - if (string.IsNullOrEmpty(assetPath)) return; - var el = FindElementByPathInTree(assetPath); - if (el == null) return; - - // find first Label child to replace - Label nameLabel = null; - foreach (var c in el.Children()) - { - if (c is Label l) - { - nameLabel = l; - break; - } - } - - if (nameLabel == null) return; - - // current base name and extension for files - string currentBase; - string extension = ""; - if (AssetDatabase.IsValidFolder(assetPath)) - { - currentBase = Path.GetFileName(assetPath); - } - else - { - extension = Path.GetExtension(assetPath); - currentBase = Path.GetFileNameWithoutExtension(assetPath); - } - - // create TextField and insert at same position - int index = 0; - foreach (var c in el.Children()) - { - if (c == nameLabel) break; - index++; - } - - var tf = new TextField(); - tf.value = currentBase; - tf.style.flexGrow = 1; - tf.RegisterCallback(ke => - { - if (ke.keyCode == KeyCode.Return || ke.keyCode == KeyCode.KeypadEnter) - { - CommitRename(assetPath, tf.value, extension); - ke.StopPropagation(); - } - else if (ke.keyCode == KeyCode.Escape) - { - CancelRename(); - ke.StopPropagation(); - } - }); - tf.RegisterCallback(fe => - { - // commit on lose focus - CommitRename(assetPath, tf.value, extension); - }); - - el.Insert(index, tf); - nameLabel.style.display = DisplayStyle.None; - - // focus and select text - tf.Focus(); - tf.SelectAll(); - } - - private void CancelRename() - { - // easiest: just refresh tree to restore UI - RefreshTree(); - } - - private void CommitRename(string originalPath, string newBaseName, string extension) - { - if (string.IsNullOrWhiteSpace(newBaseName)) - { - // cancel rename if empty - RefreshTree(); - return; - } - - string parent = Path.GetDirectoryName(originalPath); - if (!string.IsNullOrEmpty(parent)) parent = parent.Replace("\\", "/"); - - if (AssetDatabase.IsValidFolder(originalPath)) - { - // rename folder (newBaseName is folder name) - var err = AssetDatabase.RenameAsset(originalPath, newBaseName); - if (!string.IsNullOrEmpty(err)) - { - Debug.LogWarning("Rename failed: " + err); - } - else - { - AssetDatabase.Refresh(); - var newFolderPath = PathCombine(parent, newBaseName); - selectedPaths.Clear(); - selectedPaths.Add(newFolderPath); - RefreshTree(); - } - } - else - { - // file/prefab: append extension if missing - string ext = extension; - if (string.IsNullOrEmpty(ext)) ext = Path.GetExtension(originalPath); - var newName = newBaseName + ext; - var err = AssetDatabase.RenameAsset(originalPath, newName); - if (!string.IsNullOrEmpty(err)) - { - Debug.LogWarning("Rename failed: " + err); - } - else - { - AssetDatabase.Refresh(); - var newAssetPath = PathCombine(parent, newName); - selectedPaths.Clear(); - selectedPaths.Add(newAssetPath); - RefreshTree(); - } - } - } -} diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Project/UXProjectWindow.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Project/UXProjectWindow.cs.meta deleted file mode 100644 index 88e8245..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Project/UXProjectWindow.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: dc4810274e14449aa8d6e0f9ef1ad21a -timeCreated: 1763717108 \ No newline at end of file diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Resolution.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Resolution.meta deleted file mode 100644 index b4a9951..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Resolution.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 6387ac1bfd9741d9a73c7b7247100b17 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Resolution/ResolutionController.cs b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Resolution/ResolutionController.cs deleted file mode 100644 index 3ee52fb..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Resolution/ResolutionController.cs +++ /dev/null @@ -1,517 +0,0 @@ -#if UNITY_EDITOR -using System; -using System.Collections.Generic; -using System.Reflection; -using UnityEditor; -using UnityEngine; -using UnityEngine.UIElements; - -namespace AlicizaX.UXTool -{ - public static class ResolutionController - { - private const string EditorPrefsKey = "ResolutionViewInitialized"; - - private static bool hasInitialized - { - get { return EditorPrefs.GetBool(EditorPrefsKey, false); } - set { EditorPrefs.SetBool(EditorPrefsKey, value); } - } - - // per-SceneView UI instances (避免重复添加同一 VisualElement 到多个父节点) - private static readonly Dictionary roots = new Dictionary(); - private static readonly Dictionary containers = new Dictionary(); - private static readonly HashSet guiSubscribedIds = new HashSet(); - - // 反射相关 - private static MethodInfo gameViewSizePopupMethod; - private static PropertyInfo selectedSizeIndexProperty; - private static object gameViewInstance; - private static int selectedSizeIndex = -1; - private static object currentSizeGroupTypeObj; - - // 事件订阅标志 - private static bool subscribedToEditorLoadEvents = false; - private static bool subscribedToUpdate = false; - - // 布局参数(需要时可调整) - private const float GuiWidth = 160f; - private const float RootWidth = 180f; - private const float RootHeight = 22f; - private const float OffsetTop = -22f; - private const float OffsetRight = -20f; - - [InitializeOnLoadMethod] - public static void Initialize() - { - // 在初始化时恢复(确保干净状态),并注册自己的事件 - RestoreOriginalToolbar(); - UXDesinUtil.OnEnterDesignMode += RegisterEvents; - UXDesinUtil.OnExitDesignMode += UnRegisterEvents; - - if (UXDesinUtil.InDesign) - { - RegisterEvents(); - } - else - { - UnRegisterEvents(); - } - } - - private static void RegisterEvents() - { - if (subscribedToEditorLoadEvents) return; - EditorApplication.delayCall += OnEditorLoadDelay; - AssemblyReloadEvents.beforeAssemblyReload += OnBeforeAssemblyReload; - AssemblyReloadEvents.afterAssemblyReload += OnAfterAssemblyReload; - subscribedToEditorLoadEvents = true; - } - - private static void UnRegisterEvents() - { - if (!subscribedToEditorLoadEvents) return; - EditorApplication.delayCall -= OnEditorLoadDelay; - AssemblyReloadEvents.beforeAssemblyReload -= OnBeforeAssemblyReload; - AssemblyReloadEvents.afterAssemblyReload -= OnAfterAssemblyReload; - subscribedToEditorLoadEvents = false; - } - - private static void OnEditorLoadDelay() - { - // EnsureInitialized 是幂等的 - if (!hasInitialized) - { - EnsureInitialized(); - } - - // 仅在设计模式下启动 per-frame 更新 - if (UXDesinUtil.InDesign) - { - UpdateSceneViewUI(); // 立即尝试添加 - if (!subscribedToUpdate) - { - EditorApplication.update += UpdateSceneViewUI; - subscribedToUpdate = true; - } - } - else - { - // 不在设计模式则移除所有 UI - Cleanup(); - } - } - - private static void OnBeforeAssemblyReload() - { - Cleanup(); - } - - private static void OnAfterAssemblyReload() - { - // 延迟调用以等待编辑器恢复 - EditorApplication.delayCall += OnEditorLoadDelay; - } - - private static void EnsureInitialized() - { - if (hasInitialized) return; - - bool ok = InitWindowData(); - if (!ok) - { - hasInitialized = false; - return; - } - - // 不再在此创建单一 Root;Root 在 AddRootToSceneView 时为每个 SceneView 创建 - hasInitialized = true; - } - - private static bool InitWindowData() - { - try - { - // 尝试通过你项目已有的 Utils 获取主 GameView - try - { - // 如果项目提供了 Utils.GetMainPlayModeView(),保留调用(你原代码中提到) - var utilsType = Type.GetType("Utils"); - if (utilsType != null) - { - var method = utilsType.GetMethod("GetMainPlayModeView", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); - if (method != null) - { - gameViewInstance = method.Invoke(null, null); - } - } - } - catch - { - // 忽略 utils 获取失败,继续使用反射查找 - } - - // 如果为空,尝试从类型查找已存在的 GameView 实例 - if (gameViewInstance == null) - { - var gvType = typeof(UnityEditor.Editor).Assembly.GetType("UnityEditor.GameView"); - if (gvType != null) - { - var arr = Resources.FindObjectsOfTypeAll(gvType); - if (arr != null && arr.Length > 0) - gameViewInstance = arr[0]; - } - } - - if (gameViewInstance == null) - return false; - - var editorGUILayoutType = Type.GetType("UnityEditor.EditorGUILayout,UnityEditor") - ?? typeof(UnityEditor.Editor).Assembly.GetType("UnityEditor.EditorGUILayout"); - if (editorGUILayoutType != null) - { - gameViewSizePopupMethod = editorGUILayoutType.GetMethod("GameViewSizePopup", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); - } - - var gameViewType = typeof(UnityEditor.Editor).Assembly.GetType("UnityEditor.GameView"); - if (gameViewType == null) return false; - - selectedSizeIndexProperty = gameViewType.GetProperty("selectedSizeIndex", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); - if (selectedSizeIndexProperty == null) return false; - - var currentSizeGroupProp = gameViewType.GetProperty("currentSizeGroupType", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance); - if (currentSizeGroupProp != null) - { - var getMethod = currentSizeGroupProp.GetGetMethod(nonPublic: true); - if (getMethod != null) - { - if (getMethod.IsStatic) - currentSizeGroupTypeObj = currentSizeGroupProp.GetValue(null); - else - currentSizeGroupTypeObj = currentSizeGroupProp.GetValue(gameViewInstance); - } - } - - // 初始索引读取 - selectedSizeIndex = (int)selectedSizeIndexProperty.GetValue(gameViewInstance); - - return true; - } - catch (Exception e) - { - Debug.LogWarning("[ResolutionController] InitWindowData failed: " + e); - return false; - } - } - - private static void UpdateSceneViewUI() - { - try - { - // 仅当 UXDesinUtil 在设计模式时显示 - if (!UXDesinUtil.InDesign) - { - if (hasInitialized) - RestoreOriginalToolbar(); - return; - } - - EnsureInitialized(); - - if (!hasInitialized) - return; - - // 为所有可用 SceneView 保证 UI(多 SceneView 情况下,每个 SceneView 一个实例,避免重复添加同一个 VE) - foreach (SceneView sceneView in SceneView.sceneViews) - { - if (sceneView == null) continue; - AddRootToSceneView(sceneView); - } - - // 触发 repaint - var last = SceneView.lastActiveSceneView; - if (last != null) last.Repaint(); - } - catch (Exception e) - { - Debug.LogWarning("[ResolutionController] UpdateSceneViewUI exception: " + e); - } - } - - /// - /// 为指定的 SceneView 创建并添加 Root + IMGUIContainer(如果尚未添加)。 - /// 使用 sceneView.GetInstanceID() 作为 key,避免重复创建/添加。 - /// - private static void AddRootToSceneView(SceneView sceneView) - { - if (sceneView == null) return; - - int id = sceneView.GetInstanceID(); - - try - { - var rootVisual = sceneView.rootVisualElement; - if (rootVisual == null) return; - - // 如果已经为该 SceneView 创建过 root,则确保它还在该 SceneView 下 - if (roots.ContainsKey(id)) - { - var existingRoot = roots[id]; - if (existingRoot == null || existingRoot.parent == null) - { - // 如果被移除则重加 - if (existingRoot != null) - { - rootVisual.Add(existingRoot); - } - else - { - // 如果被 GC 或置 null,则删掉记录并重新创建 - roots.Remove(id); - if (containers.ContainsKey(id)) - containers.Remove(id); - } - } - return; - } - - // 若 rootVisual 中已有同名元素(来自旧版本或其他插件残留),不要重复添加 - const string rootName = "ResolutionController_Root"; - var found = rootVisual.Q(rootName); - if (found != null) - { - // 已经存在一个元素(可能来自之前的装载),把它当作该 SceneView 的 root - roots[id] = found; - // 如果需要,确保里面有 IMGUIContainer(若无,创建一个) - var gui = found.Q("IMGUIContainer_ResolutionController"); - if (gui == null) - { - var newGui = CreateAndAttachIMGUI(found, id); - containers[id] = newGui; - SubscribeGuiHandlerIfNeeded(id, newGui); - } - return; - } - - // 创建新的 root + imGUIContainer 实例并加入到 sceneView.rootVisualElement - var newRoot = new VisualElement(); - newRoot.name = rootName; - newRoot.style.position = Position.Absolute; - newRoot.style.top = OffsetTop; - newRoot.style.right = OffsetRight; - newRoot.style.width = RootWidth; - newRoot.style.height = RootHeight; - newRoot.style.overflow = Overflow.Visible; - - var newGuiContainer = new IMGUIContainer(); - newGuiContainer.name = "IMGUIContainer_ResolutionController"; - newGuiContainer.style.width = RootWidth; - newGuiContainer.style.height = RootHeight; - - newRoot.Add(newGuiContainer); - rootVisual.Add(newRoot); - - roots[id] = newRoot; - containers[id] = newGuiContainer; - - SubscribeGuiHandlerIfNeeded(id, newGuiContainer); - } - catch (Exception e) - { - Debug.LogWarning("[ResolutionController] AddRootToSceneView failed: " + e); - } - } - - private static IMGUIContainer CreateAndAttachIMGUI(VisualElement root, int id) - { - var gui = new IMGUIContainer(); - gui.name = "IMGUIContainer_ResolutionController"; - gui.style.width = RootWidth; - gui.style.height = RootHeight; - root.Add(gui); - return gui; - } - - private static void SubscribeGuiHandlerIfNeeded(int id, IMGUIContainer gui) - { - if (gui == null) return; - if (guiSubscribedIds.Contains(id)) return; - gui.onGUIHandler += () => OnGUIHandlerForId(id); - guiSubscribedIds.Add(id); - } - - private static void UnsubscribeGuiHandlerIfNeeded(int id) - { - if (!guiSubscribedIds.Contains(id)) return; - if (containers.TryGetValue(id, out var gui) && gui != null) - { - // 无法直接移除匿名 lambda,因此改为移除所有并重新创建时控制(但为保险尝试移除单个引用) - try - { - gui.onGUIHandler -= () => OnGUIHandlerForId(id); - } - catch { } - } - guiSubscribedIds.Remove(id); - } - - private static void OnGUIHandlerForId(int id) - { - try - { - GUILayoutOption[] ops = new GUILayoutOption[] { GUILayout.Width(GuiWidth) }; - - if (gameViewSizePopupMethod != null) - { - try - { - // 兼容不同签名 - gameViewSizePopupMethod.Invoke(null, new object[] { currentSizeGroupTypeObj, selectedSizeIndex, gameViewInstance, EditorStyles.toolbarPopup, ops }); - } - catch (TargetParameterCountException) - { - try - { - gameViewSizePopupMethod.Invoke(null, new object[] { selectedSizeIndex, gameViewInstance, EditorStyles.toolbarPopup, ops }); - } - catch - { - // 忽略 - } - } - catch (Exception) - { - // 忽略单次调用错误 - } - } - - OnGUI(); - } - catch (Exception e) - { - Debug.LogWarning("[ResolutionController] OnGUIHandler exception: " + e); - } - } - - private static void OnGUI() - { - try - { - if (gameViewInstance == null || selectedSizeIndexProperty == null) return; - - int nowIndex = (int)selectedSizeIndexProperty.GetValue(gameViewInstance); - if (nowIndex != selectedSizeIndex) - { - selectedSizeIndex = nowIndex; - // 如果需要可在此触发回调或通知其他系统 - } - } - catch (Exception e) - { - Debug.LogWarning("[ResolutionController] OnGUI exception: " + e); - } - } - - private static void RestoreOriginalToolbar() - { - try - { - // 取消每个 sceneView 的 gui handler 并移除 roots - foreach (var kv in new List(roots.Keys)) - { - int id = kv; - if (containers.TryGetValue(id, out var gui) && gui != null) - { - try - { - // 尝试移除我们的 handler(如果用了 lambda,直接移除可能无效,但我们会移除整个元素) - gui.onGUIHandler = null; - } - catch { } - } - - if (roots.TryGetValue(id, out var root) && root != null) - { - try - { - if (root.parent != null) - root.parent.Remove(root); - } - catch { } - } - } - } - catch (Exception e) - { - Debug.LogWarning("[ResolutionController] RestoreOriginalToolbar failed: " + e); - } - finally - { - // 保持状态清理 - hasInitialized = false; - guiSubscribedIds.Clear(); - containers.Clear(); - roots.Clear(); - } - } - - private static void Cleanup() - { - try - { - if (subscribedToUpdate) - { - EditorApplication.update -= UpdateSceneViewUI; - subscribedToUpdate = false; - } - - // 移除所有 gui handlers 并删除 UI - foreach (var id in new List(containers.Keys)) - { - try - { - var gui = containers[id]; - if (gui != null) - { - try - { - gui.onGUIHandler = null; - } - catch { } - } - } - catch { } - } - - foreach (var kv in new List(roots.Keys)) - { - var root = roots[kv]; - try - { - if (root != null && root.parent != null) - { - root.parent.Remove(root); - } - } - catch { } - } - - guiSubscribedIds.Clear(); - containers.Clear(); - roots.Clear(); - - gameViewSizePopupMethod = null; - selectedSizeIndexProperty = null; - gameViewInstance = null; - currentSizeGroupTypeObj = null; - - hasInitialized = false; - } - catch (Exception e) - { - Debug.LogWarning("[ResolutionController] Cleanup exception: " + e); - } - } - } -} -#endif diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Resolution/ResolutionController.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Resolution/ResolutionController.cs.meta deleted file mode 100644 index f9d937b..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/Resolution/ResolutionController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 90b75fdc99d74744aa927bf3c3fe26c5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ToolbarOverlay.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ToolbarOverlay.meta deleted file mode 100644 index fba1e16..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ToolbarOverlay.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: eac5a1940a9ac9747a8304c5021714b2 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ToolbarOverlay/ToolBarExtension.cs b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ToolbarOverlay/ToolBarExtension.cs deleted file mode 100644 index 85acf20..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ToolbarOverlay/ToolBarExtension.cs +++ /dev/null @@ -1,140 +0,0 @@ -using System.Linq; -using AlicizaX.UXTool; -using AlicizaX.AnimationFlow.Runtime; -using AlicizaX.Localization.Editor; -using AlicizaX.Localization.Runtime; -using AlicizaX.UI.Editor; -using Paps.UnityToolbarExtenderUIToolkit; -using UnityEditor; -using UnityEngine; -using UnityEngine.UIElements; - -namespace AlicizaX.UXTool -{ - [MainToolbarElement("ToolBarUXAnimation", alignment: ToolbarAlign.Right, order: 1)] - public class ToolBarUXAnimation : IMGUIContainer - { - private GUIContent btnAnimation; - - public void InitializeElement() - { - btnAnimation = EditorGUIUtility.TrTextContentWithIcon("动画编辑", "", "AnimationClip Icon"); - UXDesinUtil.OnEnterDesignMode += OnEntryDesignMode; - UXDesinUtil.OnExitDesignMode += OnExitDesignMode; - if (UXDesinUtil.InDesign) - OnEntryDesignMode(); - else - { - OnExitDesignMode(); - } - } - - private void OnExitDesignMode() - { - onGUIHandler = null; - } - - private void OnEntryDesignMode() - { - onGUIHandler = MyGUIMethod; - } - - private void MyGUIMethod() - { - GUILayout.BeginHorizontal(); - if (GUILayout.Button(btnAnimation, EditorStyles.toolbarButton, GUILayout.MaxWidth(120))) - { - var gameObject = PrefabStageUtils.StageRoot.gameObject; - if (!gameObject.TryGetComponent(typeof(AnimationFlow.Runtime.AnimationFlow), out Component flow)) - { - gameObject.AddComponent(typeof(AnimationFlow.Runtime.AnimationFlow)); - } - Selection.activeGameObject = PrefabStageUtils.StageRoot.gameObject; - UnityEditor.EditorApplication.ExecuteMenuItem("Window/AnimationGraph"); - } - - GUILayout.Space(5); - GUILayout.EndHorizontal(); - } - } -} - -[MainToolbarElement("ToolBarExportUIScriptCode", alignment: ToolbarAlign.Right, order: 1)] -public class ToolBarExportUIScriptCode : IMGUIContainer -{ - private GUIContent exportBtn; - - public void InitializeElement() - { - exportBtn = EditorGUIUtility.TrTextContentWithIcon("导出代码", "", "cs Script Icon"); - UXDesinUtil.OnEnterDesignMode += OnEntryDesignMode; - UXDesinUtil.OnExitDesignMode += OnExitDesignMode; - if (UXDesinUtil.InDesign) - OnEntryDesignMode(); - else - { - OnExitDesignMode(); - } - } - - private void OnExitDesignMode() - { - onGUIHandler = null; - } - - private void OnEntryDesignMode() - { - onGUIHandler = MyGUIMethod; - } - - private void MyGUIMethod() - { - GUILayout.BeginHorizontal(); - if (GUILayout.Button(exportBtn, EditorStyles.toolbarButton, GUILayout.MaxWidth(120))) - { - Selection.activeGameObject = PrefabStageUtils.StageRoot.gameObject; - UIGenerateQuick.UIGenerateBind(); - } - - GUILayout.Space(5); - GUILayout.EndHorizontal(); - } -} - - -[MainToolbarElement(id: "ToolBarExitDesign", alignment: ToolbarAlign.Right, order: 3)] -public class ToolBarExitDesign : IMGUIContainer -{ - private GUIContent entryBtnContent; - - - public void InitializeElement() - { - entryBtnContent = EditorGUIUtility.TrTextContentWithIcon("Exit Design", "", EditorGUIUtility.IconContent("d_BuildSettings.Standalone").image); - onGUIHandler = MyGUIMethod; - } - - private void MyGUIMethod() - { - GUILayout.BeginHorizontal(); - - if (UXDesinUtil.InDesign) - { - entryBtnContent.text = "退出UI编辑器"; - if (GUILayout.Button(entryBtnContent, EditorStyles.toolbarButton, GUILayout.MaxWidth(125))) - { - UXDesinUtil.ExitUIDesinger(); - } - } - else - { - entryBtnContent.text = "进入UI编辑器"; - if (GUILayout.Button(entryBtnContent, EditorStyles.toolbarButton, GUILayout.MaxWidth(125))) - { - UXDesinUtil.OpenUIDesinger(); - } - } - - GUILayout.EndHorizontal(); - } -} diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ToolbarOverlay/ToolBarExtension.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ToolbarOverlay/ToolBarExtension.cs.meta deleted file mode 100644 index 8b58c25..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ToolbarOverlay/ToolBarExtension.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 009e07b906b2e7a4297b6a5b04a38ad4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ToolbarOverlay/ToolbarOverlay.cs b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ToolbarOverlay/ToolbarOverlay.cs deleted file mode 100644 index 831c9cd..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ToolbarOverlay/ToolbarOverlay.cs +++ /dev/null @@ -1,229 +0,0 @@ -using UnityEditor; -using UnityEditor.Overlays; -using UnityEditor.Toolbars; -using UnityEngine; - -namespace AlicizaX.UXTool -{ - [Overlay(typeof(SceneView), "Align")] - public class AlignToolbarOverlay : ToolbarOverlay - { - AlignToolbarOverlay() : base( - AlignTopLeft.id, - AlignTopCenter.id, - AlignTopRight.id, - AlignBottomLeft.id, - AlignBottomCenter.id, - AlignBottomRight.id, - AlignHorizontalLeft.id, - AlignHorizontalCenter.id, - AlignHorizontalRight.id - ) - { - } - - // 12 个按钮的初始化 - [EditorToolbarElement(AlignTopLeft.id, typeof(SceneView))] - class AlignTopLeft : EditorToolbarButton - { - public const string id = "AlignToolbarOverlay/AlignTopLeft"; - - public AlignTopLeft() - { - text = ""; - icon = EditorGUIUtility.IconContent("d_align_vertically_top_active").image as Texture2D; // 使用带 _active 后缀的图标 - tooltip = "顶部左对齐"; - clicked += () => OnAlign(AlignType.TopLeft); - } - } - - [EditorToolbarElement(AlignTopCenter.id, typeof(SceneView))] - class AlignTopCenter : EditorToolbarButton - { - public const string id = "AlignToolbarOverlay/AlignTopCenter"; - - public AlignTopCenter() - { - text = ""; - icon = EditorGUIUtility.IconContent("d_align_vertically_center_active").image as Texture2D; // 使用带 _active 后缀的图标 - tooltip = "顶部居中对齐"; - clicked += () => OnAlign(AlignType.TopCenter); - } - } - - [EditorToolbarElement(AlignTopRight.id, typeof(SceneView))] - class AlignTopRight : EditorToolbarButton - { - public const string id = "AlignToolbarOverlay/AlignTopRight"; - - public AlignTopRight() - { - text = ""; - icon = EditorGUIUtility.IconContent("d_align_vertically_top_active").image as Texture2D; // 使用带 _active 后缀的图标 - tooltip = "顶部右对齐"; - clicked += () => OnAlign(AlignType.TopRight); - } - } - - - [EditorToolbarElement(AlignBottomLeft.id, typeof(SceneView))] - class AlignBottomLeft : EditorToolbarButton - { - public const string id = "AlignToolbarOverlay/AlignBottomLeft"; - - public AlignBottomLeft() - { - text = ""; - icon = EditorGUIUtility.IconContent("d_align_vertically_bottom_active").image as Texture2D; // 使用带 _active 后缀的图标 - tooltip = "左下对齐"; - clicked += () => OnAlign(AlignType.BottomLeft); - } - } - - [EditorToolbarElement(AlignBottomCenter.id, typeof(SceneView))] - class AlignBottomCenter : EditorToolbarButton - { - public const string id = "AlignToolbarOverlay/AlignBottomCenter"; - - public AlignBottomCenter() - { - text = ""; - icon = EditorGUIUtility.IconContent("d_align_vertically_center_active").image as Texture2D; // 使用带 _active 后缀的图标 - tooltip = "底部居中对齐"; - clicked += () => OnAlign(AlignType.BottomCenter); - } - } - - [EditorToolbarElement(AlignBottomRight.id, typeof(SceneView))] - class AlignBottomRight : EditorToolbarButton - { - public const string id = "AlignToolbarOverlay/AlignBottomRight"; - - public AlignBottomRight() - { - text = ""; - icon = EditorGUIUtility.IconContent("d_align_vertically_bottom_active").image as Texture2D; // 使用带 _active 后缀的图标 - tooltip = "右下对齐"; - clicked += () => OnAlign(AlignType.BottomRight); - } - } - - [EditorToolbarElement(AlignHorizontalLeft.id, typeof(SceneView))] - class AlignHorizontalLeft : EditorToolbarButton - { - public const string id = "AlignToolbarOverlay/AlignHorizontalLeft"; - - public AlignHorizontalLeft() - { - text = ""; - icon = EditorGUIUtility.IconContent("d_align_horizontally_left_active").image as Texture2D; // 使用带 _active 后缀的图标 - tooltip = "水平左对齐"; - clicked += () => OnAlign(AlignType.HorizontalLeft); - } - } - - [EditorToolbarElement(AlignHorizontalCenter.id, typeof(SceneView))] - class AlignHorizontalCenter : EditorToolbarButton - { - public const string id = "AlignToolbarOverlay/AlignHorizontalCenter"; - - public AlignHorizontalCenter() - { - text = ""; - icon = EditorGUIUtility.IconContent("d_align_horizontally_center_active").image as Texture2D; // 使用带 _active 后缀的图标 - tooltip = "水平居中对齐"; - clicked += () => OnAlign(AlignType.HorizontalCenter); - } - } - - [EditorToolbarElement(AlignHorizontalRight.id, typeof(SceneView))] - class AlignHorizontalRight : EditorToolbarButton - { - public const string id = "AlignToolbarOverlay/AlignHorizontalRight"; - - public AlignHorizontalRight() - { - text = ""; - icon = EditorGUIUtility.IconContent("d_align_horizontally_right_active").image as Texture2D; // 使用带 _active 后缀的图标 - tooltip = "水平右对齐"; - clicked += () => OnAlign(AlignType.HorizontalRight); - } - } - - // 枚举定义所有对齐类型 - public enum AlignType - { - TopLeft, - TopCenter, - TopRight, - BottomLeft, - BottomCenter, - BottomRight, - HorizontalLeft, - HorizontalCenter, - HorizontalRight - } - - // 对齐方法 - private static void OnAlign(AlignType alignType) - { - GameObject selectedObject = Selection.activeGameObject; - - if (selectedObject == null) return; - - RectTransform rectTransform = selectedObject.GetComponent(); - if (rectTransform == null) return; - Undo.RecordObject(rectTransform, alignType.ToString()); - // 简化对齐逻辑,设置锚点和位置 - switch (alignType) - { - case AlignType.TopLeft: - rectTransform.anchorMin = new Vector2(0, 1); - rectTransform.anchorMax = new Vector2(0, 1); - rectTransform.anchoredPosition = Vector2.zero; - break; - case AlignType.TopCenter: - rectTransform.anchorMin = new Vector2(0.5f, 1); - rectTransform.anchorMax = new Vector2(0.5f, 1); - rectTransform.anchoredPosition = Vector2.zero; - break; - case AlignType.TopRight: - rectTransform.anchorMin = new Vector2(1, 1); - rectTransform.anchorMax = new Vector2(1, 1); - rectTransform.anchoredPosition = Vector2.zero; - break; - case AlignType.BottomLeft: - rectTransform.anchorMin = new Vector2(0, 0); - rectTransform.anchorMax = new Vector2(0, 0); - rectTransform.anchoredPosition = Vector2.zero; - break; - case AlignType.BottomCenter: - rectTransform.anchorMin = new Vector2(0.5f, 0); - rectTransform.anchorMax = new Vector2(0.5f, 0); - rectTransform.anchoredPosition = Vector2.zero; - break; - case AlignType.BottomRight: - rectTransform.anchorMin = new Vector2(1, 0); - rectTransform.anchorMax = new Vector2(1, 0); - rectTransform.anchoredPosition = Vector2.zero; - break; - case AlignType.HorizontalLeft: - rectTransform.anchorMin = new Vector2(0, 0.5f); - rectTransform.anchorMax = new Vector2(0, 0.5f); - rectTransform.anchoredPosition = Vector2.zero; - break; - case AlignType.HorizontalCenter: - rectTransform.anchorMin = new Vector2(0.5f, 0.5f); - rectTransform.anchorMax = new Vector2(0.5f, 0.5f); - rectTransform.anchoredPosition = Vector2.zero; - break; - case AlignType.HorizontalRight: - rectTransform.anchorMin = new Vector2(1, 0.5f); - rectTransform.anchorMax = new Vector2(1, 0.5f); - rectTransform.anchoredPosition = Vector2.zero; - break; - } - } - } - -} \ No newline at end of file diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ToolbarOverlay/ToolbarOverlay.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ToolbarOverlay/ToolbarOverlay.cs.meta deleted file mode 100644 index 5e8f4dc..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/ToolbarOverlay/ToolbarOverlay.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1ff49d8ffdac41d47aab4fbbcffb8f53 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UIEditWindow.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UIEditWindow.meta deleted file mode 100644 index efe1857..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UIEditWindow.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 50354e13d8f6ebf46bf3250c156fe5b7 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UIEditWindow/UXComponentCreateVisualAsset.cs b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UIEditWindow/UXComponentCreateVisualAsset.cs deleted file mode 100644 index 29871e2..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UIEditWindow/UXComponentCreateVisualAsset.cs +++ /dev/null @@ -1,351 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using UnityEditor; -using UnityEngine; -using UnityEngine.UI; -using UnityEngine.UIElements; -using Button = UnityEngine.UIElements.Button; -using Object = UnityEngine.Object; - -namespace AlicizaX.UXTool -{ - public enum UXComponentType - { - Window, - Widget, - Base - } - - - public partial class UXCreateWindowVisualAsset : VisualElement - { - // 这是你原先的基础 prefab(作为模板) - private const string PrefabPath = "Packages/com.alicizax.uxtool/Editor/UXGUI/Res/Component/View.prefab"; - - private readonly PopupField createTypePopupField; - private readonly Button btnConfirm; - private readonly TextField resTextField; - private readonly Vector2IntField resVectorField; - private readonly Label pathLabel; - - private Action _createCallBack; - private string _folderPath; - - public void SetCallBack(string path, Action callback) - { - _createCallBack = callback; - _folderPath = path; - UpdatePathLabel(); - } - - public UXCreateWindowVisualAsset() - { - style.flexGrow = 1; - style.flexShrink = 0; - style.height = Length.Percent(100); - style.width = Length.Percent(100); - - UXComponentType[] createTypes = new[] - { - UXComponentType.Window, - UXComponentType.Widget, - UXComponentType.Base - }; - - // 组件名称 - resTextField = new TextField(); - resTextField.label = "组件名称"; - resTextField.style.unityFontStyleAndWeight = FontStyle.Bold; - resTextField.style.paddingBottom = 5; - resTextField.RegisterValueChangedCallback(evt => UpdatePathLabel()); - - // 类型下拉 - createTypePopupField = new PopupField(); - createTypePopupField.name = "createTypePopupField"; - createTypePopupField.label = "组件类型"; - createTypePopupField.choices = createTypes.ToList(); - createTypePopupField.style.unityFontStyleAndWeight = FontStyle.Bold; - createTypePopupField.index = 0; - createTypePopupField.style.paddingBottom = 5; - createTypePopupField.RegisterValueChangedCallback(evt => - { - UpdateResolutionVisibility(evt.newValue); - UpdatePathLabel(); - }); - - resVectorField = new Vector2IntField(); - resVectorField.label = "组件大小"; - resVectorField.value = new Vector2Int(800, 600); - resVectorField.style.paddingBottom = 5; - resVectorField.style.unityFontStyleAndWeight = FontStyle.Bold; - resVectorField.RegisterValueChangedCallback(evt => - { - // 强制为非负值(如果需要可以改为 >=1) - var v = evt.newValue; - v.x = Mathf.Max(0, v.x); - v.y = Mathf.Max(0, v.y); - // 如果用户输入负数,修正回去并刷新字段 - if (v != evt.newValue) - resVectorField.SetValueWithoutNotify(v); - - UpdatePathLabel(); - }); - - // 路径显示 - pathLabel = new Label(); - pathLabel.style.unityFontStyleAndWeight = FontStyle.Bold; - pathLabel.style.marginTop = 6; - pathLabel.text = GetFullPrefabPathText(); - - // 创建按钮 - btnConfirm = new Button(OnBtnConfirmClick); - btnConfirm.style.height = new Length(30, LengthUnit.Pixel); - btnConfirm.text = "创建"; - btnConfirm.style.unityFontStyleAndWeight = FontStyle.Bold; - - // Add in desired order - Add(resTextField); - Add(createTypePopupField); - Add(resVectorField); - Add(pathLabel); - Add(btnConfirm); - - UpdateResolutionVisibility(createTypePopupField.value); - } - - private void UpdateResolutionVisibility(UXComponentType type) - { - if (type == UXComponentType.Window) - { - resVectorField.style.display = DisplayStyle.None; - } - else - { - resVectorField.style.display = DisplayStyle.Flex; - } - } - - private string GetFullPrefabPathText() - { - var name = resTextField != null ? resTextField.value?.Trim() : ""; - var folder = _folderPath ?? ""; - if (string.IsNullOrEmpty(folder)) - return "<路径未设置>"; - if (string.IsNullOrEmpty(name)) - return folder; - // ensure folder uses forward slashes - var f = folder.Replace("\\", "/").TrimEnd('/'); - return $"{f}/{name}.prefab"; - } - - private void UpdatePathLabel() - { - if (pathLabel != null) - pathLabel.text = GetFullPrefabPathText(); - } - - private void OnBtnConfirmClick() - { - // 基本校验 - string componentName = resTextField.value?.Trim(); - if (string.IsNullOrEmpty(componentName)) - { - EditorUtility.DisplayDialog("错误", "请输入组件名称。", "确定"); - return; - } - - UXComponentType type = createTypePopupField.value; - - Vector2Int res = resVectorField.value; - int width = res.x; - int height = res.y; - - if (type != UXComponentType.Window) - { - if (width <= 0 || height <= 0) - { - EditorUtility.DisplayDialog("错误", "请设置有效的分辨率(宽度和高度必须为正整数)。", "确定"); - return; - } - } - - if (string.IsNullOrEmpty(_folderPath)) - { - EditorUtility.DisplayDialog("错误", "_folderPath 未设置,请先设置保存目录。", "确定"); - return; - } - - // 确保文件夹存在(基于 AssetDatabase) - string folder = _folderPath.Replace("\\", "/").TrimEnd('/'); - EnsureFolderExists(folder); - - // 先确认模板 prefab 可以加载 - var templatePrefab = AssetDatabase.LoadAssetAtPath(PrefabPath); - if (templatePrefab == null) - { - EditorUtility.DisplayDialog("错误", $"无法加载基础 prefab:{PrefabPath}", "确定"); - return; - } - - // 使用 PrefabUtility.LoadPrefabContents 在 prefab asset 上直接编辑(不会在场景产生临时实例) - GameObject prefabContentsRoot = null; - try - { - prefabContentsRoot = PrefabUtility.LoadPrefabContents(PrefabPath); - if (prefabContentsRoot == null) - { - EditorUtility.DisplayDialog("错误", $"无法通过 LoadPrefabContents 加载 prefab: {PrefabPath}", "确定"); - return; - } - - // 修改 prefabContentsRoot(模板的根) - prefabContentsRoot.name = componentName; - - // 找到根或第一个 RectTransform(通常模板根是 RectTransform) - RectTransform rect = prefabContentsRoot.GetComponent(); - if (rect == null) - { - rect = prefabContentsRoot.GetComponentInChildren(); - } - - if (rect == null) - { - EditorUtility.DisplayDialog("错误", "Prefab 模板中未找到 RectTransform,无法设置尺寸。", "确定"); - return; - } - - // 根据类型调整 - if (type == UXComponentType.Window) - { - // 全屏拉伸 - rect.localScale = Vector3.one; - rect.localPosition = Vector3.zero; - rect.pivot = new Vector2(0.5f, 0.5f); - rect.anchorMin = Vector2.zero; - rect.anchorMax = Vector2.one; - rect.offsetMin = Vector2.zero; - rect.offsetMax = Vector2.zero; - rect.anchoredPosition = Vector2.zero; - - // 如果存在 Canvas,确保 RenderMode 为 ScreenSpaceOverlay 并且 localScale 为 1 - var canvas = prefabContentsRoot.GetComponent() ?? prefabContentsRoot.GetComponentInChildren(); - if (canvas != null) - { - canvas.renderMode = RenderMode.ScreenSpaceOverlay; -#if UNITY_2019_1_OR_NEWER - // worldCamera 设为 null 以避免意外引用 - canvas.worldCamera = null; -#endif - } - } - else - { - if (type == UXComponentType.Base) - { - // 移除 GraphicRaycaster 与 Canvas(如果存在) - var gr = prefabContentsRoot.GetComponent(); - if (gr != null) Object.DestroyImmediate(gr); - else - { - var grChild = prefabContentsRoot.GetComponentInChildren(); - if (grChild != null) Object.DestroyImmediate(grChild); - } - - var canvas = prefabContentsRoot.GetComponent(); - if (canvas != null) Object.DestroyImmediate(canvas); - else - { - var canvasChild = prefabContentsRoot.GetComponentInChildren(); - if (canvasChild != null) Object.DestroyImmediate(canvasChild); - } - } - - rect.localScale = Vector3.one; - rect.pivot = new Vector2(0.5f, 0.5f); - rect.anchorMin = rect.anchorMax = new Vector2(0.5f, 0.5f); - rect.anchoredPosition = Vector2.zero; - rect.sizeDelta = new Vector2(width, height); - } - - string prefabPath = $"{folder}/{componentName}.prefab"; - prefabPath = prefabPath.Replace("\\", "/"); - - // 如果已存在,询问是否覆盖 - var existing = AssetDatabase.LoadAssetAtPath(prefabPath); - if (existing != null) - { - bool overwrite = EditorUtility.DisplayDialog("覆盖确认", - $"已存在 {componentName}.prefab,是否覆盖?", - "覆盖", - "取消"); - if (!overwrite) - { - // 取消:卸载 prefabContents,并返回 - return; - } - } - - // 保存为新的 prefab asset(将 prefabContentsRoot 内容保存到目标 prefabPath) - GameObject saved = PrefabUtility.SaveAsPrefabAsset(prefabContentsRoot, prefabPath); - if (saved == null) - { - EditorUtility.DisplayDialog("失败", $"保存 prefab 失败:{prefabPath}", "确定"); - } - else - { - AssetDatabase.SaveAssets(); - AssetDatabase.Refresh(); - _createCallBack?.Invoke(); - // 尝试关闭创建窗口(如果存在) - var wnd = EditorWindow.GetWindow(); - if (wnd != null) wnd.Close(); - } - } - catch (Exception ex) - { - Debug.LogError($"创建 prefab 时发生异常: {ex}"); - EditorUtility.DisplayDialog("异常", $"创建 prefab 时发生异常,请查看控制台。", "确定"); - } - finally - { - // 一定要卸载 prefab contents(如果加载成功) - if (prefabContentsRoot != null) - PrefabUtility.UnloadPrefabContents(prefabContentsRoot); - } - } - - /// - /// 确保 AssetDatabase 中的文件夹存在(以 "Assets" 为根),会逐级创建缺失的子文件夹。 - /// 传入示例: "Assets/MyFolder/SubFolder" - /// - private void EnsureFolderExists(string folderPath) - { - if (string.IsNullOrEmpty(folderPath)) - throw new ArgumentNullException(nameof(folderPath)); - - var path = folderPath.Replace("\\", "/").TrimEnd('/'); - if (AssetDatabase.IsValidFolder(path)) - return; - - string[] parts = path.Split('/'); - if (parts.Length == 0 || parts[0] != "Assets") - { - Debug.LogError("folderPath 必须以 'Assets' 开头。"); - return; - } - - string cur = "Assets"; - for (int i = 1; i < parts.Length; i++) - { - string next = cur + "/" + parts[i]; - if (!AssetDatabase.IsValidFolder(next)) - { - AssetDatabase.CreateFolder(cur, parts[i]); - } - - cur = next; - } - } - } -} diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UIEditWindow/UXComponentCreateVisualAsset.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UIEditWindow/UXComponentCreateVisualAsset.cs.meta deleted file mode 100644 index 7ec89f4..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UIEditWindow/UXComponentCreateVisualAsset.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 82c75a05bd05409783674012d80a4f1a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UIEditWindow/UXComponentCreateWindow.cs b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UIEditWindow/UXComponentCreateWindow.cs deleted file mode 100644 index 864843d..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UIEditWindow/UXComponentCreateWindow.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using UnityEditor; -using UnityEngine; -using UnityEngine.UIElements; - -namespace AlicizaX.UXTool -{ - public class UXComponentCreateWindow : EditorWindow - { - public void SetCreateData(string path, System.Action callback) - { - uxCreateWindowVisualAsset.SetCallBack(path, callback); - } - - private UXCreateWindowVisualAsset uxCreateWindowVisualAsset; - - private void CreateGUI() - { - uxCreateWindowVisualAsset = new UXCreateWindowVisualAsset(); - rootVisualElement.Add(uxCreateWindowVisualAsset); - } - } - - public static class UXComponentCreateWindowHelper - { - public static void ShowWindow(string path, Action createCallBack) - { - UXComponentCreateWindow window = EditorWindow.GetWindow(true, "创建组件"); - window.maxSize = new Vector2(400, 150); - window.minSize = new Vector2(400, 150); - window.Show(); - window.SetCreateData(path, createCallBack); - } - } -} \ No newline at end of file diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UIEditWindow/UXComponentCreateWindow.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UIEditWindow/UXComponentCreateWindow.cs.meta deleted file mode 100644 index 7423daf..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UIEditWindow/UXComponentCreateWindow.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b6545b205586412ca32dd1bebd68f6e7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UXCustomSceneView.cs b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UXCustomSceneView.cs deleted file mode 100644 index c061621..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UXCustomSceneView.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System; -using System.Collections.Generic; -using UnityEditor; -using UnityEngine; - -/// -/// 在多 SceneView 窗口下安全地添加/移除临时回调。 -/// 原理:Templist 存放需在下一帧执行的回调,OnSceneGUI 将会把 Templist 转移到 list 来执行。 -/// -public class UXCustomSceneView -{ - static private List> list = new List>(); - static private List> Templist = new List>(); - - [InitializeOnLoadMethod] - static void Init() - { - list.Clear(); - Templist.Clear(); - SceneView.duringSceneGui -= OnSceneGUI; - SceneView.duringSceneGui += OnSceneGUI; - } - - static public void AddDelegate(Action method) - { - if (method == null) return; - // 去重 - if (!Templist.Contains(method)) - Templist.Add(method); - } - - static public void RemoveDelegate(Action method) - { - if (method == null) return; - var idx = Templist.FindIndex(i => i == method); - if (idx >= 0) Templist.RemoveAt(idx); - } - - static public void OnSceneGUI(SceneView sceneView) - { - // 执行上一帧注册的 list - foreach (Action method in list) - { - try - { - method.Invoke(sceneView); - } - catch (Exception e) - { - Debug.LogException(e); - } - } - - list.Clear(); - - // 将 Templist 拷贝到 list,并在下一帧执行,这样可以避免在枚举时修改集合的问题 - foreach (Action method in Templist) - { - if (!list.Contains(method)) - list.Add(method); - } - } - - static public void ClearDelegate() - { - Templist.Clear(); - } -} \ No newline at end of file diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UXCustomSceneView.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UXCustomSceneView.cs.meta deleted file mode 100644 index 2440609..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/SceneView/UXCustomSceneView.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8f3197943fdad5143b94a26ef9c0eacb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils.meta deleted file mode 100644 index 20776e2..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7634273f5c12e874bb902025a97852e1 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/PrefabStageUtils.cs b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/PrefabStageUtils.cs deleted file mode 100644 index 2d4e91a..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/PrefabStageUtils.cs +++ /dev/null @@ -1,115 +0,0 @@ -using System; -using System.IO; -using AlicizaX.UXTool; -using UnityEditor; -using UnityEditor.SceneManagement; -using UnityEngine; - -public static class PrefabStageUtils -{ - [InitializeOnLoadMethod] - static void PrefabStageInitlize() - { - InEmptyStage = true; - var prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - if (prefabStage && prefabStage.prefabContentsRoot != null) - { - InEmptyStage = prefabStage.prefabContentsRoot.transform.GetComponent() != null; - } - } - - private static readonly string DesinStage = Path.Combine(Def_UXGUIPath.ComponentRes, "UIStage.prefab"); - - public static event Action OnEditRootReplaced; - - public static Transform StageRoot => PrefabStageUtility.GetCurrentPrefabStage()?.prefabContentsRoot.transform; - public static PrefabStage CurrentStage => PrefabStageUtility.GetCurrentPrefabStage(); - public static bool InEmptyStage { get; private set; } - - public static void SwitchStage(string assetPath) - { - if (string.IsNullOrEmpty(assetPath)) - { - assetPath = DesinStage; - } - - CheckUnsavedChanges(null); - - PrefabStageUtility.OpenPrefab(assetPath); - - - InEmptyStage = StageRoot.GetComponent() != null; - - PrefabUtility.RecordPrefabInstancePropertyModifications(StageRoot); - - StoreEditRootGuid(assetPath); - - OnEditRootReplaced?.Invoke(assetPath); - } - - private static void StoreEditRootGuid(string assetPath) - { - var prefabGuid = AssetDatabase.AssetPathToGUID(assetPath); - if (!string.IsNullOrEmpty(prefabGuid) && !UXPrefabTabsConfig.Instance.tabs.Contains(prefabGuid)) - { - UXPrefabTabsConfig.Instance.tabs.Add(prefabGuid); - UXPrefabTabsConfig.Save(); - } - } - - public static void SavePrefabWithAPI() - { - if (!InEmptyStage && StageRoot != null) - { - PrefabUtility.SaveAsPrefabAsset(CurrentStage.prefabContentsRoot, CurrentStage.assetPath, out bool success); - if (success) - { - CurrentStage.ClearDirtiness(); - } - } - } - - static void CheckUnsavedChanges(Action callBack) - { - PrefabStage currentStage = GetCurrentPrefabStage(); - - if (!InEmptyStage && currentStage != null && currentStage.scene.isDirty) - { - bool saveChanges = EditorUtility.DisplayDialog( - "未保存的更改", - "当前预制体有未保存的更改。是否保存并继续替换?", - "保存并继续", - "取消" - ); - - if (!saveChanges) - { - currentStage.ClearDirtiness(); - } - - SavePrefabWithAPI(); - } - - callBack?.Invoke(); - } - - public static PrefabStage GetCurrentPrefabStage() - { - return PrefabStageUtility.GetCurrentPrefabStage(); - } - - public static void OpenDefaultStage() - { - CheckUnsavedChanges(() => - { - InEmptyStage = true; - Utils.OpenPrefab(DesinStage); - }); - } - - public static void ExitStage() - { - Utils.ExitPrefabStage(); - } - -} diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/PrefabStageUtils.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/PrefabStageUtils.cs.meta deleted file mode 100644 index c92c0c9..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/PrefabStageUtils.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d5f82b6c4af34a80a73ca7f350eabca6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/UIBuilderUtil.cs b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/UIBuilderUtil.cs deleted file mode 100644 index 3faf9c0..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/UIBuilderUtil.cs +++ /dev/null @@ -1,174 +0,0 @@ -using System.Collections.Generic; -using UnityEditor; -using UnityEngine; - -namespace AlicizaX.UXTool -{ - public static class UIBuilderUtil - { - public static void DuplicateSelectedObjects() - { - GameObject[] selectedObjects = UXSelectionUtil.gameObjects; - List duplicateObjects = new List(); - foreach (var orginObject in selectedObjects) - { - GameObject duplicate = Object.Instantiate(orginObject, orginObject.transform.parent); - duplicateObjects.Add(duplicate); - } - Undo.RecordObjects(duplicateObjects.ToArray(), "Duplicate Objects"); - } - - /// - /// 创建并设置 UI 对象的工具方法。 - /// - /// 可以是预制体或现有对象 - /// 指定父级 Transform - /// 是否设置为全屏填充 - /// 是否按照原始大小显示 - /// 自定义缩放比例(可选) - /// 是否强制使用预制体模式(默认为 true,如果传入的是预制体,将在父节点下实例化) - /// 返回创建的 GameObject - public static GameObject CreateUIObject(GameObject source, Transform parent, bool fullScreen = false, bool useOriginalSize = false, Vector3? customScale = null, bool usePrefabMode = true) - { - // 如果 source 是 null,抛出异常 - if (source == null) - { - Debug.LogError("传入的对象为空!无法创建 UI 对象。"); - return null; - } - - GameObject instance; - - // 判断是否需要使用预制体模式 - if (usePrefabMode && IsPrefab(source)) - { - // 如果是预制体,则在父节点下实例化 - instance = Object.Instantiate(source, parent); - instance.name = source.name; - } - else - { - // 否则直接使用传入的对象 - instance = source; - instance.transform.SetParent(parent); - } - - // 设置 RectTransform - RectTransform rectTransform = instance.GetComponent(); - - if (rectTransform == null) - { - Debug.LogError("传入的对象没有 RectTransform 组件,无法作为 UI 对象使用!"); - return null; - } - - rectTransform.localScale = customScale ?? Vector3.one; // 使用自定义缩放,默认为 1,1,1 - rectTransform.localPosition = Vector3.zero; // 默认位置为 (0, 0) - - // 设置锚点和偏移量 - if (fullScreen) - { - rectTransform.anchorMin = Vector2.zero; // 左下角锚点 - rectTransform.anchorMax = Vector2.one; // 右上角锚点 - rectTransform.offsetMin = Vector2.zero; // 左下角偏移为 0 - rectTransform.offsetMax = Vector2.zero; // 右上角偏移为 0 - } - else if (useOriginalSize) - { - // 如果使用原始大小,则保留锚点和偏移量,通常不修改 - rectTransform.anchorMin = new Vector2(0.5f, 0.5f); // 设置锚点到中心 - rectTransform.anchorMax = new Vector2(0.5f, 0.5f); - rectTransform.anchoredPosition = Vector2.zero; // 保证在父级中心位置 - } - else - { - // 默认大小逻辑,保持当前锚点和偏移 - rectTransform.offsetMin = rectTransform.offsetMin; - rectTransform.offsetMax = rectTransform.offsetMax; - } - - return instance; - } - - - - /// - /// 判断传入的对象是否为预制体。 - /// - /// 待检查的对象 - /// 如果是预制体,返回 true;否则返回 false - public static bool IsPrefab(GameObject source) - { -#if UNITY_EDITOR - return UnityEditor.PrefabUtility.GetPrefabAssetType(source) != UnityEditor.PrefabAssetType.NotAPrefab; -#else - Debug.LogWarning("只能在编辑器模式下检查是否为预制体。"); - return false; -#endif - } - - //创建UX UI前都会创建一个GameObject来挂载Component - - private static GameObject CreateUIObjWithParent(string name) - { - RectTransform parent; - bool haveParent = Utils.TryGetSelectionRectTransform(out parent); - if (haveParent) - { - var obj = new GameObject(name); - obj.layer = LayerMask.NameToLayer("UI"); - var rectTransform = obj.AddComponent(); - rectTransform.sizeDelta = new Vector2(200, 200); - obj.transform.SetParent(parent.transform); - obj.GetComponent().localPosition = new Vector3(0, 0, 0); - Undo.RegisterCreatedObjectUndo(obj.gameObject, "Create" + obj.name); - return obj; - } - else - { - EditorUtility.DisplayDialog("messageBox", - "请先选择一个父节点", - "确定", - "取消"); - return null; - } - } - - public static GameObject CreateUIObj(string name) - { - var obj = new GameObject(name); - obj.layer = LayerMask.NameToLayer("UI"); - var rectTransform = obj.AddComponent(); - rectTransform.sizeDelta = new Vector2(100, 100); - obj.GetComponent().localPosition = new Vector3(0, 0, 0); - return obj; - } - - /// - /// - /// - /// - /// LocalPosition - /// - /// - /// - public static GameObject CreateUIObj(string name, Vector3 pos, Vector3 size, GameObject[] selection) - { - name = "UX" + name; - var obj = new GameObject(name); - Undo.RegisterCreatedObjectUndo(obj, ""); - obj.layer = LayerMask.NameToLayer("UI"); - Transform parent; - parent = FindContainerLogic.GetObjectParent(selection); - Undo.SetTransformParent(obj.transform, parent, ""); - obj.transform.SetParent(parent); - - var rectTransform = Undo.AddComponent(obj); - rectTransform.sizeDelta = size; - obj.transform.localPosition = pos; - obj.transform.localScale = Vector3.one; - Undo.SetCurrentGroupName("Create " + name); - return obj; - } - } -} \ No newline at end of file diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/UIBuilderUtil.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/UIBuilderUtil.cs.meta deleted file mode 100644 index 7876610..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/UIBuilderUtil.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ca10e158a19fae9448cba8db69a7ddf1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/UXDesinUtil.cs b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/UXDesinUtil.cs deleted file mode 100644 index 5aba2ef..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/UXDesinUtil.cs +++ /dev/null @@ -1,104 +0,0 @@ -using System.IO; -using UnityEditor; -using UnityEditor.Callbacks; -using UnityEditor.SceneManagement; -using UnityEngine; - -namespace AlicizaX.UXTool -{ - public static class UXDesinUtil - { - private static readonly string DesinLayout = Path.Combine(Def_UXGUIPath.ConfigPath, "DesignLayout.wlt"); - private const string InDesignKey = "AlicizaUXTool_InDesign"; - - public static bool InDesign - { - get => EditorPrefs.GetBool(InDesignKey, false); - private set => EditorPrefs.SetBool(InDesignKey, value); - } - - public static event System.Action OnEnterDesignMode; - public static event System.Action OnExitDesignMode; - - [InitializeOnLoadMethod] - private static void Initialize() - { - EditorApplication.playModeStateChanged -= OnPlayModeStateChanged; - EditorApplication.playModeStateChanged += OnPlayModeStateChanged; - } - - private static void OnPlayModeStateChanged(PlayModeStateChange mode) - { - if (mode == PlayModeStateChange.EnteredPlayMode && InDesign) - { - ExitUIDesinger(); - } - } - - - public static void OpenUIDesinger() - { - if (InDesign) return; - if (File.Exists(DesinLayout)) - { - InDesign = true; - EditorUtility.LoadWindowLayout(DesinLayout); - PrefabStageUtils.OpenDefaultStage(); - ClearProjectSettings(); - OnEnterDesignMode?.Invoke(); - } - else - { - Debug.LogWarning("指定的布局文件不存在: " + DesinLayout); - } - } - - public static void ExitUIDesinger() - { - - - if (!string.IsNullOrEmpty(Def_UXGUIPath.DefaultLayoutPath)) - { - InDesign = false; // 持久化状态 - PrefabStageUtils.ExitStage(); - EditorUtility.LoadWindowLayout(Def_UXGUIPath.DefaultLayoutPath); - OnExitDesignMode?.Invoke(); // 通知退出设计模式 - } - else - { - Debug.LogWarning("没有找到已保存的布局"); - } - } - - [InitializeOnLoadMethod] - [DidReloadScripts] - private static void RestoreState() - { - // 在域重载后检查状态,如果需要恢复到设计模式 - if (InDesign && File.Exists(DesinLayout)) - { - var currentStage = PrefabStageUtility.GetCurrentPrefabStage(); - if (currentStage != null) - { - return; - } - - EditorApplication.delayCall += () => - { - EditorUtility.LoadWindowLayout(DesinLayout); - PrefabStageUtils.OpenDefaultStage(); - OnEnterDesignMode?.Invoke(); - }; - } - } - - /// - /// 清空 Project Settings 中的特定内容 - /// - private static void ClearProjectSettings() - { - UnityEditor.EditorSettings.prefabUIEnvironment = null; - UnityEditor.EditorSettings.prefabRegularEnvironment = null; - } - } -} diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/UXDesinUtil.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/UXDesinUtil.cs.meta deleted file mode 100644 index b760045..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/UXDesinUtil.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 818e293ac42d2b84ca8adbbb7bc927aa -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/UXSelectionUtil.cs b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/UXSelectionUtil.cs deleted file mode 100644 index d214cb3..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/UXSelectionUtil.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System; -using UnityEngine; -using UnityEditor; -using System.Collections.Generic; - -namespace AlicizaX.UXTool -{ - public static class UXSelectionUtil - { - public static void AddSelectionChangedEvent(Action e) - { - Selection.selectionChanged += e; - } - - public static void RemoveSelectionChangedEvent(Action e) - { - Selection.selectionChanged -= e; - } - - // 存储选中物体的缓存列表 - private static List gameObjectsCache = new List(); - - /// - /// 获取当前选中的所有物体(排除包含StageEngine脚本的物体)。 - /// - public static GameObject[] gameObjects - { - get - { - gameObjectsCache.Clear(); // 清空缓存 - GameObject[] selectedObjects = Selection.gameObjects; - foreach (var obj in selectedObjects) - { - if (obj.GetComponent() == null &&obj != PrefabStageUtils.StageRoot.gameObject) // 排除StageEngine脚本的物体 - { - gameObjectsCache.Add(obj); - } - } - - return gameObjectsCache.ToArray(); - } - set => Selection.objects = value; - } - - /// - /// 获取当前选中的第一个物体(排除包含StageEngine脚本的物体)。 - /// - public static GameObject activeGameObject - { - get - { - var selectedObjects = gameObjects; - return selectedObjects.Length > 0 ? selectedObjects[0] : null; - } - set { Selection.activeGameObject = value; } - } - - /// - /// 获取当前选中的所有物体(排除StageEngine脚本的物体),并清除掉包含StageEngine脚本的物体。 - /// - private static void ClearStageEngineSelection() - { - GameObject[] selectedObjects = Selection.gameObjects; - List validSelections = new List(); - - // 遍历选中的物体,排除包含StageEngine脚本的物体 - foreach (var obj in selectedObjects) - { - if (obj.GetComponent() == null) // 如果没有StageEngine脚本,则保留 - { - validSelections.Add(obj); - } - } - - // 清除所有选中物体 - Selection.objects = validSelections.ToArray(); - } - - /// - /// 获取当前选中的物体并清除选中列表中包含StageEngine脚本的物体。 - /// - public static GameObject[] clearedGameObjects - { - get - { - ClearStageEngineSelection(); // 清理包含 StageEngine 脚本的物体 - return gameObjects; // 返回已经清理过的选中物体 - } - } - } -} \ No newline at end of file diff --git a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/UXSelectionUtil.cs.meta b/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/UXSelectionUtil.cs.meta deleted file mode 100644 index 1a4a508..0000000 --- a/Client/Packages/com.alicizax.uxtool/Editor/UXGUI/Utils/UXSelectionUtil.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2d3ab5c44a6ae9148843048ff90932f3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Runtime.meta b/Client/Packages/com.alicizax.uxtool/Runtime.meta deleted file mode 100644 index ab30b37..0000000 --- a/Client/Packages/com.alicizax.uxtool/Runtime.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: a5ffca455bd26904eaa592ca81779942 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Runtime/AlicizaUXTool.Runtime.asmdef b/Client/Packages/com.alicizax.uxtool/Runtime/AlicizaUXTool.Runtime.asmdef deleted file mode 100644 index 2c54d7d..0000000 --- a/Client/Packages/com.alicizax.uxtool/Runtime/AlicizaUXTool.Runtime.asmdef +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "AlicizaUXTool.Runtime", - "rootNamespace": "", - "references": [ - "GUID:760f1778adc613f49a4394fb41ff0bbc" - ], - "includePlatforms": [], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [], - "versionDefines": [], - "noEngineReferences": false -} \ No newline at end of file diff --git a/Client/Packages/com.alicizax.uxtool/Runtime/AlicizaUXTool.Runtime.asmdef.meta b/Client/Packages/com.alicizax.uxtool/Runtime/AlicizaUXTool.Runtime.asmdef.meta deleted file mode 100644 index 9293129..0000000 --- a/Client/Packages/com.alicizax.uxtool/Runtime/AlicizaUXTool.Runtime.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 5d6fc8d2af5717244b925e7db309edd1 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/Runtime/StageEngine.cs b/Client/Packages/com.alicizax.uxtool/Runtime/StageEngine.cs deleted file mode 100644 index 9483086..0000000 --- a/Client/Packages/com.alicizax.uxtool/Runtime/StageEngine.cs +++ /dev/null @@ -1,79 +0,0 @@ -#if UNITY_EDITOR -using System.Collections.Generic; -using UnityEditor; -using UnityEngine; - -[ExecuteInEditMode] -public class StageEngine : MonoBehaviour -{ - // 检查是否处于编辑模式 - private static bool isInEditMode => Application.isEditor && !Application.isPlaying; - - private void OnEnable() - { - if (isInEditMode) - { - // 监听 Scene 视图的选择变化事件 - Selection.selectionChanged += OnSelectionChanged; - } - } - - private void OnDisable() - { - if (isInEditMode) - { - // 移除选择变化事件监听 - Selection.selectionChanged -= OnSelectionChanged; - } - } - - // 监听选择变化事件 - private void OnSelectionChanged() - { - - // 获取当前选中的所有物体 - GameObject[] selectedObjects = Selection.gameObjects; - - // 使用一个列表来存储不需要剔除的物体 - var validSelection = new List(); - - foreach (var selectedObject in selectedObjects) - { - // 如果物体没有 StageEngine 脚本,则加入有效选择列表 - if (selectedObject != null && selectedObject.GetComponent() == null) - { - validSelection.Add(selectedObject); - } - } - - // 将有效选择的物体设置为新的选择 - Selection.objects = validSelection.ToArray(); - // 如果有物体被选中,更新 activeGameObject - if (validSelection.Count > 0) - { - Selection.activeGameObject = validSelection[0]; - } - else - { - Selection.activeGameObject = null; - } - - // 刷新 Scene 视图,确保取消选择操作生效 - SceneView.RepaintAll(); - } - - // 让物体在编辑模式下无法被选中(如果你想防止场景中拖拽到其他物体) - private void OnDrawGizmos() - { - - if (isInEditMode) - { - // 如果当前物体被选中,立即取消选择 - if (Selection.activeGameObject == gameObject) - { - Selection.activeGameObject = null; - } - } - } -} -#endif \ No newline at end of file diff --git a/Client/Packages/com.alicizax.uxtool/Runtime/StageEngine.cs.meta b/Client/Packages/com.alicizax.uxtool/Runtime/StageEngine.cs.meta deleted file mode 100644 index c303dfc..0000000 --- a/Client/Packages/com.alicizax.uxtool/Runtime/StageEngine.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 21d71bc4606dce64fb65869d11d782df -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/com.alicizax.uxtool/package.json b/Client/Packages/com.alicizax.uxtool/package.json deleted file mode 100644 index fdef498..0000000 --- a/Client/Packages/com.alicizax.uxtool/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "com.alicizax.uxtool", - "displayName": "AlicizaX UX Tool", - "category": "Aliciza X", - "version": "1.0.0", - "unity": "2025.1", - "description": "AlicizaX UX Tool", - "keywords": [ - "Aliciza X" - ], - "author": { - "name": "Yuliuren", - "email": "yuliuren00@gmail.com" - } -} diff --git a/Client/Packages/com.alicizax.uxtool/package.json.meta b/Client/Packages/com.alicizax.uxtool/package.json.meta deleted file mode 100644 index aa1732f..0000000 --- a/Client/Packages/com.alicizax.uxtool/package.json.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 3df079a43a75a2c45bb83bffaf2ac9ee -PackageManifestImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Client/Packages/packages-lock.json b/Client/Packages/packages-lock.json index a542644..021ec2b 100644 --- a/Client/Packages/packages-lock.json +++ b/Client/Packages/packages-lock.json @@ -68,12 +68,6 @@ "source": "embedded", "dependencies": {} }, - "com.alicizax.uxtool": { - "version": "file:com.alicizax.uxtool", - "depth": 0, - "source": "embedded", - "dependencies": {} - }, "com.code-philosophy.hybridclr": { "version": "https://gitee.com/focus-creative-games/hybridclr_unity.git", "depth": 0, @@ -93,7 +87,7 @@ "depth": 0, "source": "git", "dependencies": {}, - "hash": "a2d206268922a2011851aedb053f3396f2243fc4" + "hash": "10726744d42ac0a51bfdf4d813efb32a4f5372e3" }, "com.unity.2d.sprite": { "version": "1.0.0", diff --git a/Client/ProjectSettings/UIGenerateConfiguration.asset b/Client/ProjectSettings/UIGenerateConfiguration.asset index 40e6642..ad6af01 100644 --- a/Client/ProjectSettings/UIGenerateConfiguration.asset +++ b/Client/ProjectSettings/UIGenerateConfiguration.asset @@ -71,4 +71,4 @@ MonoBehaviour: GenerateHolderCodePath: Assets/Scripts/Hotfix/GameLogic/UI//Generate UIPrefabRootPath: Assets/Bundles/UI LoadType: 1 - UIScriptGeneratorRuleHelper: AlicizaX.UXTool.AlicizaUXUIGeneratorRuleHelper + UIScriptGeneratorRuleHelper: AlicizaX.UI.Editor.DefaultUIGeneratorRuleHelper diff --git a/Client/ProjectSettings/UXPrefabTabsConfig.asset b/Client/ProjectSettings/UXPrefabTabsConfig.asset index d58b4e1..074d553 100644 --- a/Client/ProjectSettings/UXPrefabTabsConfig.asset +++ b/Client/ProjectSettings/UXPrefabTabsConfig.asset @@ -14,3 +14,5 @@ MonoBehaviour: m_EditorClassIdentifier: tabs: - afd6d5cf3d694a848903fd7f4eecd3c6 + - b76991d3fd07df84983b6da7daa589c8 + - 9302214e576d0a649b660ead4c9537e6 diff --git a/Client/UserSettings/EditorUserSettings.asset b/Client/UserSettings/EditorUserSettings.asset index 287ce28..51d7654 100644 --- a/Client/UserSettings/EditorUserSettings.asset +++ b/Client/UserSettings/EditorUserSettings.asset @@ -27,16 +27,16 @@ EditorUserSettings: value: 54010c54510c5a5f5a0a0973477b0a4414151a2b757925367a7e4a6ab1b66260 flags: 0 RecentlyUsedSceneGuid-6: - value: 015450045700505d0f0a5f2313260a444e164b2e757b76652c2d4d32bab0313a - flags: 0 - RecentlyUsedSceneGuid-7: value: 56060350000d5b5a5908597a48255a44174e4d797a7d7e6475794f61e7b3643e flags: 0 + RecentlyUsedSceneGuid-7: + value: 50500404540c580d0f0b5e7543725b44424f4c7a7b7c7734747e4f36e4b1676d + flags: 0 RecentlyUsedSceneGuid-8: - value: 5a07065703500c59585e0e7748770d44444f4a737d2d7f35787d4f63e0b26668 + value: 015450045700505d0f0a5f2313260a444e164b2e757b76652c2d4d32bab0313a flags: 0 RecentlyUsedSceneGuid-9: - value: 50500404540c580d0f0b5e7543725b44424f4c7a7b7c7734747e4f36e4b1676d + value: 5a07065703500c59585e0e7748770d44444f4a737d2d7f35787d4f63e0b26668 flags: 0 vcSharedLogLevel: value: 0d5e400f0650 diff --git a/Client/UserSettings/Layouts/default-2022.dwlt b/Client/UserSettings/Layouts/default-2022.dwlt index 371ca3d..5bd092c 100644 --- a/Client/UserSettings/Layouts/default-2022.dwlt +++ b/Client/UserSettings/Layouts/default-2022.dwlt @@ -19,7 +19,7 @@ MonoBehaviour: width: 1920 height: 997 m_ShowMode: 4 - m_Title: Console + m_Title: Project m_RootView: {fileID: 4} m_MinSize: {x: 875, y: 300} m_MaxSize: {x: 10000, y: 10000} @@ -40,16 +40,17 @@ MonoBehaviour: m_Position: serializedVersion: 2 x: 0 - y: 207 - width: 609 - height: 740 + y: 696 + width: 421 + height: 251 m_MinSize: {x: 51, y: 71} m_MaxSize: {x: 4001, y: 4021} m_ActualView: {fileID: 14} m_Panes: - {fileID: 14} + - {fileID: 15} m_Selected: 0 - m_LastSelected: 0 + m_LastSelected: 1 --- !u!114 &3 MonoBehaviour: m_ObjectHideFlags: 52 @@ -69,7 +70,7 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 0 - width: 609 + width: 421 height: 947 m_MinSize: {x: 100, y: 100} m_MaxSize: {x: 8096, y: 16192} @@ -173,7 +174,7 @@ MonoBehaviour: m_MinSize: {x: 400, y: 100} m_MaxSize: {x: 32384, y: 16192} vertical: 0 - controlID: 101 + controlID: 69 draggingID: 0 --- !u!114 &8 MonoBehaviour: @@ -192,15 +193,14 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 0 - width: 609 - height: 207 + width: 421 + height: 696 m_MinSize: {x: 201, y: 221} m_MaxSize: {x: 4001, y: 4021} m_ActualView: {fileID: 16} m_Panes: - - {fileID: 15} - {fileID: 16} - m_Selected: 1 + m_Selected: 0 m_LastSelected: 0 --- !u!114 &9 MonoBehaviour: @@ -219,14 +219,14 @@ MonoBehaviour: - {fileID: 11} m_Position: serializedVersion: 2 - x: 609 + x: 421 y: 0 - width: 396 + width: 284 height: 947 m_MinSize: {x: 100, y: 100} m_MaxSize: {x: 8096, y: 16192} vertical: 1 - controlID: 49 + controlID: 70 draggingID: 0 --- !u!114 &10 MonoBehaviour: @@ -245,8 +245,8 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 0 - width: 396 - height: 461 + width: 284 + height: 249 m_MinSize: {x: 202, y: 221} m_MaxSize: {x: 4002, y: 4021} m_ActualView: {fileID: 17} @@ -270,9 +270,9 @@ MonoBehaviour: m_Position: serializedVersion: 2 x: 0 - y: 461 - width: 396 - height: 486 + y: 249 + width: 284 + height: 698 m_MinSize: {x: 102, y: 121} m_MaxSize: {x: 4002, y: 4021} m_ActualView: {fileID: 18} @@ -295,9 +295,9 @@ MonoBehaviour: m_Children: [] m_Position: serializedVersion: 2 - x: 1005 + x: 705 y: 0 - width: 417 + width: 431 height: 947 m_MinSize: {x: 232, y: 271} m_MaxSize: {x: 10002, y: 10021} @@ -321,9 +321,9 @@ MonoBehaviour: m_Children: [] m_Position: serializedVersion: 2 - x: 1422 + x: 1136 y: 0 - width: 498 + width: 784 height: 947 m_MinSize: {x: 276, y: 71} m_MaxSize: {x: 4001, y: 4021} @@ -353,9 +353,9 @@ MonoBehaviour: m_Pos: serializedVersion: 2 x: 0 - y: 280 - width: 608 - height: 719 + y: 769 + width: 420 + height: 230 m_SerializedDataModeController: m_DataMode: 0 m_PreferredDataMode: 0 @@ -372,7 +372,7 @@ MonoBehaviour: m_ShowGizmos: 0 m_TargetDisplay: 0 m_ClearColor: {r: 0, g: 0, b: 0, a: 0} - m_TargetSize: {x: 608, y: 698} + m_TargetSize: {x: 420, y: 209} m_TextureFilterMode: 0 m_TextureHideFlags: 61 m_RenderIMGUI: 1 @@ -387,10 +387,10 @@ MonoBehaviour: m_VRangeLocked: 0 hZoomLockedByDefault: 0 vZoomLockedByDefault: 0 - m_HBaseRangeMin: -304 - m_HBaseRangeMax: 304 - m_VBaseRangeMin: -349 - m_VBaseRangeMax: 349 + m_HBaseRangeMin: -210 + m_HBaseRangeMax: 210 + m_VBaseRangeMin: -104.5 + m_VBaseRangeMax: 104.5 m_HAllowExceedBaseRangeMin: 1 m_HAllowExceedBaseRangeMax: 1 m_VAllowExceedBaseRangeMin: 1 @@ -408,23 +408,23 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 21 - width: 608 - height: 698 + width: 420 + height: 209 m_Scale: {x: 1, y: 1} - m_Translation: {x: 304, y: 349} + m_Translation: {x: 210, y: 104.5} m_MarginLeft: 0 m_MarginRight: 0 m_MarginTop: 0 m_MarginBottom: 0 m_LastShownAreaInsideMargins: serializedVersion: 2 - x: -304 - y: -349 - width: 608 - height: 698 + x: -210 + y: -104.5 + width: 420 + height: 209 m_MinimalGUI: 1 m_defaultScale: 1 - m_LastWindowPixelSize: {x: 608, y: 719} + m_LastWindowPixelSize: {x: 420, y: 230} m_ClearInEditMode: 1 m_NoCameraWarning: 1 m_LowResolutionForAspectRatios: 01000000000000000000 @@ -451,9 +451,9 @@ MonoBehaviour: m_Pos: serializedVersion: 2 x: 0 - y: 79 - width: 365 - height: 915 + y: 280 + width: 441 + height: 719 m_SerializedDataModeController: m_DataMode: 0 m_PreferredDataMode: 0 @@ -522,8 +522,8 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 73 - width: 608 - height: 186 + width: 420 + height: 675 m_SerializedDataModeController: m_DataMode: 0 m_PreferredDataMode: 0 @@ -616,9 +616,9 @@ MonoBehaviour: floating: 0 collapsed: 0 displayed: 1 - snapOffset: {x: 24, y: -131} + snapOffset: {x: -111, y: -131} snapOffsetDelta: {x: 0, y: 0} - snapCorner: 2 + snapCorner: 3 id: Orientation index: 0 layout: 4 @@ -867,7 +867,7 @@ MonoBehaviour: snapOffsetDelta: {x: 0, y: 0} snapCorner: 0 id: UnityEditor.SceneViewCameraOverlay - index: 10 + index: 9 layout: 4 size: {x: 0, y: 0} sizeOverriden: 0 @@ -1059,14 +1059,14 @@ MonoBehaviour: m_OverrideSceneCullingMask: 6917529027641081856 m_SceneIsLit: 0 m_SceneLighting: 1 - m_2DMode: 0 + m_2DMode: 1 m_isRotationLocked: 0 m_PlayAudio: 0 m_AudioPlay: 0 m_Position: - m_Target: {x: -8.095348, y: -0.7928839, z: 0.4128915} + m_Target: {x: 1000, y: 1000, z: 100} speed: 2 - m_Value: {x: -8.095348, y: -0.7928839, z: 0.4128915} + m_Value: {x: 1000, y: 1000, z: 100} m_RenderMode: 0 m_CameraMode: drawMode: 0 @@ -1094,17 +1094,17 @@ MonoBehaviour: m_Size: {x: 0, y: 0} yGrid: m_Fade: - m_Target: 1 + m_Target: 0 speed: 2 - m_Value: 1 + m_Value: 0 m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} m_Pivot: {x: 0, y: 0, z: 0} m_Size: {x: 1, y: 1} zGrid: m_Fade: - m_Target: 0 + m_Target: 1 speed: 2 - m_Value: 0 + m_Value: 1 m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} m_Pivot: {x: 0, y: 0, z: 0} m_Size: {x: 1, y: 1} @@ -1112,17 +1112,17 @@ MonoBehaviour: m_GridAxis: 1 m_gridOpacity: 0.5 m_Rotation: - m_Target: {x: -0.09573687, y: 0.6643242, z: -0.086385615, w: -0.7362373} + m_Target: {x: 0, y: 0, z: 0, w: 1} speed: 2 - m_Value: {x: -0.09573687, y: 0.6643242, z: -0.086385615, w: -0.7362373} + m_Value: {x: 0, y: 0, z: 0, w: 1} m_Size: - m_Target: 7.071068 + m_Target: 15.132209 speed: 2 - m_Value: 7.071068 + m_Value: 15.132209 m_Ortho: - m_Target: 0 + m_Target: 1 speed: 2 - m_Value: 0 + m_Value: 1 m_CameraSettings: m_Speed: 2 m_SpeedNormalized: 1 @@ -1163,10 +1163,10 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 609 + x: 421 y: 73 - width: 394 - height: 440 + width: 282 + height: 228 m_SerializedDataModeController: m_DataMode: 0 m_PreferredDataMode: 0 @@ -1180,9 +1180,9 @@ MonoBehaviour: m_SceneHierarchy: m_TreeViewState: scrollPos: {x: 0, y: 0} - m_SelectedIDs: + m_SelectedIDs: 626f0000 m_LastClickedID: 0 - m_ExpandedIDs: 5a6dffffe8b7ffff92c4ffffbcc7ffff1efbffff26fbffff28fbfffff4fffffffc6c0000026d0000 + m_ExpandedIDs: eefafffff6fafffff8faffffd66c0000 m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -1226,10 +1226,10 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 609 - y: 534 - width: 394 - height: 465 + x: 421 + y: 322 + width: 282 + height: 677 m_SerializedDataModeController: m_DataMode: 0 m_PreferredDataMode: 0 @@ -1260,9 +1260,9 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 1005 + x: 705 y: 73 - width: 415 + width: 429 height: 926 m_SerializedDataModeController: m_DataMode: 0 @@ -1284,7 +1284,8 @@ MonoBehaviour: m_ShowAllHits: 0 m_SkipHidden: 0 m_SearchArea: 2 - m_Folders: [] + m_Folders: + - Packages/com.alicizax.unity.ui.extension/Editor/Res/ComponentIcon m_Globs: [] m_OriginalText: m_ImportLogFlags: 0 @@ -1300,7 +1301,7 @@ MonoBehaviour: scrollPos: {x: 0, y: 0} m_SelectedIDs: e48c0000 m_LastClickedID: 36068 - m_ExpandedIDs: 00000000806d0000826d0000846d0000866d0000886d00008a6d00008c6d00008e6d0000906d0000926d0000946d0000966d0000986d00009a6d00009c6d00009e6d0000a06d0000a26d0000a46d0000a66d0000a86d0000aa6d0000ac6d0000ae6d0000b06d0000b26d0000b46d0000b66d0000b86d0000ba6d0000 + m_ExpandedIDs: 00000000226f0000246f0000266f0000286f00002a6f00002c6f00002e6f0000306f0000326f0000346f0000366f0000386f00003a6f00003c6f00003e6f0000406f0000426f0000446f0000466f0000486f00004a6f00004c6f00004e6f0000506f0000526f0000546f0000566f0000586f00005a6f00005c6f00005e6f0000606f0000626f0000646f0000666f0000686f00006a6f0000 m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -1325,10 +1326,10 @@ MonoBehaviour: m_Icon: {fileID: 0} m_ResourceFile: m_AssetTreeState: - scrollPos: {x: 0, y: 580} + scrollPos: {x: 0, y: 720} m_SelectedIDs: m_LastClickedID: 0 - m_ExpandedIDs: ffffffff00000000900d0000806d0000826d0000866d0000886d00008a6d00008c6d00008e6d0000906d0000926d0000946d0000966d0000986d00009a6d00009e6d0000a26d0000a46d0000a66d0000aa6d0000ac6d0000ae6d0000b06d0000b26d0000b46d0000b66d0000b86d0000ba6d00007e6f0000806f0000f66f0000e27800002279000024790000fe7a0000307b0000b27b0000787d00007a7d00007c7d0000ffffff7f + m_ExpandedIDs: ffffffff00000000226f0000246f0000266f0000286f00002a6f00002e6f0000306f0000326f0000346f0000366f0000386f00003a6f00003c6f00003e6f0000406f0000426f0000446f0000466f0000486f00004a6f00004e6f0000506f0000526f0000546f0000566f0000586f00005a6f00005c6f00005e6f0000606f0000626f0000646f0000666f0000686f00006a6f0000ffffff7f m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -1404,9 +1405,9 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 1422 + x: 1136 y: 73 - width: 497 + width: 783 height: 926 m_SerializedDataModeController: m_DataMode: 0 @@ -1421,11 +1422,11 @@ MonoBehaviour: m_ObjectsLockedBeforeSerialization: [] m_InstanceIDsLockedBeforeSerialization: m_PreviewResizer: - m_CachedPref: -167 + m_CachedPref: 151 m_ControlHash: 1412526313 m_PrefName: Preview_InspectorPreview m_LastInspectedObjectInstanceID: -1 - m_LastVerticalScrollValue: 0 + m_LastVerticalScrollValue: 432 m_GlobalObjectId: m_InspectorMode: 0 m_LockTracker: