diff --git a/Client/Assets/Resources/Prefab/SkillTree.meta b/Client/Assets/Resources/Prefab/SkillTree.meta
new file mode 100644
index 0000000..8a2e161
--- /dev/null
+++ b/Client/Assets/Resources/Prefab/SkillTree.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5b1d52f322260bf428a4fb1b6cdfa6c4
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Client/Assets/Resources/Prefab/SkillTree/linkLine.prefab b/Client/Assets/Resources/Prefab/SkillTree/linkLine.prefab
new file mode 100644
index 0000000..3cb52de
--- /dev/null
+++ b/Client/Assets/Resources/Prefab/SkillTree/linkLine.prefab
@@ -0,0 +1,317 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &1664558094677333856
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2208792499101711377}
+ - component: {fileID: 1825129067317753898}
+ - component: {fileID: 6421663863102872516}
+ - component: {fileID: 3139014458809966580}
+ - component: {fileID: 5310081197045808127}
+ m_Layer: 5
+ m_Name: linkLine
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2208792499101711377
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1664558094677333856}
+ 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: 673255319269329523}
+ - {fileID: 7289807813294936237}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0.5}
+ m_AnchorMax: {x: 0, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 100, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1825129067317753898
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1664558094677333856}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 04b3f5cbad874b31893c0d7e1de082b9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ line: {fileID: 3139014458809966580}
+ curveGenerator: {fileID: 5310081197045808127}
+ lineHead: {fileID: 6734843052347841847}
+ lineTail: {fileID: 6296720973109890967}
+ rectTransform: {fileID: 0}
+--- !u!222 &6421663863102872516
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1664558094677333856}
+ m_CullTransparentMesh: 1
+--- !u!114 &3139014458809966580
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1664558094677333856}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a7c56ce7d0f247639e5fff6ebba2edd6, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ points:
+ - {x: -40, y: -25}
+ - {x: -37.93481, y: -18.716663}
+ - {x: -35.745182, y: -12.866666}
+ - {x: -33.439995, y: -7.4499993}
+ - {x: -31.02815, y: -2.4666653}
+ - {x: -28.518517, y: 2.0833342}
+ - {x: -25.920002, y: 6.2000017}
+ - {x: -23.241482, y: 9.883333}
+ - {x: -20.491852, y: 13.133334}
+ - {x: -17.679998, y: 15.95}
+ - {x: -14.814812, y: 18.333332}
+ - {x: -11.905186, y: 20.283335}
+ - {x: -8.960002, y: 21.800001}
+ - {x: -5.988147, y: 22.883331}
+ - {x: -2.998517, y: 23.533333}
+ - {x: 0, y: 23.75}
+ - {x: 2.9985209, y: 23.533335}
+ - {x: 5.9881477, y: 22.883333}
+ - {x: 8.960001, y: 21.8}
+ - {x: 11.905186, y: 20.283333}
+ - {x: 14.814817, y: 18.333332}
+ - {x: 17.679998, y: 15.95}
+ - {x: 20.491852, y: 13.133332}
+ - {x: 23.241482, y: 9.883335}
+ - {x: 25.920002, y: 6.2}
+ - {x: 28.518517, y: 2.083335}
+ - {x: 31.02815, y: -2.4666672}
+ - {x: 33.439995, y: -7.449996}
+ - {x: 35.745186, y: -12.866667}
+ - {x: 37.93481, y: -18.716661}
+ - {x: 40, y: -25}
+ lineWidth: 1
+ lineGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 1, b: 1, a: 1}
+ key1: {r: 1, g: 1, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_ColorSpace: -1
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ startCap: 0
+ endCap: 0
+--- !u!114 &5310081197045808127
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1664558094677333856}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 8623ad98baf0495b8c8634232e3cae2e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ lineRenderer: {fileID: 3139014458809966580}
+ P0: {x: -40, y: -25}
+ P1: {x: -20, y: 40}
+ P2: {x: 20, y: 40}
+ P3: {x: 40, y: -25}
+ segmentCount: 30
+--- !u!1 &6296720973109890967
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7289807813294936237}
+ - component: {fileID: 899509788967116364}
+ - component: {fileID: 1335543252651392455}
+ m_Layer: 5
+ m_Name: lineTail
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &7289807813294936237
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6296720973109890967}
+ 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: 2208792499101711377}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 6, y: 6}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &899509788967116364
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6296720973109890967}
+ m_CullTransparentMesh: 1
+--- !u!114 &1335543252651392455
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6296720973109890967}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 3286163911610860551, guid: 686e972b3342cea42a8e69cc49a56158, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 1
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!1 &6734843052347841847
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 673255319269329523}
+ - component: {fileID: 4498003731356661392}
+ - component: {fileID: 6599365285095181712}
+ m_Layer: 5
+ m_Name: lineHead
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &673255319269329523
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6734843052347841847}
+ 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: 2208792499101711377}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 6, y: 6}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4498003731356661392
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6734843052347841847}
+ m_CullTransparentMesh: 1
+--- !u!114 &6599365285095181712
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6734843052347841847}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 3286163911610860551, guid: 686e972b3342cea42a8e69cc49a56158, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 1
+ 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/Assets/Resources/Prefab/SkillTree/linkLine.prefab.meta b/Client/Assets/Resources/Prefab/SkillTree/linkLine.prefab.meta
new file mode 100644
index 0000000..a20efcd
--- /dev/null
+++ b/Client/Assets/Resources/Prefab/SkillTree/linkLine.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: c56fd48e6165606439f1b36fec4e4c3f
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Client/Assets/Resources/UI/技能树页.meta b/Client/Assets/Resources/UI/技能树页.meta
new file mode 100644
index 0000000..24406ca
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ad635380c745e674885938d610673058
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Client/Assets/Resources/UI/技能树页/升级标识装饰线.png b/Client/Assets/Resources/UI/技能树页/升级标识装饰线.png
new file mode 100644
index 0000000..b68f3b4
Binary files /dev/null and b/Client/Assets/Resources/UI/技能树页/升级标识装饰线.png differ
diff --git a/Client/Assets/Resources/UI/技能树页/升级标识装饰线.png.meta b/Client/Assets/Resources/UI/技能树页/升级标识装饰线.png.meta
new file mode 100644
index 0000000..926550f
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/升级标识装饰线.png.meta
@@ -0,0 +1,117 @@
+fileFormatVersion: 2
+guid: 693d2c8ad6024cc43bcb3cf208f2ab2b
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 0
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 2
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Client/Assets/Resources/UI/技能树页/升级标识装饰线.svg b/Client/Assets/Resources/UI/技能树页/升级标识装饰线.svg
new file mode 100644
index 0000000..9a96d9a
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/升级标识装饰线.svg
@@ -0,0 +1,16 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/技能树页/升级标识装饰线.svg.meta b/Client/Assets/Resources/UI/技能树页/升级标识装饰线.svg.meta
new file mode 100644
index 0000000..3b5ac4a
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/升级标识装饰线.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: e58977ed006ed3647979578d502fc9ea
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 1
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: 7d7919641ff448841bc084ddc50b0e12
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/技能树页/子向包边.png b/Client/Assets/Resources/UI/技能树页/子向包边.png
new file mode 100644
index 0000000..19bceed
Binary files /dev/null and b/Client/Assets/Resources/UI/技能树页/子向包边.png differ
diff --git a/Client/Assets/Resources/UI/技能树页/子向包边.png.meta b/Client/Assets/Resources/UI/技能树页/子向包边.png.meta
new file mode 100644
index 0000000..876d68c
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/子向包边.png.meta
@@ -0,0 +1,117 @@
+fileFormatVersion: 2
+guid: 67ec6eeac0c077f49894ee10de535813
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 0
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 11, z: 0, w: 11}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 1537655665
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Client/Assets/Resources/UI/技能树页/子向包边.svg b/Client/Assets/Resources/UI/技能树页/子向包边.svg
new file mode 100644
index 0000000..2cb6a50
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/子向包边.svg
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/技能树页/子向包边.svg.meta b/Client/Assets/Resources/UI/技能树页/子向包边.svg.meta
new file mode 100644
index 0000000..fa32b70
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/子向包边.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: 4b7f6cba34ef8484b9fd33aeee9c0acd
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 1
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: b56f68428c7bef948a26cd768308f16e
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/技能树页/已升级技能按钮.svg b/Client/Assets/Resources/UI/技能树页/已升级技能按钮.svg
new file mode 100644
index 0000000..9e10a01
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/已升级技能按钮.svg
@@ -0,0 +1,44 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/技能树页/已升级技能按钮.svg.meta b/Client/Assets/Resources/UI/技能树页/已升级技能按钮.svg.meta
new file mode 100644
index 0000000..db112aa
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/已升级技能按钮.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: 5139b3ff5ff969f49a75e5071c9a9b48
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 1
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: d260bc8e96b9afa438c3a6f8ea544ec3
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/技能树页/已升级标识.svg b/Client/Assets/Resources/UI/技能树页/已升级标识.svg
new file mode 100644
index 0000000..3cf88e0
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/已升级标识.svg
@@ -0,0 +1,19 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/技能树页/已升级标识.svg.meta b/Client/Assets/Resources/UI/技能树页/已升级标识.svg.meta
new file mode 100644
index 0000000..2ebeeae
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/已升级标识.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: feebecedea6910c499d18b7b07894ec8
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 1
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 50
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: a346871554d633b43b51a10f649af560
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/技能树页/技能书页收起标识.svg b/Client/Assets/Resources/UI/技能树页/技能书页收起标识.svg
new file mode 100644
index 0000000..e2ee3c4
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/技能书页收起标识.svg
@@ -0,0 +1,23 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/技能树页/技能书页收起标识.svg.meta b/Client/Assets/Resources/UI/技能树页/技能书页收起标识.svg.meta
new file mode 100644
index 0000000..c829112
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/技能书页收起标识.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: b03fa151d0dcd2c4db7d0618ccbd45f3
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 1
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: 2f2c9a0c97518814683e75ae1ee1ac5c
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/技能树页/技能弹窗.svg b/Client/Assets/Resources/UI/技能树页/技能弹窗.svg
new file mode 100644
index 0000000..fc06e2d
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/技能弹窗.svg
@@ -0,0 +1,90 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/技能树页/技能弹窗.svg.meta b/Client/Assets/Resources/UI/技能树页/技能弹窗.svg.meta
new file mode 100644
index 0000000..21b381e
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/技能弹窗.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: e32dcfee355c1834d92c67211ea408f0
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 1
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: 20ec8563e5f2f884aa3389cb39abe0c6
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/技能树页/技能弹窗底纹.svg b/Client/Assets/Resources/UI/技能树页/技能弹窗底纹.svg
new file mode 100644
index 0000000..4eb5df0
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/技能弹窗底纹.svg
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/技能树页/技能弹窗底纹.svg.meta b/Client/Assets/Resources/UI/技能树页/技能弹窗底纹.svg.meta
new file mode 100644
index 0000000..fc58a23
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/技能弹窗底纹.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: 72e127afbdaecef4494fbe1a776542dd
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 1
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: 55bdb2ffdc9fdef419867d75b1dff812
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/技能树页/技能弹窗确认升级按钮.svg b/Client/Assets/Resources/UI/技能树页/技能弹窗确认升级按钮.svg
new file mode 100644
index 0000000..dbf6528
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/技能弹窗确认升级按钮.svg
@@ -0,0 +1,25 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/技能树页/技能弹窗确认升级按钮.svg.meta b/Client/Assets/Resources/UI/技能树页/技能弹窗确认升级按钮.svg.meta
new file mode 100644
index 0000000..68d8476
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/技能弹窗确认升级按钮.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: e3e9dacc2864e6142aa5cf7627d2c176
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 1
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: e27458690e43bdc4ebf96552510ccbc4
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/技能树页/技能树按钮.png b/Client/Assets/Resources/UI/技能树页/技能树按钮.png
new file mode 100644
index 0000000..c4370f5
Binary files /dev/null and b/Client/Assets/Resources/UI/技能树页/技能树按钮.png differ
diff --git a/Client/Assets/Resources/UI/技能树页/技能树按钮.png.meta b/Client/Assets/Resources/UI/技能树页/技能树按钮.png.meta
new file mode 100644
index 0000000..d685d46
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/技能树按钮.png.meta
@@ -0,0 +1,117 @@
+fileFormatVersion: 2
+guid: d8f49071a7fc7d04899e66582e89954a
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 0
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 0
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 11, y: 0, z: 12, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 1537655665
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Client/Assets/Resources/UI/技能树页/技能树按钮.svg b/Client/Assets/Resources/UI/技能树页/技能树按钮.svg
new file mode 100644
index 0000000..942a635
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/技能树按钮.svg
@@ -0,0 +1,23 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/技能树页/技能树按钮.svg.meta b/Client/Assets/Resources/UI/技能树页/技能树按钮.svg.meta
new file mode 100644
index 0000000..937e04e
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/技能树按钮.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: 05dd1ffa4f26a6449aa6c0b662017280
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 1
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: ec0f8a1d982f7184c8a24ae59c15bf5c
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/技能树页/技能树页展开标识.svg b/Client/Assets/Resources/UI/技能树页/技能树页展开标识.svg
new file mode 100644
index 0000000..67c4ae8
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/技能树页展开标识.svg
@@ -0,0 +1,20 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/技能树页/技能树页展开标识.svg.meta b/Client/Assets/Resources/UI/技能树页/技能树页展开标识.svg.meta
new file mode 100644
index 0000000..67088ea
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/技能树页展开标识.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: cf5acd5e5812b9341a54b85cf2bc3179
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 1
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: a0104c53c68a94740a890a40348d212e
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/技能树页/斜条底纹.svg b/Client/Assets/Resources/UI/技能树页/斜条底纹.svg
new file mode 100644
index 0000000..ca9bfb1
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/斜条底纹.svg
@@ -0,0 +1,111 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/技能树页/斜条底纹.svg.meta b/Client/Assets/Resources/UI/技能树页/斜条底纹.svg.meta
new file mode 100644
index 0000000..50e4cde
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/斜条底纹.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: 55667ea3c1a5c7742996ff14e7e116e6
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 1
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 200
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 2560
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: 930991840ffd85741b92e8dc509eea96
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/技能树页/未升级标识.svg b/Client/Assets/Resources/UI/技能树页/未升级标识.svg
new file mode 100644
index 0000000..d97dc71
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/未升级标识.svg
@@ -0,0 +1,21 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/技能树页/未升级标识.svg.meta b/Client/Assets/Resources/UI/技能树页/未升级标识.svg.meta
new file mode 100644
index 0000000..eca3757
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/未升级标识.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: 01fcc068be25cbf4da05f4d21b275f8f
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 1
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: 5336f5b03898fb445838838d512dfcd3
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/技能树页/父向包边.svg b/Client/Assets/Resources/UI/技能树页/父向包边.svg
new file mode 100644
index 0000000..df27e12
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/父向包边.svg
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/技能树页/父向包边.svg.meta b/Client/Assets/Resources/UI/技能树页/父向包边.svg.meta
new file mode 100644
index 0000000..3efe5f4
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/父向包边.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: 2b03e58d416a4cb40b11ac8e5990eba2
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 1
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 1
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name: "\u7236\u5411\u5305\u8FB9"
+ originalName:
+ pivot: {x: 0.5, y: 0.5}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 16
+ height: 256
+ spriteID: 0e48a2c72d963bf4398147e28fa38531
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/技能树页/父向包边png.png b/Client/Assets/Resources/UI/技能树页/父向包边png.png
new file mode 100644
index 0000000..899e48b
Binary files /dev/null and b/Client/Assets/Resources/UI/技能树页/父向包边png.png differ
diff --git a/Client/Assets/Resources/UI/技能树页/父向包边png.png.meta b/Client/Assets/Resources/UI/技能树页/父向包边png.png.meta
new file mode 100644
index 0000000..d2567b2
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/父向包边png.png.meta
@@ -0,0 +1,117 @@
+fileFormatVersion: 2
+guid: 7215e09b41401864cb2a7584f0c4c4e5
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 0
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 13, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 1537655665
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Client/Assets/Resources/UI/技能树页/物品(包括武器等)弹窗.meta b/Client/Assets/Resources/UI/技能树页/物品(包括武器等)弹窗.meta
new file mode 100644
index 0000000..939fcd5
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/物品(包括武器等)弹窗.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b19cef84b7fe8a0479ab3d3be4ec604f
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Client/Assets/Resources/UI/技能树页/物品(包括武器等)弹窗/制造物弹窗.svg b/Client/Assets/Resources/UI/技能树页/物品(包括武器等)弹窗/制造物弹窗.svg
new file mode 100644
index 0000000..8f5b4f5
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/物品(包括武器等)弹窗/制造物弹窗.svg
@@ -0,0 +1,665 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/技能树页/物品(包括武器等)弹窗/制造物弹窗.svg.meta b/Client/Assets/Resources/UI/技能树页/物品(包括武器等)弹窗/制造物弹窗.svg.meta
new file mode 100644
index 0000000..7250d05
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/物品(包括武器等)弹窗/制造物弹窗.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: 0f8d5446bd8a7bf4792663de8054b0be
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 1
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: ef13026bbb2cd71409e472c076e91499
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/技能树页/物品(包括武器等)弹窗/掉落物弹窗_1.svg b/Client/Assets/Resources/UI/技能树页/物品(包括武器等)弹窗/掉落物弹窗_1.svg
new file mode 100644
index 0000000..17de26f
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/物品(包括武器等)弹窗/掉落物弹窗_1.svg
@@ -0,0 +1,659 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/技能树页/物品(包括武器等)弹窗/掉落物弹窗_1.svg.meta b/Client/Assets/Resources/UI/技能树页/物品(包括武器等)弹窗/掉落物弹窗_1.svg.meta
new file mode 100644
index 0000000..a84424b
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/物品(包括武器等)弹窗/掉落物弹窗_1.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: e4fa8dadf39484547b03223e41e0ca2c
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 1
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: f9c009e873d0d1e4bb62149637fd83a7
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/技能树页/贝塞尔曲线连接用点.svg b/Client/Assets/Resources/UI/技能树页/贝塞尔曲线连接用点.svg
new file mode 100644
index 0000000..f4e2412
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/贝塞尔曲线连接用点.svg
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/技能树页/贝塞尔曲线连接用点.svg.meta b/Client/Assets/Resources/UI/技能树页/贝塞尔曲线连接用点.svg.meta
new file mode 100644
index 0000000..fbea124
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/贝塞尔曲线连接用点.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: 686e972b3342cea42a8e69cc49a56158
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 1
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: 52c5777f9d79bd143a33b64e41a05a79
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/技能树页/通常按钮-1.svg b/Client/Assets/Resources/UI/技能树页/通常按钮-1.svg
new file mode 100644
index 0000000..e828a29
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/通常按钮-1.svg
@@ -0,0 +1,16 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/技能树页/通常按钮-1.svg.meta b/Client/Assets/Resources/UI/技能树页/通常按钮-1.svg.meta
new file mode 100644
index 0000000..2f0c762
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/通常按钮-1.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: e0b3b845d6c3e3b4391f15afcebfebc5
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 1
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: 1a4b31332ffffec4cb0866a75caf09ca
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/技能树页/通常按钮-2.svg b/Client/Assets/Resources/UI/技能树页/通常按钮-2.svg
new file mode 100644
index 0000000..d3bd7f2
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/通常按钮-2.svg
@@ -0,0 +1,23 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/技能树页/通常按钮-2.svg.meta b/Client/Assets/Resources/UI/技能树页/通常按钮-2.svg.meta
new file mode 100644
index 0000000..20a7109
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/通常按钮-2.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: 67393078297ab124481bc6ce605519f1
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 1
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: fb2c6e6be48ca2f40a49a03d4fe8119f
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/技能树页/通常按钮包边.svg b/Client/Assets/Resources/UI/技能树页/通常按钮包边.svg
new file mode 100644
index 0000000..d014d3e
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/通常按钮包边.svg
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/技能树页/通常按钮包边.svg.meta b/Client/Assets/Resources/UI/技能树页/通常按钮包边.svg.meta
new file mode 100644
index 0000000..9d3d283
--- /dev/null
+++ b/Client/Assets/Resources/UI/技能树页/通常按钮包边.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: e1599cc112cf24b4a9984c4998ab1127
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 1
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: eaec4256d112b1b4ba270abb68515575
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/结算标题.meta b/Client/Assets/Resources/UI/结算标题.meta
new file mode 100644
index 0000000..f7410fe
--- /dev/null
+++ b/Client/Assets/Resources/UI/结算标题.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0911de67e88ad7c498cce6d382c193e1
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Client/Assets/Resources/UI/结算标题/区域肃清-结算标题.png b/Client/Assets/Resources/UI/结算标题/区域肃清-结算标题.png
new file mode 100644
index 0000000..757eb50
Binary files /dev/null and b/Client/Assets/Resources/UI/结算标题/区域肃清-结算标题.png differ
diff --git a/Client/Assets/Resources/UI/结算标题/区域肃清-结算标题.png.meta b/Client/Assets/Resources/UI/结算标题/区域肃清-结算标题.png.meta
new file mode 100644
index 0000000..9260b11
--- /dev/null
+++ b/Client/Assets/Resources/UI/结算标题/区域肃清-结算标题.png.meta
@@ -0,0 +1,117 @@
+fileFormatVersion: 2
+guid: c54383b15ec352e4582e241075987d2c
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Client/Assets/Resources/UI/结算标题/区域肃清-结算标题.svg b/Client/Assets/Resources/UI/结算标题/区域肃清-结算标题.svg
new file mode 100644
index 0000000..758aa64
--- /dev/null
+++ b/Client/Assets/Resources/UI/结算标题/区域肃清-结算标题.svg
@@ -0,0 +1,40 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/结算标题/区域肃清-结算标题.svg.meta b/Client/Assets/Resources/UI/结算标题/区域肃清-结算标题.svg.meta
new file mode 100644
index 0000000..0c11f78
--- /dev/null
+++ b/Client/Assets/Resources/UI/结算标题/区域肃清-结算标题.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: a3e8e642cfbdc314faddf60d6884b2cd
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 0
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: f7cc630218bf72b448f41b7169a3c67c
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/结算标题/干员失联-结算标题.png b/Client/Assets/Resources/UI/结算标题/干员失联-结算标题.png
new file mode 100644
index 0000000..713d175
Binary files /dev/null and b/Client/Assets/Resources/UI/结算标题/干员失联-结算标题.png differ
diff --git a/Client/Assets/Resources/UI/结算标题/干员失联-结算标题.png.meta b/Client/Assets/Resources/UI/结算标题/干员失联-结算标题.png.meta
new file mode 100644
index 0000000..ed47efa
--- /dev/null
+++ b/Client/Assets/Resources/UI/结算标题/干员失联-结算标题.png.meta
@@ -0,0 +1,117 @@
+fileFormatVersion: 2
+guid: 43b04a894cd935444b8d6b1c6e7e869d
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Client/Assets/Resources/UI/结算标题/干员失联-结算标题.svg b/Client/Assets/Resources/UI/结算标题/干员失联-结算标题.svg
new file mode 100644
index 0000000..77ae72f
--- /dev/null
+++ b/Client/Assets/Resources/UI/结算标题/干员失联-结算标题.svg
@@ -0,0 +1,40 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/结算标题/干员失联-结算标题.svg.meta b/Client/Assets/Resources/UI/结算标题/干员失联-结算标题.svg.meta
new file mode 100644
index 0000000..5e58f2b
--- /dev/null
+++ b/Client/Assets/Resources/UI/结算标题/干员失联-结算标题.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: 2475c2e5ab18b37479089ccf80ebb47f
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 0
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: b0f6f509ee0c002448a49e927635e6c8
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/结算标题/据点损毁-结算标题.png b/Client/Assets/Resources/UI/结算标题/据点损毁-结算标题.png
new file mode 100644
index 0000000..4278164
Binary files /dev/null and b/Client/Assets/Resources/UI/结算标题/据点损毁-结算标题.png differ
diff --git a/Client/Assets/Resources/UI/结算标题/据点损毁-结算标题.png.meta b/Client/Assets/Resources/UI/结算标题/据点损毁-结算标题.png.meta
new file mode 100644
index 0000000..c163362
--- /dev/null
+++ b/Client/Assets/Resources/UI/结算标题/据点损毁-结算标题.png.meta
@@ -0,0 +1,117 @@
+fileFormatVersion: 2
+guid: 12403244ad356ad42b07a01a172d2d15
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Client/Assets/Resources/UI/结算标题/据点损毁-结算标题.svg b/Client/Assets/Resources/UI/结算标题/据点损毁-结算标题.svg
new file mode 100644
index 0000000..3252ea7
--- /dev/null
+++ b/Client/Assets/Resources/UI/结算标题/据点损毁-结算标题.svg
@@ -0,0 +1,40 @@
+
+
\ No newline at end of file
diff --git a/Client/Assets/Resources/UI/结算标题/据点损毁-结算标题.svg.meta b/Client/Assets/Resources/UI/结算标题/据点损毁-结算标题.svg.meta
new file mode 100644
index 0000000..6259284
--- /dev/null
+++ b/Client/Assets/Resources/UI/结算标题/据点损毁-结算标题.svg.meta
@@ -0,0 +1,55 @@
+fileFormatVersion: 2
+guid: 9116e3fc894b7194fbcc2ea0c5fec4a4
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: a57477913897c46af95d590f580878bd, type: 3}
+ svgType: 0
+ texturedSpriteMeshType: 0
+ svgPixelsPerUnit: 100
+ gradientResolution: 64
+ alignment: 0
+ customPivot: {x: 0, y: 0}
+ generatePhysicsShape: 0
+ viewportOptions: 0
+ preserveViewport: 0
+ advancedMode: 0
+ predefinedResolutionIndex: 1
+ targetResolution: 1080
+ resolutionMultiplier: 1
+ stepDistance: 10
+ samplingStepDistance: 100
+ maxCordDeviationEnabled: 0
+ maxCordDeviation: 1
+ maxTangentAngleEnabled: 0
+ maxTangentAngle: 5
+ keepTextureAspectRatio: 1
+ textureSize: 256
+ textureWidth: 256
+ textureHeight: 256
+ wrapMode: 0
+ filterMode: 1
+ sampleCount: 4
+ preserveSVGImageAspect: 0
+ useSVGPixelsPerUnit: 0
+ spriteData:
+ TessellationDetail: 0
+ SpriteRect:
+ name:
+ originalName:
+ pivot: {x: 0, y: 0}
+ alignment: 0
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 0
+ height: 0
+ spriteID: 3976224ce6d793c4fa0ef3198de83618
+ PhysicsOutlines: []
diff --git a/Client/Assets/Resources/UI/结算标题/结算示意图.png b/Client/Assets/Resources/UI/结算标题/结算示意图.png
new file mode 100644
index 0000000..cdf6155
Binary files /dev/null and b/Client/Assets/Resources/UI/结算标题/结算示意图.png differ
diff --git a/Client/Assets/Resources/UI/结算标题/结算示意图.png.meta b/Client/Assets/Resources/UI/结算标题/结算示意图.png.meta
new file mode 100644
index 0000000..c9e30d9
--- /dev/null
+++ b/Client/Assets/Resources/UI/结算标题/结算示意图.png.meta
@@ -0,0 +1,117 @@
+fileFormatVersion: 2
+guid: 89515ac5903686b49868cad22434e5b8
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Client/Assets/Scenes/Test.unity b/Client/Assets/Scenes/Test.unity
index 54eb16e..4ad6ce1 100644
--- a/Client/Assets/Scenes/Test.unity
+++ b/Client/Assets/Scenes/Test.unity
@@ -242,6 +242,81 @@ Transform:
m_Children: []
m_Father: {fileID: 613797070}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &10505207
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 10505208}
+ - component: {fileID: 10505210}
+ - component: {fileID: 10505209}
+ m_Layer: 5
+ m_Name: lineTail
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &10505208
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 10505207}
+ 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: 951466057}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -3, y: -25.000023}
+ m_SizeDelta: {x: 6, y: 6}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &10505209
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 10505207}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 3286163911610860551, guid: 686e972b3342cea42a8e69cc49a56158, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 1
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &10505210
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 10505207}
+ m_CullTransparentMesh: 1
--- !u!1 &178349935
GameObject:
m_ObjectHideFlags: 0
@@ -287,6 +362,343 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &362665237
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 362665238}
+ - component: {fileID: 362665240}
+ - component: {fileID: 362665239}
+ m_Layer: 5
+ m_Name: lineTail
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &362665238
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 362665237}
+ 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: 1482379786}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -3, y: 34.999977}
+ m_SizeDelta: {x: 6, y: 6}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &362665239
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 362665237}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 3286163911610860551, guid: 686e972b3342cea42a8e69cc49a56158, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 1
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &362665240
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 362665237}
+ m_CullTransparentMesh: 1
+--- !u!1 &393143389
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 393143390}
+ - component: {fileID: 393143392}
+ - component: {fileID: 393143391}
+ m_Layer: 5
+ m_Name: state
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &393143390
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 393143389}
+ 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: 501588192}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 25, y: 25}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &393143391
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 393143389}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 3286163911610860551, guid: feebecedea6910c499d18b7b07894ec8, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &393143392
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 393143389}
+ m_CullTransparentMesh: 1
+--- !u!1 &501588191
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 501588192}
+ m_Layer: 5
+ m_Name: icon
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &501588192
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 501588191}
+ 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: 627799580}
+ - {fileID: 393143390}
+ m_Father: {fileID: 1988348887}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 0}
+ m_AnchoredPosition: {x: 0, y: 20}
+ m_SizeDelta: {x: 0, y: 30}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1 &525197972
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 525197973}
+ - component: {fileID: 525197975}
+ - component: {fileID: 525197974}
+ m_Layer: 5
+ m_Name: output
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &525197973
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 525197972}
+ 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: 1988348887}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 1, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 6, y: 0}
+ m_SizeDelta: {x: 6, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &525197974
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 525197972}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: 67ec6eeac0c077f49894ee10de535813, type: 3}
+ m_Type: 1
+ m_PreserveAspect: 1
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &525197975
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 525197972}
+ m_CullTransparentMesh: 1
+--- !u!1 &591512601
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 591512602}
+ - component: {fileID: 591512604}
+ - component: {fileID: 591512603}
+ m_Layer: 5
+ m_Name: line
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &591512602
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 591512601}
+ 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: 1407769512}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: -100, y: -5}
+ m_SizeDelta: {x: 200, y: 10}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &591512603
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 591512601}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.5882353}
+ 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: 3286163911610860551, guid: 55667ea3c1a5c7742996ff14e7e116e6, type: 3}
+ m_Type: 2
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &591512604
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 591512601}
+ m_CullTransparentMesh: 1
--- !u!1 &613797067
GameObject:
m_ObjectHideFlags: 0
@@ -347,6 +759,801 @@ Transform:
- {fileID: 9462743}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &627799579
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 627799580}
+ - component: {fileID: 627799582}
+ - component: {fileID: 627799581}
+ m_Layer: 5
+ m_Name: hLine
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &627799580
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 627799579}
+ 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: 501588192}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0}
+ m_AnchorMax: {x: 0.5, y: 0}
+ m_AnchoredPosition: {x: 0, y: 15}
+ m_SizeDelta: {x: 100, y: 30}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &627799581
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 627799579}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 3286163911610860551, guid: e58977ed006ed3647979578d502fc9ea, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 1
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &627799582
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 627799579}
+ m_CullTransparentMesh: 1
+--- !u!1 &675318800
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 675318801}
+ - component: {fileID: 675318803}
+ - component: {fileID: 675318802}
+ m_Layer: 5
+ m_Name: lineTail
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &675318801
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 675318800}
+ 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: 690547648}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -3, y: 10.999977}
+ m_SizeDelta: {x: 6, y: 6}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &675318802
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 675318800}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 3286163911610860551, guid: 686e972b3342cea42a8e69cc49a56158, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 1
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &675318803
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 675318800}
+ m_CullTransparentMesh: 1
+--- !u!1 &690547647
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 690547648}
+ - component: {fileID: 690547652}
+ - component: {fileID: 690547651}
+ - component: {fileID: 690547650}
+ - component: {fileID: 690547649}
+ m_Layer: 5
+ m_Name: linkLine(Clone)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &690547648
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 690547647}
+ 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: 1550685182}
+ - {fileID: 675318801}
+ m_Father: {fileID: 1642628297}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0.5}
+ m_AnchorMax: {x: 0, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 100, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &690547649
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 690547647}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 8623ad98baf0495b8c8634232e3cae2e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ lineRenderer: {fileID: 690547650}
+ P0: {x: -416, y: -0.000022888184}
+ P1: {x: -316, y: -0.000022888184}
+ P2: {x: -103, y: 10.999977}
+ P3: {x: -3, y: 10.999977}
+ segmentCount: 30
+--- !u!114 &690547650
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 690547647}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a7c56ce7d0f247639e5fff6ebba2edd6, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ points:
+ - {x: -416, y: -0.000022888184}
+ - {x: -405.63165, y: 0.035828963}
+ - {x: -394.5603, y: 0.14012529}
+ - {x: -382.83597, y: 0.30797714}
+ - {x: -370.50906, y: 0.5344958}
+ - {x: -357.6296, y: 0.814792}
+ - {x: -344.248, y: 1.1439772}
+ - {x: -330.41434, y: 1.5171622}
+ - {x: -316.17896, y: 1.929459}
+ - {x: -301.592, y: 2.3759773}
+ - {x: -286.70367, y: 2.851829}
+ - {x: -271.5643, y: 3.3521252}
+ - {x: -256.224, y: 3.8719773}
+ - {x: -240.73303, y: 4.406496}
+ - {x: -225.14162, y: 4.950792}
+ - {x: -209.5, y: 5.499977}
+ - {x: -193.85837, y: 6.0491624}
+ - {x: -178.26697, y: 6.593459}
+ - {x: -162.77599, y: 7.1279774}
+ - {x: -147.43571, y: 7.647829}
+ - {x: -132.29628, y: 8.148126}
+ - {x: -117.408, y: 8.623978}
+ - {x: -102.82104, y: 9.070496}
+ - {x: -88.58564, y: 9.482792}
+ - {x: -74.75201, y: 9.855978}
+ - {x: -61.370373, y: 10.185162}
+ - {x: -48.49096, y: 10.465459}
+ - {x: -36.16401, y: 10.691977}
+ - {x: -24.439703, y: 10.859829}
+ - {x: -13.368304, y: 10.964125}
+ - {x: -3, y: 10.999977}
+ lineWidth: 1
+ lineGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 1, b: 1, a: 1}
+ key1: {r: 1, g: 1, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_ColorSpace: -1
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ startCap: 0
+ endCap: 0
+--- !u!222 &690547651
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 690547647}
+ m_CullTransparentMesh: 1
+--- !u!114 &690547652
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 690547647}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 04b3f5cbad874b31893c0d7e1de082b9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ line: {fileID: 690547650}
+ curveGenerator: {fileID: 690547649}
+ lineHead: {fileID: 1550685181}
+ lineTail: {fileID: 675318800}
+ rectTransform: {fileID: 0}
+--- !u!1 &816358156
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 816358157}
+ - component: {fileID: 816358159}
+ - component: {fileID: 816358158}
+ m_Layer: 5
+ m_Name: lineHead
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &816358157
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 816358156}
+ 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: 1028553733}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -416, y: -50.000023}
+ m_SizeDelta: {x: 6, y: 6}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &816358158
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 816358156}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 3286163911610860551, guid: 686e972b3342cea42a8e69cc49a56158, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 1
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &816358159
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 816358156}
+ m_CullTransparentMesh: 1
+--- !u!1 &848586104
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 848586105}
+ - component: {fileID: 848586107}
+ - component: {fileID: 848586106}
+ m_Layer: 5
+ m_Name: lineHead
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &848586105
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 848586104}
+ 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: 1482379786}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -416, y: 99.99998}
+ m_SizeDelta: {x: 6, y: 6}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &848586106
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 848586104}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 3286163911610860551, guid: 686e972b3342cea42a8e69cc49a56158, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 1
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &848586107
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 848586104}
+ m_CullTransparentMesh: 1
+--- !u!1 &951466056
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 951466057}
+ - component: {fileID: 951466061}
+ - component: {fileID: 951466060}
+ - component: {fileID: 951466059}
+ - component: {fileID: 951466058}
+ m_Layer: 5
+ m_Name: linkLine(Clone)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &951466057
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 951466056}
+ 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: 1377724175}
+ - {fileID: 10505208}
+ m_Father: {fileID: 1642628297}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0.5}
+ m_AnchorMax: {x: 0, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 100, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &951466058
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 951466056}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 8623ad98baf0495b8c8634232e3cae2e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ lineRenderer: {fileID: 951466059}
+ P0: {x: -416, y: -150.00003}
+ P1: {x: -316, y: -150.00003}
+ P2: {x: -103, y: -25.000023}
+ P3: {x: -3, y: -25.000023}
+ segmentCount: 30
+--- !u!114 &951466059
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 951466056}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a7c56ce7d0f247639e5fff6ebba2edd6, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ points:
+ - {x: -416, y: -150.00003}
+ - {x: -405.63165, y: -149.5926}
+ - {x: -394.5603, y: -148.40744}
+ - {x: -382.83597, y: -146.50002}
+ - {x: -370.50906, y: -143.92598}
+ - {x: -357.6296, y: -140.74077}
+ - {x: -344.248, y: -137.00005}
+ - {x: -330.41434, y: -132.75928}
+ - {x: -316.17896, y: -128.07411}
+ - {x: -301.592, y: -123.00003}
+ - {x: -286.70367, y: -117.5926}
+ - {x: -271.5643, y: -111.90743}
+ - {x: -256.224, y: -106.00003}
+ - {x: -240.73303, y: -99.92596}
+ - {x: -225.14162, y: -93.74075}
+ - {x: -209.5, y: -87.50002}
+ - {x: -193.85837, y: -81.259285}
+ - {x: -178.26697, y: -75.074104}
+ - {x: -162.77599, y: -69.00003}
+ - {x: -147.43571, y: -63.092613}
+ - {x: -132.29628, y: -57.40743}
+ - {x: -117.408, y: -52.000027}
+ - {x: -102.82104, y: -46.92595}
+ - {x: -88.58564, y: -42.240765}
+ - {x: -74.75201, y: -38.000023}
+ - {x: -61.370373, y: -34.259285}
+ - {x: -48.49096, y: -31.074097}
+ - {x: -36.16401, y: -28.500023}
+ - {x: -24.439703, y: -26.592615}
+ - {x: -13.368304, y: -25.407429}
+ - {x: -3, y: -25.000023}
+ lineWidth: 1
+ lineGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 1, b: 1, a: 1}
+ key1: {r: 1, g: 1, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_ColorSpace: -1
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ startCap: 0
+ endCap: 0
+--- !u!222 &951466060
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 951466056}
+ m_CullTransparentMesh: 1
+--- !u!114 &951466061
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 951466056}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 04b3f5cbad874b31893c0d7e1de082b9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ line: {fileID: 951466059}
+ curveGenerator: {fileID: 951466058}
+ lineHead: {fileID: 1377724174}
+ lineTail: {fileID: 10505207}
+ rectTransform: {fileID: 0}
+--- !u!1 &1028553732
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1028553733}
+ - component: {fileID: 1028553737}
+ - component: {fileID: 1028553736}
+ - component: {fileID: 1028553735}
+ - component: {fileID: 1028553734}
+ m_Layer: 5
+ m_Name: linkLine(Clone)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1028553733
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1028553732}
+ 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: 816358157}
+ - {fileID: 1472492455}
+ m_Father: {fileID: 1642628297}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0.5}
+ m_AnchorMax: {x: 0, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 100, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1028553734
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1028553732}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 8623ad98baf0495b8c8634232e3cae2e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ lineRenderer: {fileID: 1028553735}
+ P0: {x: -416, y: -50.000023}
+ P1: {x: -316, y: -50.000023}
+ P2: {x: -103, y: -1.0000229}
+ P3: {x: -3, y: -1.0000229}
+ segmentCount: 30
+--- !u!114 &1028553735
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1028553732}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a7c56ce7d0f247639e5fff6ebba2edd6, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ points:
+ - {x: -416, y: -50.000023}
+ - {x: -405.63165, y: -49.840317}
+ - {x: -394.5603, y: -49.37573}
+ - {x: -382.83597, y: -48.628017}
+ - {x: -370.50906, y: -47.618988}
+ - {x: -357.6296, y: -46.37039}
+ - {x: -344.248, y: -44.904026}
+ - {x: -330.41434, y: -43.24165}
+ - {x: -316.17896, y: -41.405064}
+ - {x: -301.592, y: -39.41602}
+ - {x: -286.70367, y: -37.296314}
+ - {x: -271.5643, y: -35.067726}
+ - {x: -256.224, y: -32.752026}
+ - {x: -240.73303, y: -30.370983}
+ - {x: -225.14162, y: -27.946388}
+ - {x: -209.5, y: -25.500023}
+ - {x: -193.85837, y: -23.05365}
+ - {x: -178.26697, y: -20.62906}
+ - {x: -162.77599, y: -18.248022}
+ - {x: -147.43571, y: -15.932319}
+ - {x: -132.29628, y: -13.703724}
+ - {x: -117.408, y: -11.584023}
+ - {x: -102.82104, y: -9.594985}
+ - {x: -88.58564, y: -7.758394}
+ - {x: -74.75201, y: -6.0960226}
+ - {x: -61.370373, y: -4.6296525}
+ - {x: -48.49096, y: -3.3810596}
+ - {x: -36.16401, y: -2.3720236}
+ - {x: -24.439703, y: -1.6243191}
+ - {x: -13.368304, y: -1.1597269}
+ - {x: -3, y: -1.0000229}
+ lineWidth: 1
+ lineGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 1, b: 1, a: 1}
+ key1: {r: 1, g: 1, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_ColorSpace: -1
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ startCap: 0
+ endCap: 0
+--- !u!222 &1028553736
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1028553732}
+ m_CullTransparentMesh: 1
+--- !u!114 &1028553737
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1028553732}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 04b3f5cbad874b31893c0d7e1de082b9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ line: {fileID: 1028553735}
+ curveGenerator: {fileID: 1028553734}
+ lineHead: {fileID: 816358156}
+ lineTail: {fileID: 1472492454}
+ rectTransform: {fileID: 0}
--- !u!1 &1057087086
GameObject:
m_ObjectHideFlags: 0
@@ -535,6 +1742,103 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1183437849
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1183437850}
+ - component: {fileID: 1183437853}
+ - component: {fileID: 1183437852}
+ - component: {fileID: 1183437851}
+ m_Layer: 5
+ m_Name: shade
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1183437850
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1183437849}
+ 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: 1407769512}
+ 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.0000010728836, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1183437851
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1183437849}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 0}
+ m_Type: 0
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1183437852
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1183437849}
+ m_CullTransparentMesh: 1
+--- !u!114 &1183437853
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1183437849}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 8df3d16a358d74644b86e92ca5177fa1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ angle: 90
+ color1:
+ serializedVersion: 2
+ rgba: 3364257899
+ color2:
+ serializedVersion: 2
+ rgba: 0
+ range: 0
+ isFlip: 0
--- !u!1 &1223523586
GameObject:
m_ObjectHideFlags: 0
@@ -750,6 +2054,231 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1271151655
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1271151656}
+ - component: {fileID: 1271151658}
+ - component: {fileID: 1271151657}
+ m_Layer: 5
+ m_Name: lineHead
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1271151656
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1271151655}
+ 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: 2064035034}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -416, y: 49.999977}
+ m_SizeDelta: {x: 6, y: 6}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1271151657
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1271151655}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 3286163911610860551, guid: 686e972b3342cea42a8e69cc49a56158, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 1
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1271151658
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1271151655}
+ m_CullTransparentMesh: 1
+--- !u!1 &1371218802
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1371218803}
+ - component: {fileID: 1371218805}
+ - component: {fileID: 1371218804}
+ m_Layer: 5
+ m_Name: texture
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1371218803
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1371218802}
+ 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: 1407769512}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1371218804
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1371218802}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: d8f49071a7fc7d04899e66582e89954a, type: 3}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1371218805
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1371218802}
+ m_CullTransparentMesh: 1
+--- !u!1 &1377724174
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1377724175}
+ - component: {fileID: 1377724177}
+ - component: {fileID: 1377724176}
+ m_Layer: 5
+ m_Name: lineHead
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1377724175
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1377724174}
+ 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: 951466057}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -416, y: -150.00003}
+ m_SizeDelta: {x: 6, y: 6}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1377724176
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1377724174}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 3286163911610860551, guid: 686e972b3342cea42a8e69cc49a56158, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 1
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1377724177
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1377724174}
+ m_CullTransparentMesh: 1
--- !u!1 &1388451205
GameObject:
m_ObjectHideFlags: 0
@@ -794,6 +2323,413 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d76ad8f9d40092848abc97f05b1e2131, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Test.UdpClientTest
+--- !u!1 &1407769511
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1407769512}
+ - component: {fileID: 1407769515}
+ - component: {fileID: 1407769514}
+ - component: {fileID: 1407769513}
+ m_Layer: 5
+ m_Name: bk
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1407769512
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1407769511}
+ 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: 591512602}
+ - {fileID: 1183437850}
+ - {fileID: 1371218803}
+ m_Father: {fileID: 1988348887}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1407769513
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1407769511}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_ShowMaskGraphic: 1
+--- !u!114 &1407769514
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1407769511}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.003921569}
+ 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: 1
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1407769515
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1407769511}
+ m_CullTransparentMesh: 1
+--- !u!1 &1472492454
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1472492455}
+ - component: {fileID: 1472492457}
+ - component: {fileID: 1472492456}
+ m_Layer: 5
+ m_Name: lineTail
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1472492455
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1472492454}
+ 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: 1028553733}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -3, y: -1.0000229}
+ m_SizeDelta: {x: 6, y: 6}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1472492456
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1472492454}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 3286163911610860551, guid: 686e972b3342cea42a8e69cc49a56158, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 1
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1472492457
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1472492454}
+ m_CullTransparentMesh: 1
+--- !u!1 &1482379785
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1482379786}
+ - component: {fileID: 1482379790}
+ - component: {fileID: 1482379789}
+ - component: {fileID: 1482379788}
+ - component: {fileID: 1482379787}
+ m_Layer: 5
+ m_Name: linkLine(Clone)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1482379786
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1482379785}
+ 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: 848586105}
+ - {fileID: 362665238}
+ m_Father: {fileID: 1642628297}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0.5}
+ m_AnchorMax: {x: 0, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 100, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1482379787
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1482379785}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 8623ad98baf0495b8c8634232e3cae2e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ lineRenderer: {fileID: 1482379788}
+ P0: {x: -416, y: 99.99998}
+ P1: {x: -316, y: 99.99998}
+ P2: {x: -103, y: 34.999977}
+ P3: {x: -3, y: 34.999977}
+ segmentCount: 30
+--- !u!114 &1482379788
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1482379785}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a7c56ce7d0f247639e5fff6ebba2edd6, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ points:
+ - {x: -416, y: 99.99998}
+ - {x: -405.63165, y: 99.78812}
+ - {x: -394.5603, y: 99.17183}
+ - {x: -382.83597, y: 98.17997}
+ - {x: -370.50906, y: 96.84146}
+ - {x: -357.6296, y: 95.18516}
+ - {x: -344.248, y: 93.23998}
+ - {x: -330.41434, y: 91.03478}
+ - {x: -316.17896, y: 88.5985}
+ - {x: -301.592, y: 85.95998}
+ - {x: -286.70367, y: 83.14811}
+ - {x: -271.5643, y: 80.19183}
+ - {x: -256.224, y: 77.11998}
+ - {x: -240.73303, y: 73.96146}
+ - {x: -225.14162, y: 70.745155}
+ - {x: -209.5, y: 67.49998}
+ - {x: -193.85837, y: 64.25479}
+ - {x: -178.26697, y: 61.038494}
+ - {x: -162.77599, y: 57.879974}
+ - {x: -147.43571, y: 54.80812}
+ - {x: -132.29628, y: 51.851826}
+ - {x: -117.408, y: 49.039978}
+ - {x: -102.82104, y: 46.40146}
+ - {x: -88.58564, y: 43.965164}
+ - {x: -74.75201, y: 41.75998}
+ - {x: -61.370373, y: 39.81479}
+ - {x: -48.49096, y: 38.158497}
+ - {x: -36.16401, y: 36.819977}
+ - {x: -24.439703, y: 35.828125}
+ - {x: -13.368304, y: 35.211826}
+ - {x: -3, y: 34.999977}
+ lineWidth: 1
+ lineGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 1, b: 1, a: 1}
+ key1: {r: 1, g: 1, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_ColorSpace: -1
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ startCap: 0
+ endCap: 0
+--- !u!222 &1482379789
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1482379785}
+ m_CullTransparentMesh: 1
+--- !u!114 &1482379790
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1482379785}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 04b3f5cbad874b31893c0d7e1de082b9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ line: {fileID: 1482379788}
+ curveGenerator: {fileID: 1482379787}
+ lineHead: {fileID: 848586104}
+ lineTail: {fileID: 362665237}
+ rectTransform: {fileID: 0}
+--- !u!1 &1550685181
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1550685182}
+ - component: {fileID: 1550685184}
+ - component: {fileID: 1550685183}
+ m_Layer: 5
+ m_Name: lineHead
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1550685182
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1550685181}
+ 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: 690547648}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -416, y: -0.000022888184}
+ m_SizeDelta: {x: 6, y: 6}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1550685183
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1550685181}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 3286163911610860551, guid: 686e972b3342cea42a8e69cc49a56158, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 1
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1550685184
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1550685181}
+ m_CullTransparentMesh: 1
--- !u!1 &1575548185
GameObject:
m_ObjectHideFlags: 0
@@ -873,6 +2809,266 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1580819537
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1580819538}
+ - component: {fileID: 1580819542}
+ - component: {fileID: 1580819541}
+ - component: {fileID: 1580819540}
+ - component: {fileID: 1580819539}
+ m_Layer: 5
+ m_Name: linkLine(Clone)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1580819538
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1580819537}
+ 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: 2143181504}
+ - {fileID: 2109950212}
+ m_Father: {fileID: 1642628297}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0.5}
+ m_AnchorMax: {x: 0, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 100, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1580819539
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1580819537}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 8623ad98baf0495b8c8634232e3cae2e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ lineRenderer: {fileID: 1580819540}
+ P0: {x: -416, y: -100.00002}
+ P1: {x: -316, y: -100.00002}
+ P2: {x: -103, y: -13.000023}
+ P3: {x: -3, y: -13.000023}
+ segmentCount: 30
+--- !u!114 &1580819540
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1580819537}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a7c56ce7d0f247639e5fff6ebba2edd6, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ points:
+ - {x: -416, y: -100.00002}
+ - {x: -405.63165, y: -99.716446}
+ - {x: -394.5603, y: -98.89159}
+ - {x: -382.83597, y: -97.56401}
+ - {x: -370.50906, y: -95.77248}
+ - {x: -357.6296, y: -93.55557}
+ - {x: -344.248, y: -90.952034}
+ - {x: -330.41434, y: -88.00046}
+ - {x: -316.17896, y: -84.739586}
+ - {x: -301.592, y: -81.20802}
+ - {x: -286.70367, y: -77.44446}
+ - {x: -271.5643, y: -73.48758}
+ - {x: -256.224, y: -69.37602}
+ - {x: -240.73303, y: -65.14847}
+ - {x: -225.14162, y: -60.84357}
+ - {x: -209.5, y: -56.500023}
+ - {x: -193.85837, y: -52.156467}
+ - {x: -178.26697, y: -47.851585}
+ - {x: -162.77599, y: -43.62402}
+ - {x: -147.43571, y: -39.512463}
+ - {x: -132.29628, y: -35.555576}
+ - {x: -117.408, y: -31.792023}
+ - {x: -102.82104, y: -28.260466}
+ - {x: -88.58564, y: -24.999578}
+ - {x: -74.75201, y: -22.048021}
+ - {x: -61.370373, y: -19.444468}
+ - {x: -48.49096, y: -17.22758}
+ - {x: -36.16401, y: -15.436024}
+ - {x: -24.439703, y: -14.108467}
+ - {x: -13.368304, y: -13.283579}
+ - {x: -3, y: -13.000023}
+ lineWidth: 1
+ lineGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 1, b: 1, a: 1}
+ key1: {r: 1, g: 1, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_ColorSpace: -1
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ startCap: 0
+ endCap: 0
+--- !u!222 &1580819541
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1580819537}
+ m_CullTransparentMesh: 1
+--- !u!114 &1580819542
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1580819537}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 04b3f5cbad874b31893c0d7e1de082b9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ line: {fileID: 1580819540}
+ curveGenerator: {fileID: 1580819539}
+ lineHead: {fileID: 2143181503}
+ lineTail: {fileID: 2109950211}
+ rectTransform: {fileID: 0}
+--- !u!1 &1642628296
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1642628297}
+ - component: {fileID: 1642628299}
+ - component: {fileID: 1642628298}
+ - component: {fileID: 1642628300}
+ m_Layer: 5
+ m_Name: enter
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1642628297
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1642628296}
+ 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: 1482379786}
+ - {fileID: 2064035034}
+ - {fileID: 690547648}
+ - {fileID: 1028553733}
+ - {fileID: 1580819538}
+ - {fileID: 951466057}
+ m_Father: {fileID: 1988348887}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: -5.9999847, y: 0}
+ m_SizeDelta: {x: 6, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1642628298
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1642628296}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: 7215e09b41401864cb2a7584f0c4c4e5, type: 3}
+ m_Type: 1
+ m_PreserveAspect: 1
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1642628299
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1642628296}
+ m_CullTransparentMesh: 1
+--- !u!114 &1642628300
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1642628296}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4d15100cc2164e78bfaaef16efd7825a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ skillNodeLinkLineUIPrefab: {fileID: 1825129067317753898, guid: c56fd48e6165606439f1b36fec4e4c3f, type: 3}
--- !u!1 &1688506932
GameObject:
m_ObjectHideFlags: 0
@@ -921,10 +3117,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
- m_UiScaleMode: 0
+ m_UiScaleMode: 1
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
- m_ReferenceResolution: {x: 800, y: 600}
+ m_ReferenceResolution: {x: 1920, y: 1080}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
@@ -941,7 +3137,7 @@ Canvas:
m_GameObject: {fileID: 1688506932}
m_Enabled: 1
serializedVersion: 3
- m_RenderMode: 1
+ m_RenderMode: 0
m_Camera: {fileID: 1057087089}
m_PlaneDistance: 100
m_PixelPerfect: 0
@@ -967,7 +3163,7 @@ RectTransform:
m_LocalScale: {x: 0, y: 0, z: 0}
m_ConstrainProportionsScale: 0
m_Children:
- - {fileID: 1813565768}
+ - {fileID: 2125190856}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@@ -975,7 +3171,7 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
---- !u!1 &1802079591
+--- !u!1 &1741163714
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -983,193 +3179,131 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- - component: {fileID: 1802079592}
- m_Layer: 0
- m_Name: SkillTree
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &1802079592
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1802079591}
- serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 33.93411, y: 34.43715, 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}
---- !u!1 &1813565767
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1813565768}
- - component: {fileID: 1813565770}
- - component: {fileID: 1813565769}
- - component: {fileID: 1813565771}
+ - component: {fileID: 1741163715}
+ - component: {fileID: 1741163717}
+ - component: {fileID: 1741163716}
m_Layer: 5
- m_Name: GameObject
+ m_Name: lineTail
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
---- !u!224 &1813565768
+--- !u!224 &1741163715
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1813565767}
+ m_GameObject: {fileID: 1741163714}
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: 1688506936}
+ m_Father: {fileID: 2064035034}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 100, y: 100}
+ m_AnchoredPosition: {x: -3, y: 22.999977}
+ m_SizeDelta: {x: 6, y: 6}
m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &1813565769
+--- !u!114 &1741163716
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1813565767}
+ m_GameObject: {fileID: 1741163714}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: a7c56ce7d0f247639e5fff6ebba2edd6, type: 3}
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- points:
- - {x: -133.03534, y: 73.06387}
- - {x: -88.07134, y: 68.2778}
- - {x: -52.80454, y: 62.199043}
- - {x: -25.609941, y: 55.11205}
- - {x: -5.077899, y: 47.27628}
- - {x: 10.005646, y: 38.927437}
- - {x: 20.67804, y: 30.27879}
- - {x: 27.817818, y: 21.522396}
- - {x: 32.16182, y: 12.830205}
- - {x: 34.321438, y: 4.355151}
- - {x: 34.797802, y: -3.7678308}
- - {x: 33.996346, y: -11.420871}
- - {x: 32.2403, y: -18.502266}
- - {x: 29.783356, y: -24.925674}
- - {x: 26.82156, y: -30.61938}
- - {x: 23.504032, y: -35.52555}
- - {x: 19.94323, y: -39.599724}
- - {x: 16.223877, y: -42.810104}
- - {x: 12.411441, y: -45.137222}
- - {x: 8.559343, y: -46.57335}
- - {x: 4.7155967, y: -47.122353}
- - {x: 0.9283457, y: -46.799118}
- - {x: -2.7493114, y: -45.6296}
- - {x: -6.2555466, y: -43.65044}
- - {x: -9.516719, y: -40.909004}
- - {x: -12.445361, y: -37.463264}
- - {x: -14.938893, y: -33.38188}
- - {x: -16.879314, y: -28.744246}
- - {x: -18.133726, y: -23.640694}
- - {x: -18.555773, y: -18.172682}
- - {x: -17.987919, y: -12.453108}
- - {x: -16.26463, y: -6.606659}
- - {x: -13.216493, y: -0.7702131}
- - {x: -8.675069, y: 4.9066596}
- - {x: -2.4787803, y: 10.261147}
- - {x: 5.5203714, y: 15.116601}
- - {x: 15.449296, y: 19.281828}
- - {x: 27.405247, y: 22.550373}
- - {x: 41.446537, y: 24.699694}
- - {x: 57.58231, y: 25.49029}
- - {x: 75.76138, y: 24.66478}
- - {x: 95.86027, y: 21.946861}
- - {x: 117.670395, y: 17.040276}
- - {x: 140.8842, y: 9.627667}
- - {x: 165.08054, y: -0.6306292}
- - {x: 189.70929, y: -14.097839}
- lineWidth: 5
- lineGradient:
- serializedVersion: 2
- key0: {r: 0.023668766, g: 1, b: 0, a: 1}
- key1: {r: 1, g: 1, b: 1, a: 1}
- key2: {r: 0, g: 0, b: 0, a: 0}
- key3: {r: 0, g: 0, b: 0, a: 0}
- key4: {r: 0, g: 0, b: 0, a: 0}
- key5: {r: 0, g: 0, b: 0, a: 0}
- key6: {r: 0, g: 0, b: 0, a: 0}
- key7: {r: 0, g: 0, b: 0, a: 0}
- ctime0: 0
- ctime1: 65535
- ctime2: 0
- ctime3: 0
- ctime4: 0
- ctime5: 0
- ctime6: 0
- ctime7: 0
- atime0: 0
- atime1: 65535
- atime2: 0
- atime3: 0
- atime4: 0
- atime5: 0
- atime6: 0
- atime7: 0
- m_Mode: 0
- m_ColorSpace: -1
- m_NumColorKeys: 2
- m_NumAlphaKeys: 2
- startCap: 2
- endCap: 2
---- !u!222 &1813565770
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 3286163911610860551, guid: 686e972b3342cea42a8e69cc49a56158, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 1
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1741163717
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1813565767}
+ m_GameObject: {fileID: 1741163714}
m_CullTransparentMesh: 1
---- !u!114 &1813565771
+--- !u!1 &1988348886
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1988348887}
+ - component: {fileID: 1988348888}
+ m_Layer: 5
+ m_Name: SkillTreeNode
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1988348887
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1988348886}
+ 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: 1407769512}
+ - {fileID: 1642628297}
+ - {fileID: 525197973}
+ - {fileID: 2145496378}
+ - {fileID: 501588192}
+ m_Father: {fileID: 2125190856}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 23.02, y: 71.23}
+ m_SizeDelta: {x: 150, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1988348888
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1813565767}
+ m_GameObject: {fileID: 1988348886}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 8623ad98baf0495b8c8634232e3cae2e, type: 3}
+ m_Script: {fileID: 11500000, guid: a0bd6744a131480d872dc07f318b561d, type: 3}
m_Name:
m_EditorClassIdentifier:
- lineRenderer: {fileID: 1813565769}
- controlPoints:
- - {x: -133.03534, y: 73.06387}
- - {x: 245.0557, y: 42.776196}
- - {x: -155.57315, y: -95.5988}
- - {x: 171.73596, y: -95.63857}
- - {x: -196.53432, y: -28.766539}
- - {x: 5.0138226, y: 99.89391}
- - {x: 189.70929, y: -14.097839}
- segmentCount: 45
+ skillNodeEnterLineUI: {fileID: 1642628300}
+ testModeActive: 1
+ numberOfLinesToTest: 6
+ initialStartPointOffset: {x: -500, y: 100}
+ perLineOffset: {x: 0, y: -50}
--- !u!1 &2053271181
GameObject:
m_ObjectHideFlags: 0
@@ -1214,6 +3348,493 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2064035033
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2064035034}
+ - component: {fileID: 2064035038}
+ - component: {fileID: 2064035037}
+ - component: {fileID: 2064035036}
+ - component: {fileID: 2064035035}
+ m_Layer: 5
+ m_Name: linkLine(Clone)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2064035034
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2064035033}
+ 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: 1271151656}
+ - {fileID: 1741163715}
+ m_Father: {fileID: 1642628297}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0.5}
+ m_AnchorMax: {x: 0, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 100, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &2064035035
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2064035033}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 8623ad98baf0495b8c8634232e3cae2e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ lineRenderer: {fileID: 2064035036}
+ P0: {x: -416, y: 49.999977}
+ P1: {x: -316, y: 49.999977}
+ P2: {x: -103, y: 22.999977}
+ P3: {x: -3, y: 22.999977}
+ segmentCount: 30
+--- !u!114 &2064035036
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2064035033}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a7c56ce7d0f247639e5fff6ebba2edd6, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ points:
+ - {x: -416, y: 49.999977}
+ - {x: -405.63165, y: 49.91197}
+ - {x: -394.5603, y: 49.65597}
+ - {x: -382.83597, y: 49.24397}
+ - {x: -370.50906, y: 48.68798}
+ - {x: -357.6296, y: 47.999973}
+ - {x: -344.248, y: 47.191975}
+ - {x: -330.41434, y: 46.275978}
+ - {x: -316.17896, y: 45.263985}
+ - {x: -301.592, y: 44.167976}
+ - {x: -286.70367, y: 42.999973}
+ - {x: -271.5643, y: 41.771976}
+ - {x: -256.224, y: 40.49598}
+ - {x: -240.73303, y: 39.18398}
+ - {x: -225.14162, y: 37.847973}
+ - {x: -209.5, y: 36.499977}
+ - {x: -193.85837, y: 35.151978}
+ - {x: -178.26697, y: 33.815975}
+ - {x: -162.77599, y: 32.503975}
+ - {x: -147.43571, y: 31.227978}
+ - {x: -132.29628, y: 29.999977}
+ - {x: -117.408, y: 28.831978}
+ - {x: -102.82104, y: 27.735977}
+ - {x: -88.58564, y: 26.723976}
+ - {x: -74.75201, y: 25.807976}
+ - {x: -61.370373, y: 24.999977}
+ - {x: -48.49096, y: 24.311977}
+ - {x: -36.16401, y: 23.755978}
+ - {x: -24.439703, y: 23.343977}
+ - {x: -13.368304, y: 23.087976}
+ - {x: -3, y: 22.999977}
+ lineWidth: 1
+ lineGradient:
+ serializedVersion: 2
+ key0: {r: 1, g: 1, b: 1, a: 1}
+ key1: {r: 1, g: 1, b: 1, a: 1}
+ key2: {r: 0, g: 0, b: 0, a: 0}
+ key3: {r: 0, g: 0, b: 0, a: 0}
+ key4: {r: 0, g: 0, b: 0, a: 0}
+ key5: {r: 0, g: 0, b: 0, a: 0}
+ key6: {r: 0, g: 0, b: 0, a: 0}
+ key7: {r: 0, g: 0, b: 0, a: 0}
+ ctime0: 0
+ ctime1: 65535
+ ctime2: 0
+ ctime3: 0
+ ctime4: 0
+ ctime5: 0
+ ctime6: 0
+ ctime7: 0
+ atime0: 0
+ atime1: 65535
+ atime2: 0
+ atime3: 0
+ atime4: 0
+ atime5: 0
+ atime6: 0
+ atime7: 0
+ m_Mode: 0
+ m_ColorSpace: -1
+ m_NumColorKeys: 2
+ m_NumAlphaKeys: 2
+ startCap: 0
+ endCap: 0
+--- !u!222 &2064035037
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2064035033}
+ m_CullTransparentMesh: 1
+--- !u!114 &2064035038
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2064035033}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 04b3f5cbad874b31893c0d7e1de082b9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ line: {fileID: 2064035036}
+ curveGenerator: {fileID: 2064035035}
+ lineHead: {fileID: 1271151655}
+ lineTail: {fileID: 1741163714}
+ rectTransform: {fileID: 0}
+--- !u!1 &2109950211
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2109950212}
+ - component: {fileID: 2109950214}
+ - component: {fileID: 2109950213}
+ m_Layer: 5
+ m_Name: lineTail
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2109950212
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2109950211}
+ 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: 1580819538}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -3, y: -13.000023}
+ m_SizeDelta: {x: 6, y: 6}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &2109950213
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2109950211}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 3286163911610860551, guid: 686e972b3342cea42a8e69cc49a56158, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 1
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &2109950214
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2109950211}
+ m_CullTransparentMesh: 1
+--- !u!1 &2125190855
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2125190856}
+ m_Layer: 5
+ m_Name: SkillTree
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2125190856
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2125190855}
+ 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: 1988348887}
+ m_Father: {fileID: 1688506936}
+ 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!1 &2143181503
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2143181504}
+ - component: {fileID: 2143181506}
+ - component: {fileID: 2143181505}
+ m_Layer: 5
+ m_Name: lineHead
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2143181504
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2143181503}
+ 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: 1580819538}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -416, y: -100.00002}
+ m_SizeDelta: {x: 6, y: 6}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &2143181505
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2143181503}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 3286163911610860551, guid: 686e972b3342cea42a8e69cc49a56158, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 1
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &2143181506
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2143181503}
+ m_CullTransparentMesh: 1
+--- !u!1 &2145496377
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2145496378}
+ - component: {fileID: 2145496380}
+ - component: {fileID: 2145496379}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2145496378
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2145496377}
+ 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: 1988348887}
+ 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: 15.002499}
+ m_SizeDelta: {x: 0, y: -29.994999}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &2145496379
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2145496377}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_text: "\u5F88\u5389\u5BB3\u7684"
+ m_isRightToLeft: 0
+ m_fontAsset: {fileID: 11400000, guid: 317edb274e9c5144a9916937bdbf7716, type: 2}
+ m_sharedMaterial: {fileID: -1361428157011412921, guid: 317edb274e9c5144a9916937bdbf7716, type: 2}
+ m_fontSharedMaterials: []
+ m_fontMaterial: {fileID: 0}
+ m_fontMaterials: []
+ m_fontColor32:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_fontColor: {r: 1, g: 1, b: 1, a: 1}
+ m_enableVertexGradient: 0
+ m_colorMode: 3
+ m_fontColorGradient:
+ topLeft: {r: 1, g: 1, b: 1, a: 1}
+ topRight: {r: 1, g: 1, b: 1, a: 1}
+ bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+ bottomRight: {r: 1, g: 1, b: 1, a: 1}
+ m_fontColorGradientPreset: {fileID: 0}
+ m_spriteAsset: {fileID: 0}
+ m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: -1183493901
+ m_overrideHtmlColors: 0
+ m_faceColor:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_fontSize: 20
+ m_fontSizeBase: 20
+ m_fontWeight: 400
+ m_enableAutoSizing: 0
+ m_fontSizeMin: 18
+ m_fontSizeMax: 72
+ m_fontStyle: 0
+ m_HorizontalAlignment: 2
+ m_VerticalAlignment: 512
+ m_textAlignment: 65535
+ m_characterSpacing: 0
+ m_wordSpacing: 0
+ m_lineSpacing: 0
+ m_lineSpacingMax: 0
+ m_paragraphSpacing: 0
+ m_charWidthMaxAdj: 0
+ m_TextWrappingMode: 1
+ m_wordWrappingRatios: 0.4
+ m_overflowMode: 0
+ m_linkedTextComponent: {fileID: 0}
+ parentLinkedComponent: {fileID: 0}
+ m_enableKerning: 0
+ m_ActiveFontFeatures: 6e72656b
+ m_enableExtraPadding: 0
+ checkPaddingRequired: 0
+ m_isRichText: 1
+ m_EmojiFallbackSupport: 1
+ m_parseCtrlCharacters: 1
+ m_isOrthographic: 1
+ m_isCullingEnabled: 0
+ m_horizontalMapping: 0
+ m_verticalMapping: 0
+ m_uvLineOffset: 0
+ m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
+ m_VertexBufferAutoSizeReduction: 0
+ m_useMaxVisibleDescender: 1
+ m_pageToDisplay: 1
+ m_margin: {x: 0, y: 0, z: 0, w: 0}
+ m_isUsingLegacyAnimationComponent: 0
+ m_isVolumetricText: 0
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &2145496380
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2145496377}
+ m_CullTransparentMesh: 1
--- !u!1001 &593350052837672451
PrefabInstance:
m_ObjectHideFlags: 0
@@ -1285,5 +3906,4 @@ SceneRoots:
- {fileID: 1245790017}
- {fileID: 593350052837672451}
- {fileID: 178349937}
- - {fileID: 1802079592}
- {fileID: 1688506936}
diff --git a/Client/Assets/Scripts/Base/GradientColor.cs b/Client/Assets/Scripts/Base/GradientColor.cs
deleted file mode 100644
index 60d8f35..0000000
--- a/Client/Assets/Scripts/Base/GradientColor.cs
+++ /dev/null
@@ -1,151 +0,0 @@
-using System;
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEngine.UI;
-
-namespace Base
-{
- // 定义渐变方向枚举
- [AddComponentMenu("UI/Effects/Gradient")]
- public enum Dir
- {
- Horizontal, // 水平方向
- Vertical, // 垂直方向
- }
-
- // 自定义梯度效果类,继承自BaseMeshEffect
- public class ColorBar : BaseMeshEffect
- {
- [SerializeField] // 序列化字段,可在Inspector中编辑
- private Dir dir = Dir.Vertical; // 渐变方向,默认垂直
-
- [SerializeField]
- public Color32 color1 = Color.white; // 渐变起始颜色,默认白色
-
- [SerializeField]
- public Color32 color2 = Color.white; // 渐变结束颜色,默认白色
-
- [SerializeField]
- private float range = 0f; // 渐变范围,控制颜色的过渡区域,默认无范围(完全渐变)
-
- [SerializeField]
- private bool isFlip = false; // 是否翻转渐变方向,默认不翻转
-
-
- public void Refresh()
- {
- graphic.SetVerticesDirty();
- }
-
- // 重写ModifyMesh方法,用于修改UI元素的网格
- public override void ModifyMesh(VertexHelper vh)
- {
- if (!IsActive()) // 如果组件未激活,则不执行后续操作
- {
- return;
- }
- var count = vh.currentVertCount; // 获取当前顶点数量
- if (count > 0) // 如果有顶点,则进行处理
- {
- var vertices = new List(); // 创建顶点列表
-
- // 遍历所有顶点并添加到列表中
- for (var i = 0; i < count; i++)
- {
- var uIVertex = new UIVertex();
- vh.PopulateUIVertex(ref uIVertex, i); // 填充顶点信息
- vertices.Add(uIVertex);
- }
-
- // 根据渐变方向调用相应的绘制方法
- switch (dir)
- {
- case Dir.Horizontal:
- DrawHorizontal(vh, vertices, count);
- break;
- case Dir.Vertical:
- DrawVertical(vh, vertices, count);
- break;
- default:
- throw new ArgumentOutOfRangeException();
- }
- }
- }
-
- // 绘制垂直方向的渐变
- private void DrawVertical(VertexHelper vh, List vertices, int count)
- {
- // 初始化顶部和底部Y坐标
- var topY = vertices[0].position.y;
- var bottomY = vertices[0].position.y;
-
- // 遍历所有顶点,找到最高和最低的Y坐标
- for (var i = 0; i < count; i++)
- {
- var y = vertices[i].position.y;
- if (y > topY) topY = y;
- else if (y < bottomY) bottomY = y;
- }
-
- var height = topY - bottomY; // 计算高度差
-
- // 遍历所有顶点,设置颜色渐变
- for (var i = 0; i < count; i++)
- {
- var vertex = vertices[i];
- Color32 color = Color.white;
-
- // 根据是否翻转,计算当前顶点的颜色
- if (isFlip)
- {
- color = Color32.Lerp(color2, color1, 1 - (vertex.position.y - bottomY) / height * (1f - range));
- }
- else
- {
- color = Color32.Lerp(color2, color1, (vertex.position.y - bottomY) / height * (1f - range));
- }
-
- vertex.color = color; // 设置顶点颜色
- vh.SetUIVertex(vertex, i); // 更新网格中的顶点
- }
- }
-
- // 绘制水平方向的渐变
- private void DrawHorizontal(VertexHelper vh, List vertices, int count)
- {
- // 注意:这里应该是找到最左和最右的X坐标,注释中存在笔误
- var leftX = vertices[0].position.x;
- var rightX = vertices[0].position.x;
-
- // 遍历所有顶点,找到最左和最右的X坐标
- for (var i = 0; i < count; i++)
- {
- var x = vertices[i].position.x;
- if (x > rightX) rightX = x;
- else if (x < leftX) leftX = x;
- }
-
- var width = rightX - leftX; // 计算宽度差
-
- // 遍历所有顶点,设置颜色渐变
- for (var i = 0; i < count; i++)
- {
- var vertex = vertices[i];
- Color32 color = Color.white;
-
- // 根据是否翻转,计算当前顶点的颜色
- if (isFlip)
- {
- color = Color32.Lerp(color2, color1, 1 - (vertex.position.x - leftX) / width * (1f - range));
- }
- else
- {
- color = Color32.Lerp(color2, color1, (vertex.position.x - leftX) / width * (1f - range));
- }
-
- vertex.color = color; // 设置顶点颜色
- vh.SetUIVertex(vertex, i); // 更新网格中的顶点
- }
- }
- }
-}
diff --git a/Client/Assets/Scripts/Base/Launcher.cs b/Client/Assets/Scripts/Base/Launcher.cs
index dea63b0..1dcc374 100644
--- a/Client/Assets/Scripts/Base/Launcher.cs
+++ b/Client/Assets/Scripts/Base/Launcher.cs
@@ -2,7 +2,8 @@ using System.Collections;
using System.Collections.Generic; // 提供List等通用集合类型
using Logging; // 提供日志记录功能
using Managers; // 提供管理器接口和实现
-using TMPro; // TextMeshPro文本组件命名空间
+using TMPro;
+using UI; // TextMeshPro文本组件命名空间
using UnityEngine; // Unity引擎核心命名空间
using UnityEngine.SceneManagement; // 场景管理命名空间
diff --git a/Client/Assets/Scripts/Entity/Bullet.cs b/Client/Assets/Scripts/Entity/Bullet.cs
index 9531ab2..6398e5e 100644
--- a/Client/Assets/Scripts/Entity/Bullet.cs
+++ b/Client/Assets/Scripts/Entity/Bullet.cs
@@ -15,6 +15,11 @@ namespace Entity
{
bulletSource = source;
attributes.attack = source.attributes.attack;
+ var weapon = source.GetCurrentWeapon();
+ if (weapon != null)
+ {
+ lifeTime = weapon.Attributes.attackRange / attributes.moveSpeed;
+ }
}
public override void SetTarget(Vector3 pos)
diff --git a/Client/Assets/Scripts/UI/ColorBar.cs b/Client/Assets/Scripts/UI/ColorBar.cs
new file mode 100644
index 0000000..0fefea8
--- /dev/null
+++ b/Client/Assets/Scripts/UI/ColorBar.cs
@@ -0,0 +1,166 @@
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace UI
+{
+ // 自定义梯度效果类,继承自BaseMeshEffect
+ public class ColorBar : BaseMeshEffect
+ {
+ [SerializeField, Range(0f, 360f)] // 使用Range特性,让角度在Inspector中更直观
+ private float angle = 0f; // 渐变角度 (0-360度),0度为水平向右,90度为水平向上
+
+ [SerializeField]
+ public Color32 color1 = Color.white; // 渐变起始颜色,默认白色
+
+ [SerializeField]
+ public Color32 color2 = Color.white; // 渐变结束颜色,默认白色
+
+ [SerializeField, Range(0f, 1f)] // 限制范围在0到1之间,0表示全渐变,1表示无渐变(所有颜色为color2)
+ private float range = 0f; // 渐变范围。此值用于缩短渐变覆盖的距离,0表示渐变覆盖所有范围,1表示所有像素都显示color2。
+
+ [SerializeField]
+ private bool isFlip = false; // 是否翻转渐变方向,默认不翻转,影响color1和color2的分布
+
+ // 缓存Graphic组件引用,避免GetComponent频繁调用
+ private Graphic m_Graphic;
+ public Graphic graphic
+ {
+ get
+ {
+ if (m_Graphic == null)
+ {
+ m_Graphic = GetComponent();
+ }
+ return m_Graphic;
+ }
+ }
+
+ // 当在Inspector中修改参数时,刷新UI
+ protected override void OnValidate()
+ {
+ base.OnValidate();
+ Refresh(); // 刷新网格
+ }
+
+ public void Refresh()
+ {
+ if (graphic != null)
+ {
+ graphic.SetVerticesDirty();
+ }
+ }
+
+ // 重写ModifyMesh方法,用于修改UI元素的网格
+ public override void ModifyMesh(VertexHelper vh)
+ {
+ if (!IsActive() || vh.currentVertCount == 0) // 如果组件未激活 或 没有顶点,则不执行后续操作
+ {
+ return;
+ }
+
+ var vertices = new List(); // 创建顶点列表
+ // 遍历所有顶点并添加到列表中
+ for (var i = 0; i < vh.currentVertCount; i++)
+ {
+ var uIVertex = new UIVertex();
+ vh.PopulateUIVertex(ref uIVertex, i); // 填充顶点信息
+ vertices.Add(uIVertex);
+ }
+
+ // 计算渐变方向向量
+ Vector2 gradientDir = AngleToVector2(angle);
+
+ // 计算所有顶点在此方向上的最小和最大投影值
+ float minProjection = float.MaxValue;
+ float maxProjection = float.MinValue;
+
+ for (var i = 0; i < vh.currentVertCount; i++)
+ {
+ // 注意:UIVertex.position 是 Vector3,但对于UI渐变通常只关心在Canvas 2D平面上的投影
+ // 这里我们使用x,y分量进行点积,以获得在渐变方向上的相对“深度”或“进度”
+ Vector2 vertexPos2D = vertices[i].position;
+ float projection = Vector2.Dot(vertexPos2D, gradientDir);
+
+ if (projection < minProjection) minProjection = projection;
+ if (projection > maxProjection) maxProjection = projection;
+ }
+
+ // 如果所有顶点投影相同(例如,只有一个点,或所有点在这个渐变方向上是平齐的),则没有渐变范围
+ if (Mathf.Approximately(maxProjection, minProjection))
+ {
+ // 在这种情况下,所有顶点颜色应相同。为了与range=1时的行为一致,设置为color2。
+ for (var i = 0; i < vh.currentVertCount; i++)
+ {
+ var vertex = vertices[i];
+ vertex.color = color2;
+ vh.SetUIVertex(vertex, i);
+ }
+ return;
+ }
+
+ // 计算渐变范围的实际有效长度。
+ // 原始代码中的 (1f - range) 乘法意味着 range=0 时渐变覆盖100%,range=1 时覆盖0%。
+ // 它的效果是“压缩”渐变区域,使得渐变在UI元素的一端更早地达到color1。
+ // 例如,如果 range = 0.5,那么渐变只覆盖了总长度的一半。
+ float totalProjectionRange = maxProjection - minProjection;
+ float effectiveGradientLength = totalProjectionRange * (1f - range);
+
+ for (var i = 0; i < vh.currentVertCount; i++)
+ {
+ var vertex = vertices[i];
+ Vector2 vertexPos2D = vertex.position;
+ float projection = Vector2.Dot(vertexPos2D, gradientDir);
+
+ float t; // 归一化的插值因子 [0, 1]
+
+ // 计算归一化的插值因子
+ // 如果 effectiveGradientLength 为0 (即 range=1),t 将是0,表示始终取 color2。
+ if (Mathf.Approximately(effectiveGradientLength, 0f))
+ {
+ t = 0f; // 渐变长度为0,所有顶点颜色都将是 color2 (在Lerp前)
+ }
+ else
+ {
+ // 将顶点投影值映射到 [0, 1] 范围,考虑到有效渐变长度
+ // 此时 t 可能超出 [0,1],例如,当 projection - minProjection > effectiveGradientLength 时,
+ // 这通常发生在 range > 0 的情况下,超出的部分会被钳制,使其颜色保持在 color1。
+ t = (projection - minProjection) / effectiveGradientLength;
+ t = Mathf.Clamp01(t); // 钳制以确保插值因子在有效范围内
+ }
+
+ // 根据 isFlip 调整插值因子
+ // 如果 isFlip 为 true,则 color1 变为渐变起点,color2 变为渐变终点
+ // 例如,t=0变为t=1,t=1变为t=0。
+ if (isFlip)
+ {
+ t = 1f - t;
+ }
+
+ // 使用Lerp进行颜色插值
+ // Color32.Lerp(a, b, t) 表示当 t=0 时取 a,t=1 时取 b。
+ // 此时,t=0 对应 minProjection 处,t=1 对应 maxProjection 处 (考虑effectiveGradientLength和isFlip)。
+ vertex.color = Color32.Lerp(color2, color1, t);
+ vh.SetUIVertex(vertex, i); // 更新网格中的顶点
+ }
+ }
+
+ ///
+ /// 将角度转换为归一化的Vector2方向。
+ /// 0度:(1, 0) - 右
+ /// 90度:(0, 1) - 上
+ /// 180度:(-1, 0) - 左
+ /// 270度:(0, -1) - 下
+ ///
+ /// 角度,单位为度。
+ /// 归一化的Vector2方向。
+ private Vector2 AngleToVector2(float angleDegrees)
+ {
+ // 将角度转换为弧度
+ float angleRadians = angleDegrees * Mathf.Deg2Rad;
+ // 计算X和Y分量
+ return new Vector2(Mathf.Cos(angleRadians), Mathf.Sin(angleRadians));
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/Base/GradientColor.cs.meta b/Client/Assets/Scripts/UI/ColorBar.cs.meta
similarity index 100%
rename from Client/Assets/Scripts/Base/GradientColor.cs.meta
rename to Client/Assets/Scripts/UI/ColorBar.cs.meta
diff --git a/Client/Assets/Scripts/UI/SkillNodeEnterLineUI.cs b/Client/Assets/Scripts/UI/SkillNodeEnterLineUI.cs
new file mode 100644
index 0000000..66239b4
--- /dev/null
+++ b/Client/Assets/Scripts/UI/SkillNodeEnterLineUI.cs
@@ -0,0 +1,111 @@
+using UnityEngine;
+
+namespace UI
+{
+ public class SkillNodeEnterLineUI : MonoBehaviour
+ {
+ [SerializeField] private SkillNodeLinkLineUI skillNodeLinkLineUIPrefab;
+
+ private const float MIN_VERTICAL_SPACING = 12.9447f; // 每条连接线的最小垂直间距
+ private const float UPWARD_OFFSET_FROM_BASE = 0f; // 整体结束点相对于参照点的向上偏移量
+
+ ///
+ /// 初始化连接线。根据传入的起始点数组创建多条连接线,
+ /// 这些线的结束点将围绕 transform.position - new Vector3(6,0) 并在其基础上向上偏移5,
+ /// 纵向均匀排列,至少间距12。
+ /// 在每次调用前,会清空所有旧的连接线以避免累积。
+ ///
+ /// 要连接的线起始点数组。
+ /// 所有连接线的结束点所占据的最小总高度。
+ public float Init(Vector2[] startPoints)
+ {
+ // 清空所有旧的连接线,避免重复调用时线累积。
+ // 从后往前遍历子对象,因为销毁子对象会改变子对象列表的索引。
+ for (var i = transform.childCount - 1; i >= 0; i--)
+ {
+ // 获取当前子对象。
+ var child = transform.GetChild(i);
+ // 仅销毁SkillNodeLinkLineUI类型的子对象实例,避免意外删除其他非连接线的子对象。
+ if (child != null && child.GetComponent() != null)
+ {
+ Destroy(child.gameObject);
+ }
+ }
+
+ // 预制体加载检查:确保在执行任何操作之前,预制体已经加载。
+ // 优先使用Inspector赋值,如果 skillNodeLinkLineUIPrefab 为 null,则尝试从 Resources 文件夹加载作为备用方案。
+ if (skillNodeLinkLineUIPrefab == null)
+ {
+ // 从Resources加载预制体。
+ skillNodeLinkLineUIPrefab = Resources.Load("Prefab/SkillTree/linkLine");
+ if (skillNodeLinkLineUIPrefab == null)
+ {
+ // 打印错误日志(已本地化为中文)。
+ Debug.LogError(
+ "初始化失败:SkillNodeLinkLineUI 预制体未在 Prefab/SkillTree/linkLine 路径找到。请检查路径,确保预制体存在,或直接在 Inspector 中赋值。");
+ return 0f; // 预制体缺失,返回0高度。
+ }
+ }
+
+ // 获取起始点的数量。
+ var numLines = startPoints.Length;
+ if (numLines == 0)
+ {
+ // 没有起始点,不需要绘制连接线,返回0高度。
+ // 此时,清理旧连接线的逻辑已经执行,确保了没有残留的线。
+ return 0f;
+ }
+
+ // 计算所有连接线共享的基准结束点X坐标。
+ // 这是所有连接线结束点集合的垂直居中轴线。
+ var commonEndPointX = transform.position.x - 6f;
+ // 计算所有连接线结束点集合的实际垂直中心Y坐标。
+ // 根据需求 "有多个点时向上偏移5",这个偏移量应用于整个结束点集合的中心。
+ var effectiveCenterY = transform.position.y + UPWARD_OFFSET_FROM_BASE;
+ // 初始化所有线结束点所占据的总垂直跨度。
+ var requiredHeight = 0f;
+
+ if (numLines == 1)
+ {
+ // 只有一个起始点时,其结束点直接放在计算出的有效中心Y坐标上。
+ var endPoint = new Vector2(commonEndPointX, effectiveCenterY);
+
+ // 实例化连接线预制体并设置为当前对象的子对象。
+ var line = Instantiate(skillNodeLinkLineUIPrefab, transform);
+ // 设置连接线的起始点和结束点。
+ line.SetConnectionPoints(startPoints[0], endPoint);
+
+ // 只有一个点时,垂直高度可以认为是0,因为它不形成一个跨越多个点的“总高度”。
+ // 这里返回0f符合“所有连接线的结束点所占据的最小总高度”的定义语义。
+ requiredHeight = 0f;
+ }
+ else // numLines > 1
+ {
+ // 计算所有连接线结束点所占据的总垂直跨度(从最顶端到最底端)。
+ // 这是从最上面一条线的结束点Y到最下面一条线的结束点Y的距离。
+ requiredHeight = (numLines - 1) * MIN_VERTICAL_SPACING;
+ // 计算最上面一条线的结束点Y坐标。
+ // effectiveCenterY 是所有线的垂直中心,从这个中心向上偏移 requiredHeight / 2 即可得到最顶端的Y。
+ var currentEndPointY = effectiveCenterY + (requiredHeight / 2f);
+
+ // 遍历起始点数组,创建并设置每条连接线。
+ for (var i = 0; i < numLines; i++)
+ {
+ // 为当前连接线确定结束点坐标。
+ var endPoint = new Vector2(commonEndPointX, currentEndPointY);
+
+ // 实例化连接线预制体。
+ var line = Instantiate(skillNodeLinkLineUIPrefab, transform);
+ // 设置连接线的起始点和结束点。
+ line.SetConnectionPoints(startPoints[i], endPoint);
+
+ // 为下一条线计算其结束点Y坐标(向下移动一个最小间距)。
+ currentEndPointY -= MIN_VERTICAL_SPACING;
+ }
+ }
+
+ // 返回所有连接线的结束点所占据的最小总高度。
+ return requiredHeight;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/UI/SkillNodeEnterLineUI.cs.meta b/Client/Assets/Scripts/UI/SkillNodeEnterLineUI.cs.meta
new file mode 100644
index 0000000..f36fb4e
--- /dev/null
+++ b/Client/Assets/Scripts/UI/SkillNodeEnterLineUI.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 4d15100cc2164e78bfaaef16efd7825a
+timeCreated: 1757469894
\ No newline at end of file
diff --git a/Client/Assets/Scripts/UI/SkillNodeLinkLineUI.cs b/Client/Assets/Scripts/UI/SkillNodeLinkLineUI.cs
new file mode 100644
index 0000000..8e50589
--- /dev/null
+++ b/Client/Assets/Scripts/UI/SkillNodeLinkLineUI.cs
@@ -0,0 +1,121 @@
+using UnityEngine;
+
+namespace UI
+{
+ ///
+ /// 技能节点连接线UI组件。
+ /// 该组件用于管理贝塞尔曲线的生成和显示,连接两个技能节点或其他UI元素。
+ /// 它通过控制贝塞尔曲线生成器的参数,实现UI元素之间的视觉连接。
+ ///
+ // 确保当前GameObject拥有RectTransform组件,因为这是一个UI组件,其布局和定位依赖于它。
+ [RequireComponent(typeof(RectTransform))]
+ public class SkillNodeLinkLineUI : MonoBehaviour
+ {
+ // 引用UILineRenderer组件,用于实际绘制曲线。
+ public UILineRenderer line;
+ // 引用UIBezierCurveGenerator组件,负责根据控制点计算贝塞尔曲线的几何点。
+ public UIBezierCurveGenerator curveGenerator;
+ // 曲线起始点关联的UI元素,例如:箭头的头部或起始连接点标识。
+ public GameObject lineHead;
+ // 曲线结束点关联的UI元素,例如:箭头的尾部或结束连接点标识。
+ public GameObject lineTail;
+
+ // 当前GameObject的RectTransform组件,方便在代码中直接访问和操作。
+ // [HideInInspector] 确保该字段在Inspector面板中不可见,通常因为它会被自动赋值。
+ [HideInInspector] public RectTransform rectTransform;
+
+ ///
+ /// 当脚本实例被启用时,或者首次加载时调用。
+ /// 用于初始化和检查必要的组件。
+ ///
+ private void Awake()
+ {
+ // 获取当前GameObject的RectTransform组件。
+ rectTransform = GetComponent();
+
+ // 检查贝塞尔曲线生成器是否已赋值。
+ if (curveGenerator == null)
+ {
+ Debug.LogError("UIBezierCurveGenerator未赋值给SkillNodeLinkLineUI!", this);
+ }
+ // 检查UILineRenderer是否已赋值。
+ // 注意:UILineRenderer通常由UIBezierCurveGenerator管理,但此处也进行一个警告检查。
+ if (line == null)
+ {
+ Debug.LogWarning("UILineRenderer未赋值给SkillNodeLinkLineUI。它可能由UIBezierCurveGenerator自动处理,或需要手动赋值。", this);
+ }
+ }
+
+ ///
+ /// 设置曲线的起始点和结束点,并更新贝塞尔曲线的生成以及线头线尾UI元素的位置。
+ ///
+ /// 曲线起始点的世界坐标。
+ /// 曲线结束点的世界坐标。
+ public void SetConnectionPoints(Vector2 startWorldPos, Vector2 endWorldPos)
+ {
+ // 如果贝塞尔曲线生成器未赋值,则无法设置连接点。
+ if (curveGenerator == null)
+ {
+ Debug.LogError("无法设置连接点:UIBezierCurveGenerator未赋值。", this);
+ return;
+ }
+
+ // 1. 将世界坐标转换为 UIBezierCurveGenerator 的局部坐标。
+ // 贝塞尔曲线生成器的控制点是相对于其自身RectTransform的局部坐标。
+ // 因此,我们需要先获取curveGenerator所在GameObject的RectTransform,并进行坐标转换。
+ var curveGeneratorRectTransform = curveGenerator.GetComponent();
+ if (curveGeneratorRectTransform == null)
+ {
+ Debug.LogError("UIBezierCurveGenerator所在的GameObject没有RectTransform组件。", this);
+ return;
+ }
+
+ // 将世界坐标转换为curveGeneratorRectTransform的局部坐标。
+ Vector2 localStartPos = curveGeneratorRectTransform.InverseTransformPoint(startWorldPos);
+ Vector2 localEndPos = curveGeneratorRectTransform.InverseTransformPoint(endWorldPos);
+
+ // 2. 计算贝塞尔曲线的水平偏移量,用于控制曲线的弯曲程度。
+ var horizontalOffset = 100f; // 默认水平偏移量。
+
+ // 根据起始点和结束点X坐标的绝对差值来调整偏移量,使曲线在近距离时更平滑。
+ var xDiff = Mathf.Abs(startWorldPos.x - endWorldPos.x); // 使用世界坐标计算X轴差值更直观。
+ if (xDiff < 200f)
+ {
+ horizontalOffset = xDiff / 2f + 10f; // 在X轴差值较小时,减小偏移量。
+ }
+
+ // 3. 计算贝塞尔曲线的四个控制点 (P0, P1, P2, P3)。
+ var p0 = localStartPos; // 贝塞尔曲线的起始点。
+ var p3 = localEndPos; // 贝塞尔曲线的终止点。
+ Vector2 p1, p2; // 贝塞尔曲线的两个控制点。
+
+ // 根据起始点和结束点X坐标的相对位置,确定控制点P1和P2的水平偏移方向،
+ // 以保证曲线的自然走向。
+ if (localStartPos.x <= localEndPos.x)
+ {
+ // 如果曲线从左向右(或垂直),P1在P0右侧,P2在P3左侧。
+ p1 = new Vector2(localStartPos.x + horizontalOffset, localStartPos.y);
+ p2 = new Vector2(localEndPos.x - horizontalOffset, localEndPos.y);
+ }
+ else
+ {
+ // 如果曲线从右向左,P1在P0左侧,P2在P3右侧。
+ p1 = new Vector2(localStartPos.x - horizontalOffset, localStartPos.y);
+ p2 = new Vector2(localEndPos.x + horizontalOffset, localEndPos.y);
+ }
+
+ // 4. 将计算出的控制点设置给 UIBezierCurveGenerator,使其生成新的曲线。
+ curveGenerator.SetControlPoints(p0, p1, p2, p3);
+
+ // 5. 将线头和线尾UI元素移动到对应的世界坐标位置,使其与曲线的起始和结束对齐。
+ if (lineHead != null)
+ {
+ lineHead.transform.position = startWorldPos; // 将线头UI元素移动到起始点的世界坐标。
+ }
+ if (lineTail != null)
+ {
+ lineTail.transform.position = endWorldPos; // 将线尾UI元素移动到结束点的世界坐标。
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/UI/SkillNodeLinkLineUI.cs.meta b/Client/Assets/Scripts/UI/SkillNodeLinkLineUI.cs.meta
new file mode 100644
index 0000000..4e7e42d
--- /dev/null
+++ b/Client/Assets/Scripts/UI/SkillNodeLinkLineUI.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 04b3f5cbad874b31893c0d7e1de082b9
+timeCreated: 1757470314
\ No newline at end of file
diff --git a/Client/Assets/Scripts/UI/SkillTreeNodeUI.cs b/Client/Assets/Scripts/UI/SkillTreeNodeUI.cs
new file mode 100644
index 0000000..7853428
--- /dev/null
+++ b/Client/Assets/Scripts/UI/SkillTreeNodeUI.cs
@@ -0,0 +1,196 @@
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEditor; // 引入 UnityEditor 命名空间
+
+namespace UI
+{
+ [ExecuteInEditMode] // 允许脚本在编辑器模式下运行
+ public class SkillTreeNodeUI : MonoBehaviour
+ {
+ public SkillNodeEnterLineUI skillNodeEnterLineUI;
+
+ [Header("Editor Test Settings")]
+ public bool testModeActive = true; // 是否在编辑器模式下激活测试线的绘制
+ [Range(0, 20)] // 限制线条数量在0到20之间,防止意外生成过多
+ public int numberOfLinesToTest = 5; // 要生成多少条测试线
+ public Vector2 initialStartPointOffset = new Vector2(-300, 100); // 初始点的偏移
+ public Vector2 perLineOffset = new Vector2(0, -30); // 每条线之间的相对偏移
+
+ [Header("UI Node Settings")]
+ public float minNodeHeight = 70f; // UI节点的最小高度,即使没有线条也应保持此高度
+
+ private RectTransform _rectTransform; // 缓存自身的 RectTransform 组件
+
+ private void Awake()
+ {
+ _rectTransform = GetComponent();
+ if (_rectTransform == null)
+ {
+ Debug.LogError("SkillTreeNodeUI requires a RectTransform component on this GameObject.", this);
+ }
+ }
+
+ private void Start()
+ {
+ // 确保 _rectTransform 在 Play Mode 中也可用
+ if (_rectTransform == null)
+ {
+ _rectTransform = GetComponent();
+ }
+
+ // 在Play Mode启动时执行初始化。对于运行时,testModeActive(作为一个“编辑器测试设置”)通常不应阻止线条绘制。
+ // 因此,isEditorCall 参数传递 false。
+ InitializeLines(false);
+ }
+
+ // 当Inspector中的值发生改变或脚本被加载时调用
+ private void OnValidate()
+ {
+ // 确保只在编辑器模式且非运行时执行
+ if (!Application.isEditor || Application.isPlaying)
+ return;
+
+ // 调用初始化方法。对于编辑器调用,isEditorCall 参数传递 true,这将使 testModeActive 生效。
+ InitializeLines(true);
+ }
+
+ ///
+ /// 根据当前设置初始化线条绘制。
+ /// 可以从外部调用以刷新线条。
+ ///
+ /// 如果为 true,表示是从编辑器上下文(如 OnValidate)调用,将尊重 testModeActive 设置。
+ public void InitializeLines(bool isEditorCall)
+ {
+ if (_rectTransform == null)
+ {
+ _rectTransform = GetComponent();
+ if (_rectTransform == null)
+ {
+ Debug.LogError("SkillTreeNodeUI requires a RectTransform component for initialization.", this);
+ ClearExistingLines(); // 即使缺少 RectTransform,也尝试清理避免残留
+ SetRectTransformHeight(0f); // 尝试重置高度
+ return;
+ }
+ }
+
+ if (skillNodeEnterLineUI == null)
+ {
+ Debug.LogWarning("SkillNodeEnterLineUI reference is not set for initialization on " + gameObject.name + ". Cannot draw lines.", this);
+ ClearExistingLines();
+ SetRectTransformHeight(0f);
+ return;
+ }
+
+ ClearExistingLines(); // 始终在绘制新线前清理旧线
+
+ // 如果是编辑器调用且测试模式未激活,或者要绘制的线数为0,则不绘制新线并设置最小高度。
+ // 当 isEditorCall 为 false (运行时调用) 时,会忽略 testModeActive 的状态。
+ if ((isEditorCall && !testModeActive) || numberOfLinesToTest <= 0)
+ {
+ SetRectTransformHeight(0f);
+ return;
+ }
+
+ // 根据 Inspector 中的参数生成 startPoints
+ var startPoints = new List();
+ // 注意:transform.position 是世界坐标。对于UI,通常建议使用 RectTransform.anchoredPosition
+ // 或转换为 RectTransformUtility.ScreenPointToLocalPointInRectangle 的方式获取相对 Canvas 的本地坐标。
+ // 但为保持与原有逻辑一致性,且假设 skillNodeEnterLineUI 内部能正确处理世界坐标,暂不修改。
+ var currentPoint = (Vector2)transform.position + initialStartPointOffset;
+ startPoints.Add(currentPoint);
+
+ for (var i = 1; i < numberOfLinesToTest; i++)
+ {
+ currentPoint += perLineOffset; // 使用相对偏移
+ startPoints.Add(currentPoint);
+ }
+
+ // 调用 Init 来创建线并获取所需的高度
+ var requiredLineHeight = skillNodeEnterLineUI.Init(startPoints.ToArray());
+
+ // 立即设置 RectTransform 高度
+ SetRectTransformHeight(requiredLineHeight);
+ }
+
+ ///
+ /// 根据所需行高设置自身的RectTransform高度。
+ /// 高度为 Max(requiredLineHeight + 40, minNodeHeight)。
+ ///
+ /// SkillNodeEnterLineUI.Init方法返回的作为线终点区域的高度。
+ private void SetRectTransformHeight(float requiredLineHeight)
+ {
+ if (_rectTransform == null)
+ {
+ Debug.LogWarning("RectTransform is null, cannot set height for " + transform.name + ".", this);
+ return;
+ }
+
+ var currentWidth = _rectTransform.sizeDelta.x; // 保持宽度不变
+ var currentHeight = _rectTransform.sizeDelta.y;
+
+ // 计算线条所需的最小高度,加上40的额外填充
+ var minNeededHeightWithPadding = requiredLineHeight + 40f;
+
+ // 目标高度为:线条所需的最小高度与 RectTransform 当前高度中的较大值,同时不小于 minNodeHeight。
+ // 这确保了RectTransform的高度只在需要时增加,且不会低于其当前的尺寸或设定的最小高度。
+ var targetHeight = Mathf.Max(minNeededHeightWithPadding, minNodeHeight);
+
+ // 只有当计算出的目标高度与当前高度存在显著差异时才进行更新,以避免不必要的UI刷新和场景脏化。
+ // 使用一个小小的epsilon值进行浮点数比较,以应对精度问题。
+ if (Mathf.Abs(currentHeight - targetHeight) > 0.1f)
+ {
+ _rectTransform.sizeDelta = new Vector2(currentWidth, targetHeight);
+
+ // 在编辑器模式下,标记RectTransform为脏(dirty),确保修改被保存到场景中。
+ // 仅当非Play Mode才需要SetDirty,且只对改变的组件。
+ if (!Application.isPlaying)
+ {
+ EditorUtility.SetDirty(_rectTransform);
+ }
+ }
+ }
+
+ ///
+ /// 清除 skillNodeEnterLineUI 下所有已存在的子对象(连接线)。
+ /// 在编辑器模式下使用 EditorApplication.delayCall 延迟销毁,避免 OnValidate 的限制。
+ /// 在Play Mode下使用 Destroy。
+ ///
+ private void ClearExistingLines()
+ {
+ if (skillNodeEnterLineUI == null) return;
+
+ var childrenToDestroy = new List();
+ for (var i = skillNodeEnterLineUI.transform.childCount - 1; i >= 0; i--)
+ {
+ childrenToDestroy.Add(skillNodeEnterLineUI.transform.GetChild(i).gameObject);
+ }
+
+ if (Application.isPlaying)
+ {
+ foreach (var child in childrenToDestroy)
+ {
+ Destroy(child);
+ }
+ }
+ else // 在编辑器模式下
+ {
+ EditorApplication.delayCall += () => {
+ bool childrenWereDestroyed = false; // 增加一个标志,判断是否有子对象被实际销毁
+ foreach (var child in childrenToDestroy)
+ {
+ if (child != null)
+ {
+ DestroyImmediate(child);
+ childrenWereDestroyed = true;
+ }
+ }
+ // 如果有子对象被销毁且 skillNodeEnterLineUI 仍然存在,则标记其为脏
+ if (childrenWereDestroyed && skillNodeEnterLineUI != null)
+ {
+ EditorUtility.SetDirty(skillNodeEnterLineUI); // 标记 skillNodeEnterLineUI 组件为脏
+ }
+ };
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/UI/SkillTreeNodeUI.cs.meta b/Client/Assets/Scripts/UI/SkillTreeNodeUI.cs.meta
new file mode 100644
index 0000000..9ac00b0
--- /dev/null
+++ b/Client/Assets/Scripts/UI/SkillTreeNodeUI.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: a0bd6744a131480d872dc07f318b561d
+timeCreated: 1757469859
\ No newline at end of file
diff --git a/Client/Assets/Scripts/UI/UIBezierCurveGenerator.cs b/Client/Assets/Scripts/UI/UIBezierCurveGenerator.cs
index eb7d70b..bfb6bf7 100644
--- a/Client/Assets/Scripts/UI/UIBezierCurveGenerator.cs
+++ b/Client/Assets/Scripts/UI/UIBezierCurveGenerator.cs
@@ -2,147 +2,174 @@ using UnityEngine;
namespace UI
{
- // 需要引用 UILineRenderer 组件
+ ///
+ /// UI贝塞尔曲线生成器。
+ /// 此组件用于生成和显示三次贝塞尔曲线,并将其点数据传递给UILineRenderer进行绘制。
+ ///
+ // 确保当前GameObject上存在UILineRenderer组件,如果不存在则会自动添加。
[RequireComponent(typeof(UILineRenderer))]
- // 允许在编辑器模式下实时更新,便于调试
+ // 允许在编辑器模式下,当参数修改时实时更新曲线,便于调试和预览。
[ExecuteAlways]
public class UIBezierCurveGenerator : MonoBehaviour
{
- // UILineRenderer 组件的引用
+ // 对UILineRenderer组件的引用,用于绘制生成的贝塞尔曲线。
[SerializeField] public UILineRenderer lineRenderer;
- // 控制点
- [Header("Bezier Control Points")] public Vector2 P0; // 起点
- public Vector2 P1; // 第一个控制点
- public Vector2 P2; // 第二个控制点
- public Vector2 P3; // 终点
+ // 贝塞尔曲线的四个控制点。
+ [Header("贝塞尔控制点")]
+ public Vector2 P0; // 曲线的起始点。
+ public Vector2 P1; // 曲线的第一个控制点,影响曲线从P0开始的方向和曲率。
+ public Vector2 P2; // 曲线的第二个控制点,影响曲线在接近P3时的方向和曲率。
+ public Vector2 P3; // 曲线的终止点。
- [Header("Curve Settings")] [Range(5, 200)] // 限制段数范围,防止过低导致不平滑,过高导致性能问题
- public int segmentCount = 50; // 曲线的平滑度,即采样的线段数量
+ // 曲线的设置参数。
+ [Header("曲线设置")]
+ [Range(5, 200)] // 限制曲线段数的范围,确保曲线平滑度和性能之间的平衡。
+ public int segmentCount = 50; // 用于近似曲线的线段数量,值越大曲线越平滑。
+ ///
+ /// 当脚本实例被启用时,或者首次加载时调用。
+ ///
void Awake()
{
+ // 初始化组件,获取UILineRenderer的引用。
Initialize();
}
+ ///
+ /// 当在编辑器中修改脚本的属性时调用。
+ ///
void OnValidate()
{
+ // 初始化组件,获取UILineRenderer的引用。
Initialize();
+ // 如果UILineRenderer组件有效,则在编辑器中实时重新生成曲线。
if (lineRenderer != null)
{
- GenerateCurvePoints(); // 在编辑器中修改参数时实时更新曲线
+ GenerateCurvePoints();
}
}
///
- /// 初始化组件,获取 UILineRenderer 引用
+ /// 初始化组件,获取 UILineRenderer 引用。
///
private void Initialize()
{
+ // 如果UILineRenderer引用为空,则尝试获取组件。
if (lineRenderer == null)
{
lineRenderer = GetComponent();
+ // 如果仍然无法获取UILineRenderer组件,则报错并禁用此组件。
if (lineRenderer == null)
{
- Debug.LogError("UILineRenderer component not found on this GameObject. Please add one.", this);
- enabled = false; // 禁用此组件,防止空引用错误
+ Debug.LogError("UILineRenderer组件未在此GameObject上找到,请添加一个。", this);
+ enabled = false; // 禁用此组件实例,以防止后续空引用错误。
}
}
}
///
- /// 计算三次贝塞尔曲线上的点
- /// B(t) = (1-t)^3 * P0 + 3 * (1-t)^2 * t * P1 + 3 * (1-t) * t^2 * P2 + t^3 * P3
+ /// 计算三次贝塞尔曲线上的特定点。
+ /// 贝塞尔曲线公式: B(t) = (1-t)^3 * P0 + 3 * (1-t)^2 * t * P1 + 3 * (1-t) * t^2 * P2 + t^3 * P3
///
- /// 参数,范围 [0, 1]
- /// 起点
- /// 第一个控制点
- /// 第二个控制点
- /// 终点
- /// 在参数 t 处的贝塞尔曲线上点
+ /// 参数,表示曲线上的位置,范围 [0, 1]。
+ /// 曲线的起始点。
+ /// 曲线的第一个控制点。
+ /// 曲线的第二个控制点。
+ /// 曲线的终止点。
+ /// 在参数 t 处的贝塞尔曲线上点的二维坐标。
private Vector2 CalculateBezierPoint(float t, Vector2 p0, Vector2 p1, Vector2 p2, Vector2 p3)
{
- float u = 1 - t;
- float tt = t * t;
- float uu = u * u;
- float uuu = uu * u;
- float ttt = tt * t;
+ var u = 1 - t; // 计算 (1-t)
+ var tt = t * t; // 计算 t的平方
+ var uu = u * u; // 计算 (1-t)的平方
+ var uuu = uu * u; // 计算 (1-t)的立方
+ var ttt = tt * t; // 计算 t的立方
- Vector2 p = uuu * p0; // (1-t)^3 * P0
- p += 3 * uu * t * p1; // 3 * (1-t)^2 * t * P1
- p += 3 * u * tt * p2; // 3 * (1-t) * t^2 * P2
- p += ttt * p3; // t^3 * P3
+ var p = uuu * p0; // 计算 (1-t)^3 * P0
+ p += 3 * uu * t * p1; // 计算 3 * (1-t)^2 * t * P1
+ p += 3 * u * tt * p2; // 计算 3 * (1-t) * t^2 * P2
+ p += ttt * p3; // 计算 t^3 * P3
- return p;
+ return p; // 返回计算出的贝塞尔曲线上点。
}
///
- /// 生成贝塞尔曲线的点并更新 UILineRenderer
+ /// 根据当前的控制点和段数生成贝塞尔曲线上的所有点,并更新 UILineRenderer 进行绘制。
///
public void GenerateCurvePoints()
{
- if (lineRenderer == null || segmentCount <= 0)
+ // 如果UILineRenderer组件无效,则无法生成曲线。
+ if (!lineRenderer)
{
- Debug.LogWarning("UILineRenderer is null or segmentCount is invalid. Cannot generate curve.", this);
+ Debug.LogWarning("UILineRenderer组件为空,无法生成曲线。", this);
return;
}
- // 清空 UILineRenderer 的点列表,以便重新填充
+ // 清空 UILineRenderer 当前的点列表,为填充新的曲线点做准备。
lineRenderer.points.Clear();
- for (int i = 0; i <= segmentCount; i++)
+ // 遍历并计算曲线上的所有采样点。
+ for (var i = 0; i <= segmentCount; i++)
{
- float t = i / (float)segmentCount;
- Vector2 point = CalculateBezierPoint(t, P0, P1, P2, P3);
- lineRenderer.points.Add(point);
+ var t = i / (float)segmentCount; // 计算当前点的归一化参数 [0, 1]。
+ var point = CalculateBezierPoint(t, P0, P1, P2, P3); // 根据参数 t 计算贝塞尔曲线上点坐标。
+ lineRenderer.points.Add(point); // 将计算出的点添加到UILineRenderer的点列表中。
}
- // 通知 UILineRenderer 需要重新绘制其几何体
+ // 通知 UILineRenderer 需要重新绘制其几何体,以显示更新后的曲线。
lineRenderer.SetAllDirty();
}
///
- /// 提供了通过代码设置控制点并刷新曲线的方法
+ /// 提供了通过代码设置贝塞尔曲线控制点的方法,并立即刷新曲线。
///
+ /// 新的起始点。
+ /// 新的第一个控制点。
+ /// 新的第二个控制点。
+ /// 新的终止点。
public void SetControlPoints(Vector2 p0, Vector2 p1, Vector2 p2, Vector2 p3)
{
- this.P0 = p0;
- this.P1 = p1;
- this.P2 = p2;
- this.P3 = p3;
- GenerateCurvePoints();
+ this.P0 = p0; // 设置起始点。
+ this.P1 = p1; // 设置第一个控制点。
+ this.P2 = p2; // 设置第二个控制点。
+ this.P3 = p3; // 设置终止点。
+ GenerateCurvePoints(); // 更新曲线。
}
///
- /// 提供了通过代码设置曲线段数并刷新曲线的方法
+ /// 提供了通过代码设置贝塞尔曲线段数的方法,并立即刷新曲线。
///
+ /// 新的曲线段数。
public void SetSegmentCount(int count)
{
- segmentCount = Mathf.Max(5, count); // 至少保留5段,保证一定平滑度
- GenerateCurvePoints();
+ segmentCount = Mathf.Max(5, count); // 设置曲线段数,确保至少为5段以保持一定平滑度。
+ GenerateCurvePoints(); // 更新曲线。
}
- // 当组件首次添加或重置时调用
- void Reset()
+ ///
+ /// 当组件首次添加到GameObject或在编辑器中选择“Reset”时调用。
+ /// 用于设置组件的默认值。
+ ///
+ private void Reset()
{
- Initialize(); // 确保 lineRenderer 已初始化
+ Initialize(); // 确保UILineRenderer引用已初始化。
- // 根据 RectTransform 的大小设置默认点,确保在可见范围内
- RectTransform rt = GetComponent();
- float halfWidth = rt.rect.width / 2f;
- float halfHeight = rt.rect.height / 2f;
+ // 获取当前GameObject的RectTransform,以便根据其尺寸设置默认控制点。
+ var rt = GetComponent();
+ var halfWidth = rt.rect.width / 2f; // 获取RectTransform宽度的一半。
+ var halfHeight = rt.rect.height / 2f; // 获取RectTransform高度的一半。
- // 设置一些默认的控制点,让曲线在UI区域内可见
- // 这些是相对于 RectTransform 的局部坐标
- P0 = new Vector2(-halfWidth * 0.8f, -halfHeight * 0.5f); // 左下
- P1 = new Vector2(-halfWidth * 0.4f, halfHeight * 0.8f); // 左上控制点
- P2 = new Vector2(halfWidth * 0.4f, halfHeight * 0.8f); // 右上控制点
- P3 = new Vector2(halfWidth * 0.8f, -halfHeight * 0.5f); // 右下
+ // 设置一组默认的控制点,使得曲线在UI区域内可见且具有S形或拱形。
+ // 这些点是相对于RectTransform的局部坐标。
+ P0 = new Vector2(-halfWidth * 0.8f, -halfHeight * 0.5f); // 默认起始点,位于左下。
+ P1 = new Vector2(-halfWidth * 0.4f, halfHeight * 0.8f); // 默认第一个控制点,位于左上。
+ P2 = new Vector2(halfWidth * 0.4f, halfHeight * 0.8f); // 默认第二个控制点,位于右上。
+ P3 = new Vector2(halfWidth * 0.8f, -halfHeight * 0.5f); // 默认终止点,位于右下。
- segmentCount = 50;
+ segmentCount = 50; // 设置默认的曲线段数。
- GenerateCurvePoints(); // 立即生成曲线
+ GenerateCurvePoints(); // 立即根据默认设置生成并显示曲线。
}
}
-
-}
\ No newline at end of file
+}