diff --git a/Forest/Assets/Art/GameBuild/Texture/BuildUI/Build_Top.png b/Forest/Assets/Art/GameBuild/Texture/BuildUI/Build_1.png similarity index 100% rename from Forest/Assets/Art/GameBuild/Texture/BuildUI/Build_Top.png rename to Forest/Assets/Art/GameBuild/Texture/BuildUI/Build_1.png diff --git a/Forest/Assets/Art/GameBuild/Texture/BuildUI/Build_Top.png.meta b/Forest/Assets/Art/GameBuild/Texture/BuildUI/Build_1.png.meta similarity index 100% rename from Forest/Assets/Art/GameBuild/Texture/BuildUI/Build_Top.png.meta rename to Forest/Assets/Art/GameBuild/Texture/BuildUI/Build_1.png.meta diff --git a/Forest/Assets/Art/GameBuild/Texture/BuildUI/Build_2.png b/Forest/Assets/Art/GameBuild/Texture/BuildUI/Build_2.png new file mode 100644 index 0000000..d9a4216 Binary files /dev/null and b/Forest/Assets/Art/GameBuild/Texture/BuildUI/Build_2.png differ diff --git a/Forest/Assets/Art/GameBuild/Texture/BuildUI/Build_2.png.meta b/Forest/Assets/Art/GameBuild/Texture/BuildUI/Build_2.png.meta new file mode 100644 index 0000000..7337430 --- /dev/null +++ b/Forest/Assets/Art/GameBuild/Texture/BuildUI/Build_2.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: 58e07e266563c4cba910cbb9acd2afc5 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + 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: 1 + 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: 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: 3 + 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: 3 + 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 + - serializedVersion: 3 + buildTarget: iPhone + 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: 3 + buildTarget: Android + 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: 3 + buildTarget: Server + 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: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Forest/Assets/Art/GameBuild/Texture/Build_2/Node5/Normal/Option1.png.meta b/Forest/Assets/Art/GameBuild/Texture/Build_2/Node5/Normal/Option1.png.meta index a4cb103..fa42466 100644 --- a/Forest/Assets/Art/GameBuild/Texture/Build_2/Node5/Normal/Option1.png.meta +++ b/Forest/Assets/Art/GameBuild/Texture/Build_2/Node5/Normal/Option1.png.meta @@ -48,7 +48,7 @@ TextureImporter: spriteMeshType: 1 alignment: 0 spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 155 + spritePixelsToUnits: 160 spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 diff --git a/Forest/Assets/Art/GameBuild/Texture/Build_2/Node5/Normal/Option2.png.meta b/Forest/Assets/Art/GameBuild/Texture/Build_2/Node5/Normal/Option2.png.meta index 6225924..274f46c 100644 --- a/Forest/Assets/Art/GameBuild/Texture/Build_2/Node5/Normal/Option2.png.meta +++ b/Forest/Assets/Art/GameBuild/Texture/Build_2/Node5/Normal/Option2.png.meta @@ -48,7 +48,7 @@ TextureImporter: spriteMeshType: 1 alignment: 0 spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 155 + spritePixelsToUnits: 160 spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 diff --git a/Forest/Assets/Art/GameBuild/Texture/Build_2/Node5/Normal/Option3.png.meta b/Forest/Assets/Art/GameBuild/Texture/Build_2/Node5/Normal/Option3.png.meta index 433f876..184cc44 100644 --- a/Forest/Assets/Art/GameBuild/Texture/Build_2/Node5/Normal/Option3.png.meta +++ b/Forest/Assets/Art/GameBuild/Texture/Build_2/Node5/Normal/Option3.png.meta @@ -48,7 +48,7 @@ TextureImporter: spriteMeshType: 1 alignment: 0 spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 155 + spritePixelsToUnits: 170 spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 diff --git a/Forest/Assets/Art/Texture/Other/Title_CN.png b/Forest/Assets/Art/Texture/Other/Title_CN.png new file mode 100644 index 0000000..79bc081 Binary files /dev/null and b/Forest/Assets/Art/Texture/Other/Title_CN.png differ diff --git a/Forest/Assets/Art/Texture/Other/Title_CN.png.meta b/Forest/Assets/Art/Texture/Other/Title_CN.png.meta new file mode 100644 index 0000000..77fe101 --- /dev/null +++ b/Forest/Assets/Art/Texture/Other/Title_CN.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: 50a04592501344405948b77d73a61b91 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + 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: 1 + 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: 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: 3 + 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: 3 + 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 + - serializedVersion: 3 + buildTarget: iPhone + 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: 3 + buildTarget: Android + 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: 3 + buildTarget: Server + 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: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Forest/Assets/Art/Texture/Other/Title_EN.png b/Forest/Assets/Art/Texture/Other/Title_EN.png new file mode 100644 index 0000000..80a7276 Binary files /dev/null and b/Forest/Assets/Art/Texture/Other/Title_EN.png differ diff --git a/Forest/Assets/Art/Texture/Other/Title_EN.png.meta b/Forest/Assets/Art/Texture/Other/Title_EN.png.meta new file mode 100644 index 0000000..015f4ba --- /dev/null +++ b/Forest/Assets/Art/Texture/Other/Title_EN.png.meta @@ -0,0 +1,153 @@ +fileFormatVersion: 2 +guid: d5c87d6905cca4400ad7e2576a7bc679 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + 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: 1 + 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: 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: 3 + 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: 3 + 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 + - serializedVersion: 3 + buildTarget: iPhone + 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: 3 + buildTarget: Android + 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: 3 + buildTarget: Server + 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: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Forest/Assets/Art/UI/Prefab/UIStartMain.prefab b/Forest/Assets/Art/UI/Prefab/UIStartMain.prefab index b60101a..41f4fb0 100644 --- a/Forest/Assets/Art/UI/Prefab/UIStartMain.prefab +++ b/Forest/Assets/Art/UI/Prefab/UIStartMain.prefab @@ -653,7 +653,7 @@ RectTransform: m_AnchorMin: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: -14, y: -177} - m_SizeDelta: {x: 140, y: 150} + m_SizeDelta: {x: 130, y: 140} m_Pivot: {x: 1, y: 1} --- !u!222 &1903253691253264977 CanvasRenderer: @@ -772,7 +772,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 14, y: -249} + m_AnchoredPosition: {x: 14, y: -177} m_SizeDelta: {x: 173, y: 167} m_Pivot: {x: 0, y: 1} --- !u!222 &1893356969540545168 @@ -892,8 +892,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -14, y: -362} - m_SizeDelta: {x: 135, y: 146.4} + m_AnchoredPosition: {x: -14, y: -337} + m_SizeDelta: {x: 120, y: 130} m_Pivot: {x: 1, y: 1} --- !u!222 &8550582288838996399 CanvasRenderer: @@ -1132,8 +1132,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -14, y: -544} - m_SizeDelta: {x: 135, y: 146.4} + m_AnchoredPosition: {x: -14, y: -492} + m_SizeDelta: {x: 120, y: 130} m_Pivot: {x: 1, y: 1} --- !u!222 &2455664696496169119 CanvasRenderer: @@ -1453,8 +1453,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -14, y: -727} - m_SizeDelta: {x: 135, y: 146.4} + m_AnchoredPosition: {x: -14, y: -652} + m_SizeDelta: {x: 120, y: 130} m_Pivot: {x: 1, y: 1} --- !u!222 &6828308066492797863 CanvasRenderer: diff --git a/Forest/Assets/Config/Build/Build_2.json b/Forest/Assets/Config/Build/Build_2.json index abe38d0..0eee6f6 100644 --- a/Forest/Assets/Config/Build/Build_2.json +++ b/Forest/Assets/Config/Build/Build_2.json @@ -6,22 +6,22 @@ "unlockConditionType": 0, "unlockInfos": [ { - "condition": 0, + "condition": 1, "conditionGroup": 1, "preGroup": 0 }, { - "condition": 40, + "condition": 12, "conditionGroup": 2, "preGroup": 1 }, { - "condition": 40, + "condition": 30, "conditionGroup": 3, "preGroup": 2 }, { - "condition": 60, + "condition": 40, "conditionGroup": 4, "preGroup": 3 }, @@ -31,17 +31,17 @@ "preGroup": 4 }, { - "condition": 40, + "condition": 80, "conditionGroup": 6, "preGroup": 5 }, { - "condition": 100, + "condition": 110, "conditionGroup": 7, "preGroup": 6 }, { - "condition": 60, + "condition": 135, "conditionGroup": 8, "preGroup": 7 } diff --git a/Forest/Assets/Scenes/Build/Build_2.unity b/Forest/Assets/Scenes/Build/Build_2.unity index acbcc79..d67fdec 100644 --- a/Forest/Assets/Scenes/Build/Build_2.unity +++ b/Forest/Assets/Scenes/Build/Build_2.unity @@ -232,7 +232,7 @@ Transform: m_GameObject: {fileID: 57514223} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: -0.065, y: -0.035, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -1098,7 +1098,7 @@ Transform: m_GameObject: {fileID: 232076389} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 2.18, y: -0.33000004, z: 0} + m_LocalPosition: {x: 2.18, y: -0.6, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -1281,7 +1281,7 @@ Transform: m_GameObject: {fileID: 272746144} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: -0.93000007, z: 0} + m_LocalPosition: {x: 0, y: -1.2, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -1348,7 +1348,7 @@ Transform: m_GameObject: {fileID: 288485643} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0.023, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -1873,7 +1873,7 @@ PolygonCollider2D: m_SpriteTilingProperty: border: {x: 0, y: 0, z: 0, w: 0} pivot: {x: 0.5, y: 0.5} - oldSize: {x: 0.87741935, y: 1.1225806} + oldSize: {x: 0.8, y: 1.0235294} newSize: {x: 0.87741935, y: 1.1225806} adaptiveTilingThreshold: 0.5 drawMode: 0 @@ -2159,7 +2159,7 @@ Transform: m_GameObject: {fileID: 492531807} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0, y: -0.061, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -2343,7 +2343,7 @@ Transform: m_GameObject: {fileID: 622643308} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.15, y: -1.75, z: 0} + m_LocalPosition: {x: 0.15, y: -2.02, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -2424,7 +2424,7 @@ Transform: m_GameObject: {fileID: 645385635} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.7, y: -0.987, z: 0} + m_LocalPosition: {x: 0.7, y: -1.257, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -2954,7 +2954,7 @@ Transform: m_GameObject: {fileID: 795774759} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0.124, y: -0.04, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -3578,7 +3578,7 @@ Transform: m_GameObject: {fileID: 835659858} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: -0.048, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -3931,7 +3931,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!4 &861651578 Transform: m_ObjectHideFlags: 0 @@ -3941,7 +3941,7 @@ Transform: m_GameObject: {fileID: 861651577} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.072, z: 0} + m_LocalPosition: {x: 0.128, y: 0.072, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -4397,7 +4397,7 @@ PolygonCollider2D: m_SpriteTilingProperty: border: {x: 0, y: 0, z: 0, w: 0} pivot: {x: 0.5, y: 0.5} - oldSize: {x: 0.66451615, y: 0.82580644} + oldSize: {x: 0.64375, y: 0.8} newSize: {x: 0.66451615, y: 0.82580644} adaptiveTilingThreshold: 0.5 drawMode: 0 @@ -4979,7 +4979,7 @@ Transform: m_GameObject: {fileID: 1152319428} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.61, y: 1.179, z: 0} + m_LocalPosition: {x: 0.61, y: 0.90900004, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -6133,7 +6133,7 @@ PolygonCollider2D: m_SpriteTilingProperty: border: {x: 0, y: 0, z: 0, w: 0} pivot: {x: 0.5, y: 0.5} - oldSize: {x: 0.4064516, y: 1.5741936} + oldSize: {x: 0.39375, y: 1.525} newSize: {x: 0.4064516, y: 1.5741936} adaptiveTilingThreshold: 0.5 drawMode: 0 @@ -6330,7 +6330,7 @@ Transform: m_GameObject: {fileID: 1474218383} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0.61, y: 0.733, z: 0} + m_LocalPosition: {x: -0.61, y: 0.463, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -6397,7 +6397,7 @@ Transform: m_GameObject: {fileID: 1566294588} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: -0.121, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -6461,7 +6461,7 @@ Transform: m_GameObject: {fileID: 1663189117} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -2.01, y: -0.02000004, z: 0} + m_LocalPosition: {x: -2.01, y: -0.29000002, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -6655,7 +6655,7 @@ Transform: m_GameObject: {fileID: 1848807319} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.78, y: 0.411, z: 0} + m_LocalPosition: {x: 0.78, y: 0.14100003, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -6898,7 +6898,7 @@ Transform: m_GameObject: {fileID: 2065832132} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: -0.056, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -7062,7 +7062,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!4 &2141119424 Transform: m_ObjectHideFlags: 0 diff --git a/Forest/Assets/Scripts/Framework/Constants/Constants.Normal.cs b/Forest/Assets/Scripts/Framework/Constants/Constants.Normal.cs index 52f22ec..32a2701 100644 --- a/Forest/Assets/Scripts/Framework/Constants/Constants.Normal.cs +++ b/Forest/Assets/Scripts/Framework/Constants/Constants.Normal.cs @@ -6,8 +6,7 @@ namespace Framework.Constants public const float DesignResolutionHeight = 1920; public const string UserBuildSaveKey = "UserBuildInfo"; - public const string DefaultBuildID = "Build_1"; - + //多语言 public const string Chinese = "简体中文"; public const string English = "English"; diff --git a/Forest/Assets/Scripts/Framework/Constants/Constants.Path.cs b/Forest/Assets/Scripts/Framework/Constants/Constants.Path.cs index f962b01..9e82108 100644 --- a/Forest/Assets/Scripts/Framework/Constants/Constants.Path.cs +++ b/Forest/Assets/Scripts/Framework/Constants/Constants.Path.cs @@ -18,6 +18,7 @@ namespace Framework.Constants public const string SceneBuildPath = "Assets/Scenes/Build/{0}.unity"; public const string BuildConfigPath = "Assets/Config/Build/{0}.json"; public const string BuildBlueprint = "Assets/Art/GameBuild/Texture/Blueprint/{0}.png"; + public const string BuildTopUIPath = "Assets/Art/GameBuild/Texture/BuildUI/{0}.png"; public const string UIPrefabPath = "Assets/Art/UI/Prefab/{0}.prefab"; public const string ItemPrefabPath = "Assets/Art/LevelItem/{0}.prefab"; diff --git a/Forest/Assets/Scripts/Framework/Manager/InputManager.cs b/Forest/Assets/Scripts/Framework/Manager/InputManager.cs index bd14224..f0eee52 100644 --- a/Forest/Assets/Scripts/Framework/Manager/InputManager.cs +++ b/Forest/Assets/Scripts/Framework/Manager/InputManager.cs @@ -112,8 +112,7 @@ namespace Framework.Manager break; } - if (collider.gameObject.layer == LayerMask.NameToLayer("BuildBubble") && - !BuildManager.Instance.IsChanging) + if (collider.gameObject.layer == LayerMask.NameToLayer("BuildBubble")) { highestPriorityObject = collider.gameObject; break; @@ -122,8 +121,7 @@ namespace Framework.Manager int colliderOrderInLayer = collider.gameObject.GetComponent().sortingOrder; if (collider.gameObject.layer == LayerMask.NameToLayer("BuildItem") && - colliderOrderInLayer > highestOrderInLayer && - !BuildManager.Instance.IsChanging) + colliderOrderInLayer > highestOrderInLayer) { highestOrderInLayer = colliderOrderInLayer; highestPriorityObject = collider.gameObject; diff --git a/Forest/Assets/Scripts/Framework/State/GameStateStart.cs b/Forest/Assets/Scripts/Framework/State/GameStateStart.cs index ce59548..4610eda 100644 --- a/Forest/Assets/Scripts/Framework/State/GameStateStart.cs +++ b/Forest/Assets/Scripts/Framework/State/GameStateStart.cs @@ -1,4 +1,5 @@ using Gameplay.LoadingExecutor; +using Framework.Manager; using Framework.State; using Framework.UI; @@ -27,6 +28,7 @@ namespace Gameplay.Game public void OnExit() { + BuildManager.Instance.Release(); UIManager.Instance.CloseAllUI(true); GfxManager.Instance.ReturnGfxObj("Effect_MainCharacter", true); GfxManager.Instance.ReturnGfxObj("Effect_SelectSequin", true); diff --git a/Forest/Assets/Scripts/Framework/UI/StartPanel/UIStartMainController.cs b/Forest/Assets/Scripts/Framework/UI/StartPanel/UIStartMainController.cs index 6f40798..37fb514 100644 --- a/Forest/Assets/Scripts/Framework/UI/StartPanel/UIStartMainController.cs +++ b/Forest/Assets/Scripts/Framework/UI/StartPanel/UIStartMainController.cs @@ -41,6 +41,9 @@ public class UIStartMainController : UIWindow var sprite = BuildManager.Instance.CurBlueprint; if (sprite != null) FindObj("ResultPanel/Img_Blueprint").GetComponent().sprite = sprite; + var topSprite = BuildManager.Instance.CurTopBuildUI; + if (topSprite != null) + FindObj("UI_LiuHaiTop/BG_Top").GetComponent().sprite = topSprite; BindButton("ResultPanel/Img_Blueprint/Btn_Close", () => { _blueprint.SetActive(false); }); } @@ -79,7 +82,6 @@ public class UIStartMainController : UIWindow private void ChangeBuildScene() { - DebugUtil.LogError("切换场景"); BuildManager.Instance.ChangeBuildSceneID = true; var buildID = BuildManager.Instance.BuildInfo.BuildSceneID.Equals("Build_2") ? "Build_1" : "Build_2"; GameStateManager.Instance.ChangeState(new GameStateStart(buildID: buildID)); diff --git a/Forest/Assets/Scripts/Gameplay2/BuildManager.cs b/Forest/Assets/Scripts/Gameplay2/BuildManager.cs index 19f33d7..7136876 100644 --- a/Forest/Assets/Scripts/Gameplay2/BuildManager.cs +++ b/Forest/Assets/Scripts/Gameplay2/BuildManager.cs @@ -161,7 +161,7 @@ namespace Framework.Manager public class BuildManager { - public const string UserBuildSaveKey = "UserBuildInfo"; + private const string UserBuildSaveKey = "UserBuildInfo"; private const string NodeName = "Node{0}"; private const string OptionName = "Option{0}"; @@ -180,78 +180,74 @@ namespace Framework.Manager } } - public Dictionary NodeInfos; - - public NodeInfo CurIUnlockNodeInfo; - - public bool IsChanging = false; - /// - /// 更换场景 + /// 玩家存盘选择信息 /// - public bool ChangeBuildSceneID; - - public DataBuild BuildConfig; - - //玩家存盘选择信息 - private UserBuildInfo _userBuildInfo; - public UserBuildInfo UserBuildInfo { get => _userBuildInfo; private set => _userBuildInfo = value; } + private UserBuildInfo _userBuildInfo; + /// /// 当前主题玩家选择情况 /// - private BuildInfo _curBuildInfo; - public BuildInfo BuildInfo { get => _curBuildInfo; private set => _curBuildInfo = value; } - //已达到的条件 - public int ReachCondition - { - get => _reachCondition; - private set => _reachCondition = value; - } + private BuildInfo _curBuildInfo; - private int _reachCondition = -1; + /// + /// 更换场景 + /// + public bool ChangeBuildSceneID; - //动态加载的图标 - private Dictionary _iconSprites; + /// + /// 已达到的条件 + /// + public int ReachCondition { get; private set; } = -1; - //当前场景蓝图 + /// + /// 当前场景蓝图 + /// public Sprite CurBlueprint; - //Build场景相机 + /// + /// 当前场景顶栏图片 + /// + public Sprite CurTopBuildUI; + + /// + /// Build场景相机 + /// public Camera CurBuildCamera; + /// + /// 当前场景节点信息 + /// + private Dictionary _nodeInfos; + + /// + ///动态加载的图标 + /// + private Dictionary _iconSprites; + + /// + /// 已经加载的资源 + /// + private readonly List _loadAssets = new List(); + private BuildData _curBuildData; private bool _isInit; private bool _isInGame; - - private void InitForStorage() - { - if (_isInit) return; - DebugUtil.LogError("读取本地信息"); - _userBuildInfo = StorageManager.Instance.GetStorage(NormalConstants.UserBuildSaveKey); - _userBuildInfo ??= new UserBuildInfo(); - if (string.IsNullOrEmpty(_userBuildInfo.CurBuildId)) - { - _userBuildInfo.CurBuildId = TableManager.Instance.Tables.BuildConfig.DataList[0].ID; - DebugUtil.LogError("无存盘信息, 读默认表:{0}", _userBuildInfo.CurBuildId); - } - } - public async UniTask LoadBuild(string buildID, int reachCondition) { - DebugUtil.LogError("加载{0}", buildID); InitForStorage(); var buildConfigId = !string.IsNullOrEmpty(buildID) ? buildID : _userBuildInfo.CurBuildId; @@ -272,8 +268,6 @@ namespace Framework.Manager UpdateReachCondition(reachCondition); } - DebugUtil.LogError("加载的场景路径:{0}", buildConfig.Path); - var buildData = await JsonHelper.LoadFromAddressable(buildConfig.BuildData); await Init(buildData, true); await Addressables.LoadSceneAsync(buildConfig.Path).ToUniTask(); @@ -281,16 +275,30 @@ namespace Framework.Manager StorageManager.Instance.SaveWithoutUpdate(); } + /// + /// 获取存盘信息 + /// + private void InitForStorage() + { + if (_isInit) return; + _userBuildInfo = StorageManager.Instance.GetStorage(NormalConstants.UserBuildSaveKey); + _userBuildInfo ??= new UserBuildInfo(); + if (string.IsNullOrEmpty(_userBuildInfo.CurBuildId)) + { + _userBuildInfo.CurBuildId = TableManager.Instance.Tables.BuildConfig.DataList[0].ID; + DebugUtil.LogError("无存盘信息, 读默认表:{0}", _userBuildInfo.CurBuildId); + } + } + public async UniTask Init(BuildData buildData, bool inGame = false) { if (_isInit && !ChangeBuildSceneID) return; _isInGame = inGame; _curBuildData = buildData; - NodeInfos = new Dictionary(); + _nodeInfos = new Dictionary(); _iconSprites = new Dictionary(); - InitNodesInfo(); InitUserBuildInfo(); InitCondition(); @@ -330,7 +338,7 @@ namespace Framework.Manager nodeInfo.Options.Add(option, optionInfo); } - NodeInfos.Add(nodeInfo.Name, nodeInfo); + _nodeInfos.Add(nodeInfo.Name, nodeInfo); } } catch (Exception e) @@ -341,14 +349,18 @@ namespace Framework.Manager /// - /// 初始化存盘信息 + /// 初始化选择信息 /// private void InitUserBuildInfo() { try { if (!_isInGame) + { + StorageManager.Instance.Init(); _userBuildInfo = StorageManager.Instance.GetStorage(UserBuildSaveKey); + } + if (_userBuildInfo == null) { var buildId = _curBuildData.buildID; @@ -362,7 +374,7 @@ namespace Framework.Manager _userBuildInfo.AllChooseNodeInfo.TryAdd(curBuildID, new BuildInfo(curBuildID)); } - foreach (var nodeInfo in NodeInfos) + foreach (var nodeInfo in _nodeInfos) { if (_userBuildInfo.AllChooseNodeInfo[curBuildID].ChooseNodeInfo .TryGetValue(nodeInfo.Key, out var option)) @@ -398,7 +410,7 @@ namespace Framework.Manager foreach (var unlockInfo in _curBuildData.unlockInfos) { var nodeName = string.Format(NodeName, unlockInfo.conditionGroup); - if (NodeInfos.TryGetValue(nodeName, out var nodeInfo)) + if (_nodeInfos.TryGetValue(nodeName, out var nodeInfo)) { nodeInfo.Condition = unlockInfo.condition; var nextNode = string.Format(NodeName, unlockInfo.preGroup); @@ -414,7 +426,7 @@ namespace Framework.Manager foreach (var unlockInfo in _curBuildData.unlockInfos) { var optionName = string.Format(OptionName, unlockInfo.conditionGroup); - foreach (var nodeInfo in NodeInfos.Values) + foreach (var nodeInfo in _nodeInfos.Values) { if (nodeInfo.Options.TryGetValue(optionName, out var optionInfo)) { @@ -446,7 +458,7 @@ namespace Framework.Manager { try { - foreach (var nodeInfo in NodeInfos.Values) + foreach (var nodeInfo in _nodeInfos.Values) { foreach (var optionInfo in nodeInfo.Options.Values) { @@ -482,14 +494,18 @@ namespace Framework.Manager } /// - /// 加载当前场景蓝图 + /// 加载当前场景蓝图和对应UI /// private async void InitBlueprint() { try { - var path = string.Format(Constants.PathConstants.BuildBlueprint, _curBuildData.buildID); - CurBlueprint = await AssetManager.Instance.LoadAssetAsync(path); + var bluePath = string.Format(Constants.PathConstants.BuildBlueprint, _curBuildData.buildID); + CurBlueprint = await AssetManager.Instance.LoadAssetAsync(bluePath); + var buildUIPath = string.Format(PathConstants.BuildTopUIPath, _curBuildData.buildID); + CurTopBuildUI = await AssetManager.Instance.LoadAssetAsync(buildUIPath); + _loadAssets.Add(bluePath); + _loadAssets.Add(buildUIPath); } catch (Exception e) { @@ -497,22 +513,12 @@ namespace Framework.Manager } } - /// - /// 更换建造场景 - /// - public async void ChangeBuildScene() - { - var buildId = _curBuildData.buildID.Equals(NormalConstants.DefaultBuildID) ? "Build_2" : "Build_1"; - var buildPath = string.Format(Framework.Constants.PathConstants.SceneBuildPath, buildId); - await Addressables.LoadSceneAsync(buildPath).ToUniTask(); - } - /// /// 获得选项Icon图标 /// public Sprite GetOptionIcon(string nodeName, string optionName) { - if (NodeInfos.TryGetValue(nodeName, out var nodeInfo)) + if (_nodeInfos.TryGetValue(nodeName, out var nodeInfo)) { if (nodeInfo.Options.TryGetValue(optionName, out var optionInfo)) { @@ -530,7 +536,7 @@ namespace Framework.Manager public int GetCondition(string nodeName) { var condition = 0; - if (NodeInfos.TryGetValue(nodeName, out var nodeInfo)) + if (_nodeInfos.TryGetValue(nodeName, out var nodeInfo)) { condition = nodeInfo.Condition; } @@ -538,12 +544,15 @@ namespace Framework.Manager return condition; } + /// + /// 保存节点 + /// public void SaveNodeInfo(string node, string option) { if (_curBuildInfo.ChooseNodeInfo.TryGetValue(node, out var oldOption)) { _curBuildInfo.ChooseNodeInfo[node] = option; - DebugUtil.LogY($"节点{node}保存了{option}选择"); + DebugUtil.LogY($"场景{_userBuildInfo.CurBuildId}中的节点{node}保存了{option}选择"); } else { @@ -565,7 +574,7 @@ namespace Framework.Manager { case UnlockType.ForGroup: { - foreach (var node in NodeInfos) + foreach (var node in _nodeInfos) { if (_curBuildInfo.ChooseNodeInfo.TryGetValue(node.Key, out var curNode) && _curBuildInfo.ChooseNodeInfo.TryGetValue(node.Value.PreGroup, out var preNode)) @@ -579,7 +588,7 @@ namespace Framework.Manager } } - var firstNode = NodeInfos + var firstNode = _nodeInfos .OrderBy(kv => kv.Value.Condition) .FirstOrDefault(); @@ -601,7 +610,7 @@ namespace Framework.Manager public void UpdateReachCondition(int condition) { //TODO 分场景 、解锁类型、解锁条件 - _reachCondition = condition; + ReachCondition = condition; } /// @@ -628,7 +637,7 @@ namespace Framework.Manager /// public void ClearOption() { - foreach (var node in NodeInfos) + foreach (var node in _nodeInfos) { if (_curBuildInfo.ChooseNodeInfo.TryGetValue(node.Key, out var option)) _curBuildInfo.ChooseNodeInfo[node.Key] = ""; @@ -648,6 +657,15 @@ namespace Framework.Manager public void Release() { + foreach (var icon in _iconSprites) + { + AssetManager.Instance.Unload(icon.Key); + } + + foreach (var ass in _loadAssets) + { + AssetManager.Instance.Unload(ass); + } } } } \ No newline at end of file diff --git a/Forest/Assets/Scripts/Gameplay2/GameBuild/BuildBoot.cs b/Forest/Assets/Scripts/Gameplay2/GameBuild/BuildBoot.cs index df6148e..b2d4ed4 100644 --- a/Forest/Assets/Scripts/Gameplay2/GameBuild/BuildBoot.cs +++ b/Forest/Assets/Scripts/Gameplay2/GameBuild/BuildBoot.cs @@ -323,10 +323,10 @@ public class BuildBoot : MonoBehaviour return; } - foreach (var choose in BuildManager.Instance.BuildInfo.ChooseNodeInfo) + /*foreach (var choose in BuildManager.Instance.BuildInfo.ChooseNodeInfo) { DebugUtil.LogError("{0} 的选择为: {1}", choose.Key, choose.Value); - } + }*/ CurCondition = BuildManager.Instance.ReachCondition < 0 ? CurCondition