【建造】完善

iOS_release
zhangaotian 2024-08-19 17:25:46 +08:00
parent ad582c9051
commit cd22bda050
21 changed files with 600 additions and 121 deletions

View File

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 KiB

View File

@ -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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 585 KiB

View File

@ -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:

View File

@ -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:

View File

@ -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
}

View File

@ -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

View File

@ -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";

View File

@ -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";

View File

@ -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<SpriteRenderer>().sortingOrder;
if (collider.gameObject.layer == LayerMask.NameToLayer("BuildItem") &&
colliderOrderInLayer > highestOrderInLayer &&
!BuildManager.Instance.IsChanging)
colliderOrderInLayer > highestOrderInLayer)
{
highestOrderInLayer = colliderOrderInLayer;
highestPriorityObject = collider.gameObject;

View File

@ -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);

View File

@ -41,6 +41,9 @@ public class UIStartMainController : UIWindow
var sprite = BuildManager.Instance.CurBlueprint;
if (sprite != null)
FindObj("ResultPanel/Img_Blueprint").GetComponent<Image>().sprite = sprite;
var topSprite = BuildManager.Instance.CurTopBuildUI;
if (topSprite != null)
FindObj("UI_LiuHaiTop/BG_Top").GetComponent<Image>().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));

View File

@ -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<string, NodeInfo> NodeInfos;
public NodeInfo CurIUnlockNodeInfo;
public bool IsChanging = false;
/// <summary>
/// 更换场景
/// 玩家存盘选择信息
/// </summary>
public bool ChangeBuildSceneID;
public DataBuild BuildConfig;
//玩家存盘选择信息
private UserBuildInfo _userBuildInfo;
public UserBuildInfo UserBuildInfo
{
get => _userBuildInfo;
private set => _userBuildInfo = value;
}
private UserBuildInfo _userBuildInfo;
/// <summary>
/// 当前主题玩家选择情况
/// </summary>
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;
/// <summary>
/// 更换场景
/// </summary>
public bool ChangeBuildSceneID;
//动态加载的图标
private Dictionary<string, Sprite> _iconSprites;
/// <summary>
/// 已达到的条件
/// </summary>
public int ReachCondition { get; private set; } = -1;
//当前场景蓝图
/// <summary>
/// 当前场景蓝图
/// </summary>
public Sprite CurBlueprint;
//Build场景相机
/// <summary>
/// 当前场景顶栏图片
/// </summary>
public Sprite CurTopBuildUI;
/// <summary>
/// Build场景相机
/// </summary>
public Camera CurBuildCamera;
/// <summary>
/// 当前场景节点信息
/// </summary>
private Dictionary<string, NodeInfo> _nodeInfos;
/// <summary>
///动态加载的图标
/// </summary>
private Dictionary<string, Sprite> _iconSprites;
/// <summary>
/// 已经加载的资源
/// </summary>
private readonly List<string> _loadAssets = new List<string>();
private BuildData _curBuildData;
private bool _isInit;
private bool _isInGame;
private void InitForStorage()
{
if (_isInit) return;
DebugUtil.LogError("读取本地信息");
_userBuildInfo = StorageManager.Instance.GetStorage<UserBuildInfo>(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<BuildData>(buildConfig.BuildData);
await Init(buildData, true);
await Addressables.LoadSceneAsync(buildConfig.Path).ToUniTask();
@ -281,16 +275,30 @@ namespace Framework.Manager
StorageManager.Instance.SaveWithoutUpdate();
}
/// <summary>
/// 获取存盘信息
/// </summary>
private void InitForStorage()
{
if (_isInit) return;
_userBuildInfo = StorageManager.Instance.GetStorage<UserBuildInfo>(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<string, NodeInfo>();
_nodeInfos = new Dictionary<string, NodeInfo>();
_iconSprites = new Dictionary<string, Sprite>();
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
/// <summary>
/// 初始化存盘信息
/// 初始化选择信息
/// </summary>
private void InitUserBuildInfo()
{
try
{
if (!_isInGame)
{
StorageManager.Instance.Init();
_userBuildInfo = StorageManager.Instance.GetStorage<UserBuildInfo>(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
}
/// <summary>
/// 加载当前场景蓝图
/// 加载当前场景蓝图和对应UI
/// </summary>
private async void InitBlueprint()
{
try
{
var path = string.Format(Constants.PathConstants.BuildBlueprint, _curBuildData.buildID);
CurBlueprint = await AssetManager.Instance.LoadAssetAsync<Sprite>(path);
var bluePath = string.Format(Constants.PathConstants.BuildBlueprint, _curBuildData.buildID);
CurBlueprint = await AssetManager.Instance.LoadAssetAsync<Sprite>(bluePath);
var buildUIPath = string.Format(PathConstants.BuildTopUIPath, _curBuildData.buildID);
CurTopBuildUI = await AssetManager.Instance.LoadAssetAsync<Sprite>(buildUIPath);
_loadAssets.Add(bluePath);
_loadAssets.Add(buildUIPath);
}
catch (Exception e)
{
@ -497,22 +513,12 @@ namespace Framework.Manager
}
}
/// <summary>
/// 更换建造场景
/// </summary>
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();
}
/// <summary>
/// 获得选项Icon图标
/// </summary>
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;
}
/// <summary>
/// 保存节点
/// </summary>
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;
}
/// <summary>
@ -628,7 +637,7 @@ namespace Framework.Manager
/// </summary>
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);
}
}
}
}

View File

@ -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