feat: map editor (#56)
| @@ -96,19 +96,6 @@ TextureImporter: | |||||||
|     ignorePlatformSupport: 0 |     ignorePlatformSupport: 0 | ||||||
|     androidETC2FallbackOverride: 0 |     androidETC2FallbackOverride: 0 | ||||||
|     forceMaximumCompressionQuality_BC6H_BC7: 0 |     forceMaximumCompressionQuality_BC6H_BC7: 0 | ||||||
|   - serializedVersion: 4 |  | ||||||
|     buildTarget: WebGL |  | ||||||
|     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: |   spriteSheet: | ||||||
|     serializedVersion: 2 |     serializedVersion: 2 | ||||||
|     sprites: |     sprites: | ||||||
| @@ -147,8 +134,7 @@ TextureImporter: | |||||||
|     secondaryTextures: [] |     secondaryTextures: [] | ||||||
|     spriteCustomMetadata: |     spriteCustomMetadata: | ||||||
|       entries: [] |       entries: [] | ||||||
|     nameFileIdTable: |     nameFileIdTable: {} | ||||||
|       RegularBlock01_0: 229215520534054086 |  | ||||||
|   mipmapLimitGroupName:  |   mipmapLimitGroupName:  | ||||||
|   pSDRemoveMatte: 0 |   pSDRemoveMatte: 0 | ||||||
|   userData:  |   userData:  | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| fileFormatVersion: 2 | fileFormatVersion: 2 | ||||||
| guid: b51d2de513d090b4485816dbca782498 | guid: e0426acdd6d763946bab617252a0f5aa | ||||||
| TextureImporter: | TextureImporter: | ||||||
|   internalIDToNameTable: |   internalIDToNameTable: | ||||||
|   - first: |   - first: | ||||||
|       213: 6385790085498839582 |       213: 1925945982471551178 | ||||||
|     second: BlankSquare_0 |     second: BlankSquare 1_0 | ||||||
|   externalObjects: {} |   externalObjects: {} | ||||||
|   serializedVersion: 13 |   serializedVersion: 13 | ||||||
|   mipmaps: |   mipmaps: | ||||||
| @@ -96,24 +96,11 @@ TextureImporter: | |||||||
|     ignorePlatformSupport: 0 |     ignorePlatformSupport: 0 | ||||||
|     androidETC2FallbackOverride: 0 |     androidETC2FallbackOverride: 0 | ||||||
|     forceMaximumCompressionQuality_BC6H_BC7: 0 |     forceMaximumCompressionQuality_BC6H_BC7: 0 | ||||||
|   - serializedVersion: 4 |  | ||||||
|     buildTarget: WebGL |  | ||||||
|     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: |   spriteSheet: | ||||||
|     serializedVersion: 2 |     serializedVersion: 2 | ||||||
|     sprites: |     sprites: | ||||||
|     - serializedVersion: 2 |     - serializedVersion: 2 | ||||||
|       name: BlankSquare_0 |       name: BlankSquare 1_0 | ||||||
|       rect: |       rect: | ||||||
|         serializedVersion: 2 |         serializedVersion: 2 | ||||||
|         x: 0 |         x: 0 | ||||||
| @@ -128,8 +115,8 @@ TextureImporter: | |||||||
|       physicsShape: [] |       physicsShape: [] | ||||||
|       tessellationDetail: -1 |       tessellationDetail: -1 | ||||||
|       bones: [] |       bones: [] | ||||||
|       spriteID: e12ae58df32ee9850800000000000000 |       spriteID: ac8becdbaa55aba10800000000000000 | ||||||
|       internalID: 6385790085498839582 |       internalID: 1925945982471551178 | ||||||
|       vertices: [] |       vertices: [] | ||||||
|       indices:  |       indices:  | ||||||
|       edges: [] |       edges: [] | ||||||
| @@ -148,7 +135,7 @@ TextureImporter: | |||||||
|     spriteCustomMetadata: |     spriteCustomMetadata: | ||||||
|       entries: [] |       entries: [] | ||||||
|     nameFileIdTable: |     nameFileIdTable: | ||||||
|       BlankSquare_0: 6385790085498839582 |       BlankSquare 1_0: 1925945982471551178 | ||||||
|   mipmapLimitGroupName:  |   mipmapLimitGroupName:  | ||||||
|   pSDRemoveMatte: 0 |   pSDRemoveMatte: 0 | ||||||
|   userData:  |   userData:  | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								Assets/Resources/InGame/ButtonSkin/ExitButton.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 115 KiB | 
							
								
								
									
										156
									
								
								Assets/Resources/InGame/ButtonSkin/ExitButton.png.meta
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,156 @@ | |||||||
|  | fileFormatVersion: 2 | ||||||
|  | guid: fa5971280ed90e04cafadbd76400bed2 | ||||||
|  | TextureImporter: | ||||||
|  |   internalIDToNameTable: | ||||||
|  |   - first: | ||||||
|  |       213: 6385790085498839582 | ||||||
|  |     second: BlankSquare_0 | ||||||
|  |   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: 1 | ||||||
|  |   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 | ||||||
|  |   - serializedVersion: 4 | ||||||
|  |     buildTarget: WebGL | ||||||
|  |     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: | ||||||
|  |     - serializedVersion: 2 | ||||||
|  |       name: BlankSquare_0 | ||||||
|  |       rect: | ||||||
|  |         serializedVersion: 2 | ||||||
|  |         x: 0 | ||||||
|  |         y: 0 | ||||||
|  |         width: 512 | ||||||
|  |         height: 512 | ||||||
|  |       alignment: 0 | ||||||
|  |       pivot: {x: 0, y: 0} | ||||||
|  |       border: {x: 0, y: 0, z: 0, w: 0} | ||||||
|  |       customData:  | ||||||
|  |       outline: [] | ||||||
|  |       physicsShape: [] | ||||||
|  |       tessellationDetail: -1 | ||||||
|  |       bones: [] | ||||||
|  |       spriteID: e12ae58df32ee9850800000000000000 | ||||||
|  |       internalID: 6385790085498839582 | ||||||
|  |       vertices: [] | ||||||
|  |       indices:  | ||||||
|  |       edges: [] | ||||||
|  |       weights: [] | ||||||
|  |     outline: [] | ||||||
|  |     customData:  | ||||||
|  |     physicsShape: [] | ||||||
|  |     bones: [] | ||||||
|  |     spriteID:  | ||||||
|  |     internalID: 0 | ||||||
|  |     vertices: [] | ||||||
|  |     indices:  | ||||||
|  |     edges: [] | ||||||
|  |     weights: [] | ||||||
|  |     secondaryTextures: [] | ||||||
|  |     spriteCustomMetadata: | ||||||
|  |       entries: [] | ||||||
|  |     nameFileIdTable: | ||||||
|  |       BlankSquare_0: 6385790085498839582 | ||||||
|  |   mipmapLimitGroupName:  | ||||||
|  |   pSDRemoveMatte: 0 | ||||||
|  |   userData:  | ||||||
|  |   assetBundleName:  | ||||||
|  |   assetBundleVariant:  | ||||||
							
								
								
									
										
											BIN
										
									
								
								Assets/Resources/InGame/ButtonSkin/NewLevelButton 1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 13 KiB | 
							
								
								
									
										142
									
								
								Assets/Resources/InGame/ButtonSkin/NewLevelButton 1.png.meta
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,142 @@ | |||||||
|  | fileFormatVersion: 2 | ||||||
|  | guid: ada92be653a1d184391ae7f1f61e32bb | ||||||
|  | TextureImporter: | ||||||
|  |   internalIDToNameTable: | ||||||
|  |   - first: | ||||||
|  |       213: 4829622404114481491 | ||||||
|  |     second: NewLevelButton 1_0 | ||||||
|  |   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: 1 | ||||||
|  |   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: | ||||||
|  |     - serializedVersion: 2 | ||||||
|  |       name: NewLevelButton 1_0 | ||||||
|  |       rect: | ||||||
|  |         serializedVersion: 2 | ||||||
|  |         x: 15 | ||||||
|  |         y: 14 | ||||||
|  |         width: 483 | ||||||
|  |         height: 483 | ||||||
|  |       alignment: 0 | ||||||
|  |       pivot: {x: 0, y: 0} | ||||||
|  |       border: {x: 0, y: 0, z: 0, w: 0} | ||||||
|  |       customData:  | ||||||
|  |       outline: [] | ||||||
|  |       physicsShape: [] | ||||||
|  |       tessellationDetail: -1 | ||||||
|  |       bones: [] | ||||||
|  |       spriteID: 3510384fcf3460340800000000000000 | ||||||
|  |       internalID: 4829622404114481491 | ||||||
|  |       vertices: [] | ||||||
|  |       indices:  | ||||||
|  |       edges: [] | ||||||
|  |       weights: [] | ||||||
|  |     outline: [] | ||||||
|  |     customData:  | ||||||
|  |     physicsShape: [] | ||||||
|  |     bones: [] | ||||||
|  |     spriteID:  | ||||||
|  |     internalID: 0 | ||||||
|  |     vertices: [] | ||||||
|  |     indices:  | ||||||
|  |     edges: [] | ||||||
|  |     weights: [] | ||||||
|  |     secondaryTextures: [] | ||||||
|  |     spriteCustomMetadata: | ||||||
|  |       entries: [] | ||||||
|  |     nameFileIdTable: {} | ||||||
|  |   mipmapLimitGroupName:  | ||||||
|  |   pSDRemoveMatte: 0 | ||||||
|  |   userData:  | ||||||
|  |   assetBundleName:  | ||||||
|  |   assetBundleVariant:  | ||||||
							
								
								
									
										
											BIN
										
									
								
								Assets/Resources/InGame/ButtonSkin/PlayButton.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 266 KiB | 
							
								
								
									
										156
									
								
								Assets/Resources/InGame/ButtonSkin/PlayButton.png.meta
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,156 @@ | |||||||
|  | fileFormatVersion: 2 | ||||||
|  | guid: afd28cff37c57da4090ac3ddfdb8ee28 | ||||||
|  | TextureImporter: | ||||||
|  |   internalIDToNameTable: | ||||||
|  |   - first: | ||||||
|  |       213: -4781373940957465942 | ||||||
|  |     second: exit_0 | ||||||
|  |   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: 1 | ||||||
|  |   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 | ||||||
|  |   - serializedVersion: 4 | ||||||
|  |     buildTarget: WebGL | ||||||
|  |     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: | ||||||
|  |     - serializedVersion: 2 | ||||||
|  |       name: exit_0 | ||||||
|  |       rect: | ||||||
|  |         serializedVersion: 2 | ||||||
|  |         x: 31 | ||||||
|  |         y: 31 | ||||||
|  |         width: 298 | ||||||
|  |         height: 298 | ||||||
|  |       alignment: 0 | ||||||
|  |       pivot: {x: 0, y: 0} | ||||||
|  |       border: {x: 0, y: 0, z: 0, w: 0} | ||||||
|  |       customData:  | ||||||
|  |       outline: [] | ||||||
|  |       physicsShape: [] | ||||||
|  |       tessellationDetail: -1 | ||||||
|  |       bones: [] | ||||||
|  |       spriteID: aa2bbe6cbb525adb0800000000000000 | ||||||
|  |       internalID: -4781373940957465942 | ||||||
|  |       vertices: [] | ||||||
|  |       indices:  | ||||||
|  |       edges: [] | ||||||
|  |       weights: [] | ||||||
|  |     outline: [] | ||||||
|  |     customData:  | ||||||
|  |     physicsShape: [] | ||||||
|  |     bones: [] | ||||||
|  |     spriteID:  | ||||||
|  |     internalID: 0 | ||||||
|  |     vertices: [] | ||||||
|  |     indices:  | ||||||
|  |     edges: [] | ||||||
|  |     weights: [] | ||||||
|  |     secondaryTextures: [] | ||||||
|  |     spriteCustomMetadata: | ||||||
|  |       entries: [] | ||||||
|  |     nameFileIdTable: | ||||||
|  |       exit_0: -4781373940957465942 | ||||||
|  |   mipmapLimitGroupName:  | ||||||
|  |   pSDRemoveMatte: 0 | ||||||
|  |   userData:  | ||||||
|  |   assetBundleName:  | ||||||
|  |   assetBundleVariant:  | ||||||
							
								
								
									
										
											BIN
										
									
								
								Assets/Resources/InGame/ButtonSkin/SettingsButton.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 33 KiB | 
							
								
								
									
										156
									
								
								Assets/Resources/InGame/ButtonSkin/SettingsButton.png.meta
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,156 @@ | |||||||
|  | fileFormatVersion: 2 | ||||||
|  | guid: f34830d17508a4b478c164611c202e12 | ||||||
|  | TextureImporter: | ||||||
|  |   internalIDToNameTable: | ||||||
|  |   - first: | ||||||
|  |       213: 229215520534054086 | ||||||
|  |     second: RegularBlock01_0 | ||||||
|  |   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: 1 | ||||||
|  |   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 | ||||||
|  |   - serializedVersion: 4 | ||||||
|  |     buildTarget: WebGL | ||||||
|  |     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: | ||||||
|  |     - serializedVersion: 2 | ||||||
|  |       name: RegularBlock01_0 | ||||||
|  |       rect: | ||||||
|  |         serializedVersion: 2 | ||||||
|  |         x: 0 | ||||||
|  |         y: 0 | ||||||
|  |         width: 122 | ||||||
|  |         height: 122 | ||||||
|  |       alignment: 0 | ||||||
|  |       pivot: {x: 0, y: 0} | ||||||
|  |       border: {x: 0, y: 0, z: 0, w: 0} | ||||||
|  |       customData:  | ||||||
|  |       outline: [] | ||||||
|  |       physicsShape: [] | ||||||
|  |       tessellationDetail: -1 | ||||||
|  |       bones: [] | ||||||
|  |       spriteID: 6c4407e2d465e2300800000000000000 | ||||||
|  |       internalID: 229215520534054086 | ||||||
|  |       vertices: [] | ||||||
|  |       indices:  | ||||||
|  |       edges: [] | ||||||
|  |       weights: [] | ||||||
|  |     outline: [] | ||||||
|  |     customData:  | ||||||
|  |     physicsShape: [] | ||||||
|  |     bones: [] | ||||||
|  |     spriteID:  | ||||||
|  |     internalID: 0 | ||||||
|  |     vertices: [] | ||||||
|  |     indices:  | ||||||
|  |     edges: [] | ||||||
|  |     weights: [] | ||||||
|  |     secondaryTextures: [] | ||||||
|  |     spriteCustomMetadata: | ||||||
|  |       entries: [] | ||||||
|  |     nameFileIdTable: | ||||||
|  |       RegularBlock01_0: 229215520534054086 | ||||||
|  |   mipmapLimitGroupName:  | ||||||
|  |   pSDRemoveMatte: 0 | ||||||
|  |   userData:  | ||||||
|  |   assetBundleName:  | ||||||
|  |   assetBundleVariant:  | ||||||
| @@ -1,5 +1,5 @@ | |||||||
| fileFormatVersion: 2 | fileFormatVersion: 2 | ||||||
| guid: 1d7f8c8f8305efa4c8b78f4dd391c49b | guid: 1b21bd4ccae70934eb86a3a2a6928e98 | ||||||
| TextureImporter: | TextureImporter: | ||||||
|   internalIDToNameTable: |   internalIDToNameTable: | ||||||
|   - first: |   - first: | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								Assets/Resources/InGame/Pause.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 14 KiB | 
							
								
								
									
										156
									
								
								Assets/Resources/InGame/Pause.png.meta
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,156 @@ | |||||||
|  | fileFormatVersion: 2 | ||||||
|  | guid: 7fe0358ef92ff8a449d0bee123119795 | ||||||
|  | TextureImporter: | ||||||
|  |   internalIDToNameTable: | ||||||
|  |   - first: | ||||||
|  |       213: 2079131731516339571 | ||||||
|  |     second: SaveButton_0 | ||||||
|  |   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: 1 | ||||||
|  |   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 | ||||||
|  |   - serializedVersion: 4 | ||||||
|  |     buildTarget: WebGL | ||||||
|  |     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: | ||||||
|  |     - serializedVersion: 2 | ||||||
|  |       name: SaveButton_0 | ||||||
|  |       rect: | ||||||
|  |         serializedVersion: 2 | ||||||
|  |         x: 0 | ||||||
|  |         y: 0 | ||||||
|  |         width: 980 | ||||||
|  |         height: 982 | ||||||
|  |       alignment: 0 | ||||||
|  |       pivot: {x: 0, y: 0} | ||||||
|  |       border: {x: 0, y: 0, z: 0, w: 0} | ||||||
|  |       customData:  | ||||||
|  |       outline: [] | ||||||
|  |       physicsShape: [] | ||||||
|  |       tessellationDetail: -1 | ||||||
|  |       bones: [] | ||||||
|  |       spriteID: 375364a4b4f8adc10800000000000000 | ||||||
|  |       internalID: 2079131731516339571 | ||||||
|  |       vertices: [] | ||||||
|  |       indices:  | ||||||
|  |       edges: [] | ||||||
|  |       weights: [] | ||||||
|  |     outline: [] | ||||||
|  |     customData:  | ||||||
|  |     physicsShape: [] | ||||||
|  |     bones: [] | ||||||
|  |     spriteID:  | ||||||
|  |     internalID: 0 | ||||||
|  |     vertices: [] | ||||||
|  |     indices:  | ||||||
|  |     edges: [] | ||||||
|  |     weights: [] | ||||||
|  |     secondaryTextures: [] | ||||||
|  |     spriteCustomMetadata: | ||||||
|  |       entries: [] | ||||||
|  |     nameFileIdTable: | ||||||
|  |       SaveButton_0: 2079131731516339571 | ||||||
|  |   mipmapLimitGroupName:  | ||||||
|  |   pSDRemoveMatte: 0 | ||||||
|  |   userData:  | ||||||
|  |   assetBundleName:  | ||||||
|  |   assetBundleVariant:  | ||||||
| @@ -1,5 +1,5 @@ | |||||||
| fileFormatVersion: 2 | fileFormatVersion: 2 | ||||||
| guid: 7bbd15eb9b940f4c59561753a3d516ce | guid: bcd6c4da7709ff9458a5784f7f807e30 | ||||||
| TextureImporter: | TextureImporter: | ||||||
|   internalIDToNameTable: |   internalIDToNameTable: | ||||||
|   - first: |   - first: | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								Assets/Resources/InGame/Play.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 56 KiB | 
							
								
								
									
										156
									
								
								Assets/Resources/InGame/Play.png.meta
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,156 @@ | |||||||
|  | fileFormatVersion: 2 | ||||||
|  | guid: 6b64c942662170e44b2f80d605a405f4 | ||||||
|  | TextureImporter: | ||||||
|  |   internalIDToNameTable: | ||||||
|  |   - first: | ||||||
|  |       213: -2073137460773038770 | ||||||
|  |     second: PauseIcon_0 | ||||||
|  |   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: 1 | ||||||
|  |   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 | ||||||
|  |   - serializedVersion: 4 | ||||||
|  |     buildTarget: WebGL | ||||||
|  |     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: | ||||||
|  |     - serializedVersion: 2 | ||||||
|  |       name: PauseIcon_0 | ||||||
|  |       rect: | ||||||
|  |         serializedVersion: 2 | ||||||
|  |         x: 17 | ||||||
|  |         y: 19 | ||||||
|  |         width: 239 | ||||||
|  |         height: 218 | ||||||
|  |       alignment: 0 | ||||||
|  |       pivot: {x: 0, y: 0} | ||||||
|  |       border: {x: 0, y: 0, z: 0, w: 0} | ||||||
|  |       customData:  | ||||||
|  |       outline: [] | ||||||
|  |       physicsShape: [] | ||||||
|  |       tessellationDetail: -1 | ||||||
|  |       bones: [] | ||||||
|  |       spriteID: e455110a67cba33e0800000000000000 | ||||||
|  |       internalID: -2073137460773038770 | ||||||
|  |       vertices: [] | ||||||
|  |       indices:  | ||||||
|  |       edges: [] | ||||||
|  |       weights: [] | ||||||
|  |     outline: [] | ||||||
|  |     customData:  | ||||||
|  |     physicsShape: [] | ||||||
|  |     bones: [] | ||||||
|  |     spriteID:  | ||||||
|  |     internalID: 0 | ||||||
|  |     vertices: [] | ||||||
|  |     indices:  | ||||||
|  |     edges: [] | ||||||
|  |     weights: [] | ||||||
|  |     secondaryTextures: [] | ||||||
|  |     spriteCustomMetadata: | ||||||
|  |       entries: [] | ||||||
|  |     nameFileIdTable: | ||||||
|  |       PauseIcon_0: -2073137460773038770 | ||||||
|  |   mipmapLimitGroupName:  | ||||||
|  |   pSDRemoveMatte: 0 | ||||||
|  |   userData:  | ||||||
|  |   assetBundleName:  | ||||||
|  |   assetBundleVariant:  | ||||||
| @@ -96,19 +96,6 @@ TextureImporter: | |||||||
|     ignorePlatformSupport: 0 |     ignorePlatformSupport: 0 | ||||||
|     androidETC2FallbackOverride: 0 |     androidETC2FallbackOverride: 0 | ||||||
|     forceMaximumCompressionQuality_BC6H_BC7: 0 |     forceMaximumCompressionQuality_BC6H_BC7: 0 | ||||||
|   - serializedVersion: 4 |  | ||||||
|     buildTarget: WebGL |  | ||||||
|     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: |   spriteSheet: | ||||||
|     serializedVersion: 2 |     serializedVersion: 2 | ||||||
|     sprites: |     sprites: | ||||||
| @@ -147,8 +134,7 @@ TextureImporter: | |||||||
|     secondaryTextures: [] |     secondaryTextures: [] | ||||||
|     spriteCustomMetadata: |     spriteCustomMetadata: | ||||||
|       entries: [] |       entries: [] | ||||||
|     nameFileIdTable: |     nameFileIdTable: {} | ||||||
|       CubePortalLabelled_0: -799402021850825835 |  | ||||||
|   mipmapLimitGroupName:  |   mipmapLimitGroupName:  | ||||||
|   pSDRemoveMatte: 0 |   pSDRemoveMatte: 0 | ||||||
|   userData:  |   userData:  | ||||||
|   | |||||||
| @@ -96,19 +96,6 @@ TextureImporter: | |||||||
|     ignorePlatformSupport: 0 |     ignorePlatformSupport: 0 | ||||||
|     androidETC2FallbackOverride: 0 |     androidETC2FallbackOverride: 0 | ||||||
|     forceMaximumCompressionQuality_BC6H_BC7: 0 |     forceMaximumCompressionQuality_BC6H_BC7: 0 | ||||||
|   - serializedVersion: 4 |  | ||||||
|     buildTarget: WebGL |  | ||||||
|     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: |   spriteSheet: | ||||||
|     serializedVersion: 2 |     serializedVersion: 2 | ||||||
|     sprites: |     sprites: | ||||||
| @@ -147,8 +134,7 @@ TextureImporter: | |||||||
|     secondaryTextures: [] |     secondaryTextures: [] | ||||||
|     spriteCustomMetadata: |     spriteCustomMetadata: | ||||||
|       entries: [] |       entries: [] | ||||||
|     nameFileIdTable: |     nameFileIdTable: {} | ||||||
|       ShipPortalLabelled_0: -1834338360412052916 |  | ||||||
|   mipmapLimitGroupName:  |   mipmapLimitGroupName:  | ||||||
|   pSDRemoveMatte: 0 |   pSDRemoveMatte: 0 | ||||||
|   userData:  |   userData:  | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								Assets/Resources/InGame/Remove.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 16 KiB | 
							
								
								
									
										142
									
								
								Assets/Resources/InGame/Remove.png.meta
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,142 @@ | |||||||
|  | fileFormatVersion: 2 | ||||||
|  | guid: 79b56765ff1452848bd947d19c642244 | ||||||
|  | TextureImporter: | ||||||
|  |   internalIDToNameTable: | ||||||
|  |   - first: | ||||||
|  |       213: -6564193165698205349 | ||||||
|  |     second: Remove_0 | ||||||
|  |   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: 1 | ||||||
|  |   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: | ||||||
|  |     - serializedVersion: 2 | ||||||
|  |       name: Remove_0 | ||||||
|  |       rect: | ||||||
|  |         serializedVersion: 2 | ||||||
|  |         x: 0 | ||||||
|  |         y: 0 | ||||||
|  |         width: 512 | ||||||
|  |         height: 512 | ||||||
|  |       alignment: 0 | ||||||
|  |       pivot: {x: 0, y: 0} | ||||||
|  |       border: {x: 0, y: 0, z: 0, w: 0} | ||||||
|  |       customData:  | ||||||
|  |       outline: [] | ||||||
|  |       physicsShape: [] | ||||||
|  |       tessellationDetail: -1 | ||||||
|  |       bones: [] | ||||||
|  |       spriteID: b59f289281d47e4a0800000000000000 | ||||||
|  |       internalID: -6564193165698205349 | ||||||
|  |       vertices: [] | ||||||
|  |       indices:  | ||||||
|  |       edges: [] | ||||||
|  |       weights: [] | ||||||
|  |     outline: [] | ||||||
|  |     customData:  | ||||||
|  |     physicsShape: [] | ||||||
|  |     bones: [] | ||||||
|  |     spriteID:  | ||||||
|  |     internalID: 0 | ||||||
|  |     vertices: [] | ||||||
|  |     indices:  | ||||||
|  |     edges: [] | ||||||
|  |     weights: [] | ||||||
|  |     secondaryTextures: [] | ||||||
|  |     spriteCustomMetadata: | ||||||
|  |       entries: [] | ||||||
|  |     nameFileIdTable: {} | ||||||
|  |   mipmapLimitGroupName:  | ||||||
|  |   pSDRemoveMatte: 0 | ||||||
|  |   userData:  | ||||||
|  |   assetBundleName:  | ||||||
|  |   assetBundleVariant:  | ||||||
| @@ -1,5 +1,5 @@ | |||||||
| fileFormatVersion: 2 | fileFormatVersion: 2 | ||||||
| guid: 73b983a44d701df4bb6d8ceb94e05a2b | guid: bdddba7e4ac5baa4e833a5e67122d0d3 | ||||||
| DefaultImporter: | DefaultImporter: | ||||||
|   externalObjects: {} |   externalObjects: {} | ||||||
|   userData:  |   userData:  | ||||||
|   | |||||||
| @@ -859,7 +859,7 @@ MonoBehaviour: | |||||||
|       m_Calls: |       m_Calls: | ||||||
|       - m_Target: {fileID: 1858033414} |       - m_Target: {fileID: 1858033414} | ||||||
|         m_TargetAssemblyTypeName: MainMenu, Assembly-CSharp |         m_TargetAssemblyTypeName: MainMenu, Assembly-CSharp | ||||||
|         m_MethodName: CreateLevel |         m_MethodName: LevelEditor | ||||||
|         m_Mode: 1 |         m_Mode: 1 | ||||||
|         m_Arguments: |         m_Arguments: | ||||||
|           m_ObjectArgument: {fileID: 0} |           m_ObjectArgument: {fileID: 0} | ||||||
|   | |||||||
| @@ -1164,7 +1164,7 @@ MonoBehaviour: | |||||||
|   m_OnCullStateChanged: |   m_OnCullStateChanged: | ||||||
|     m_PersistentCalls: |     m_PersistentCalls: | ||||||
|       m_Calls: [] |       m_Calls: [] | ||||||
|   m_Sprite: {fileID: -4781373940957465942, guid: 1d7f8c8f8305efa4c8b78f4dd391c49b, type: 3} |   m_Sprite: {fileID: -4781373940957465942, guid: 1b21bd4ccae70934eb86a3a2a6928e98, type: 3} | ||||||
|   m_Type: 0 |   m_Type: 0 | ||||||
|   m_PreserveAspect: 0 |   m_PreserveAspect: 0 | ||||||
|   m_FillCenter: 1 |   m_FillCenter: 1 | ||||||
|   | |||||||
							
								
								
									
										6875
									
								
								Assets/Scenes/LevelEditorScene.unity
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										7
									
								
								Assets/Scenes/LevelEditorScene.unity.meta
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,7 @@ | |||||||
|  | fileFormatVersion: 2 | ||||||
|  | guid: 73b983a44d701df4bb6d8ceb94e05a2b | ||||||
|  | DefaultImporter: | ||||||
|  |   externalObjects: {} | ||||||
|  |   userData:  | ||||||
|  |   assetBundleName:  | ||||||
|  |   assetBundleVariant:  | ||||||
| @@ -544,6 +544,7 @@ MonoBehaviour: | |||||||
|   normalMinYFollow: 2 |   normalMinYFollow: 2 | ||||||
|   shipMinYFollow: 6 |   shipMinYFollow: 6 | ||||||
|   smoothSpeed: 5 |   smoothSpeed: 5 | ||||||
|  |   isPlaying: 1 | ||||||
| --- !u!1 &521952199 | --- !u!1 &521952199 | ||||||
| GameObject: | GameObject: | ||||||
|   m_ObjectHideFlags: 0 |   m_ObjectHideFlags: 0 | ||||||
| @@ -6221,7 +6222,7 @@ MonoBehaviour: | |||||||
|   m_OnCullStateChanged: |   m_OnCullStateChanged: | ||||||
|     m_PersistentCalls: |     m_PersistentCalls: | ||||||
|       m_Calls: [] |       m_Calls: [] | ||||||
|   m_Sprite: {fileID: -2073137460773038770, guid: 7bbd15eb9b940f4c59561753a3d516ce, type: 3} |   m_Sprite: {fileID: -2073137460773038770, guid: bcd6c4da7709ff9458a5784f7f807e30, type: 3} | ||||||
|   m_Type: 0 |   m_Type: 0 | ||||||
|   m_PreserveAspect: 0 |   m_PreserveAspect: 0 | ||||||
|   m_FillCenter: 1 |   m_FillCenter: 1 | ||||||
| @@ -7317,7 +7318,6 @@ MonoBehaviour: | |||||||
|   levelsLoader: {fileID: 0} |   levelsLoader: {fileID: 0} | ||||||
|   audioSource: {fileID: 1999482188} |   audioSource: {fileID: 1999482188} | ||||||
|   progressionText: {fileID: 245275149} |   progressionText: {fileID: 245275149} | ||||||
|   groundWidth: 1 |  | ||||||
| --- !u!4 &1999482187 | --- !u!4 &1999482187 | ||||||
| Transform: | Transform: | ||||||
|   m_ObjectHideFlags: 0 |   m_ObjectHideFlags: 0 | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								Assets/Scripts/CameraController.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,20 @@ | |||||||
|  | using UnityEngine; | ||||||
|  |  | ||||||
|  | public class CameraController : MonoBehaviour | ||||||
|  | { | ||||||
|  |     public float moveSpeed = 10f; | ||||||
|  |  | ||||||
|  |     void Update() | ||||||
|  |     { | ||||||
|  |         float horizontalInput = Input.GetAxisRaw("Horizontal"); // ← → ou A D | ||||||
|  |         float verticalInput = Input.GetAxisRaw("Vertical");     // ↑ ↓ ou W S | ||||||
|  |  | ||||||
|  |         Vector3 movement = new Vector3( | ||||||
|  |             horizontalInput * moveSpeed * Time.deltaTime, | ||||||
|  |             verticalInput * moveSpeed * Time.deltaTime, | ||||||
|  |             0f | ||||||
|  |         ); | ||||||
|  |  | ||||||
|  |         Camera.main.transform.position += movement; | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										2
									
								
								Assets/Scripts/CameraController.cs.meta
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,2 @@ | |||||||
|  | fileFormatVersion: 2 | ||||||
|  | guid: 74af3e3f2c02bde43b24c2f56589d071 | ||||||
| @@ -42,7 +42,10 @@ public class NormalGameMode : IGameMode | |||||||
|     { |     { | ||||||
|         player.RigidBody.linearVelocity = new Vector2(player.RigidBody.linearVelocity.x, 0); |         player.RigidBody.linearVelocity = new Vector2(player.RigidBody.linearVelocity.x, 0); | ||||||
|         player.RigidBody.AddForce(Vector2.up * JumpForce, ForceMode2D.Impulse); |         player.RigidBody.AddForce(Vector2.up * JumpForce, ForceMode2D.Impulse); | ||||||
|         player.LevelsLoader.IncreaseTotalJumps(); |         if (player.LevelsLoader != null) | ||||||
|  |         { | ||||||
|  |             player.LevelsLoader.IncreaseTotalJumps(); | ||||||
|  |         } | ||||||
|         isRotating = true; |         isRotating = true; | ||||||
|         targetRotationAngle = player.transform.eulerAngles.z - 90f; |         targetRotationAngle = player.transform.eulerAngles.z - 90f; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -59,7 +59,10 @@ public class ShipGameMode : IGameMode | |||||||
|     { |     { | ||||||
|         player.RigidBody.linearVelocity = new Vector2(player.RigidBody.linearVelocity.x, 0); |         player.RigidBody.linearVelocity = new Vector2(player.RigidBody.linearVelocity.x, 0); | ||||||
|         player.RigidBody.AddForce(Vector2.up * JumpForce, ForceMode2D.Impulse); |         player.RigidBody.AddForce(Vector2.up * JumpForce, ForceMode2D.Impulse); | ||||||
|         player.LevelsLoader.IncreaseTotalJumps(); |         if (player.LevelsLoader != null) | ||||||
|  |         { | ||||||
|  |             player.LevelsLoader.IncreaseTotalJumps(); | ||||||
|  |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public void OnCollisionEnter(Player player, Collision2D collision) |     public void OnCollisionEnter(Player player, Collision2D collision) | ||||||
|   | |||||||
| @@ -5,7 +5,6 @@ using System.Collections.Generic; | |||||||
| public class LevelEditor : MonoBehaviour | public class LevelEditor : MonoBehaviour | ||||||
| { | { | ||||||
|     [Header("Placement")] |     [Header("Placement")] | ||||||
|     public Transform mapParent; |  | ||||||
|     private GameObject currentBlock; |     private GameObject currentBlock; | ||||||
|     private bool isPlacingBlock = false; |     private bool isPlacingBlock = false; | ||||||
|     private Vector3 currentScale = new Vector3(1f, 1f, 1); |     private Vector3 currentScale = new Vector3(1f, 1f, 1); | ||||||
| @@ -46,6 +45,12 @@ public class LevelEditor : MonoBehaviour | |||||||
|  |  | ||||||
|         Transform container = blockGroupContainer; |         Transform container = blockGroupContainer; | ||||||
|  |  | ||||||
|  |         if (container == null || buttonPrefabTemplate == null) | ||||||
|  |         { | ||||||
|  |             Debug.LogError("UI Container ou prefab de bouton manquant."); | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |  | ||||||
|         int start = currentPage * buttonsPerPage; |         int start = currentPage * buttonsPerPage; | ||||||
|         int end = Mathf.Min(start + buttonsPerPage, blockPrefabs.Count); |         int end = Mathf.Min(start + buttonsPerPage, blockPrefabs.Count); | ||||||
|  |  | ||||||
| @@ -76,13 +81,9 @@ public class LevelEditor : MonoBehaviour | |||||||
|  |  | ||||||
|             string prefabName = blockPrefabs[i].name.ToLower(); |             string prefabName = blockPrefabs[i].name.ToLower(); | ||||||
|             if (prefabName.Contains("smallspike") || prefabName.Contains("smallobstacle")) |             if (prefabName.Contains("smallspike") || prefabName.Contains("smallobstacle")) | ||||||
|             { |  | ||||||
|                 icon.GetComponent<RectTransform>().sizeDelta = new Vector2(50, 25); |                 icon.GetComponent<RectTransform>().sizeDelta = new Vector2(50, 25); | ||||||
|             } |  | ||||||
|             else |             else | ||||||
|             { |  | ||||||
|                 icon.GetComponent<RectTransform>().sizeDelta = new Vector2(50, 50); |                 icon.GetComponent<RectTransform>().sizeDelta = new Vector2(50, 50); | ||||||
|             } |  | ||||||
|  |  | ||||||
|             GameObject prefab = blockPrefabs[i]; |             GameObject prefab = blockPrefabs[i]; | ||||||
|             button.GetComponent<Button>().onClick.AddListener(() => SelectPrefab(prefab)); |             button.GetComponent<Button>().onClick.AddListener(() => SelectPrefab(prefab)); | ||||||
| @@ -93,9 +94,7 @@ public class LevelEditor : MonoBehaviour | |||||||
|     void ClearCurrentButtons() |     void ClearCurrentButtons() | ||||||
|     { |     { | ||||||
|         foreach (var button in currentButtons) |         foreach (var button in currentButtons) | ||||||
|         { |  | ||||||
|             Destroy(button); |             Destroy(button); | ||||||
|         } |  | ||||||
|  |  | ||||||
|         currentButtons.Clear(); |         currentButtons.Clear(); | ||||||
|     } |     } | ||||||
| @@ -103,6 +102,7 @@ public class LevelEditor : MonoBehaviour | |||||||
|     public void NextPage() |     public void NextPage() | ||||||
|     { |     { | ||||||
|         int maxPage = 3; |         int maxPage = 3; | ||||||
|  |         Debug.Log(currentPage); | ||||||
|         if (currentPage < maxPage - 1) |         if (currentPage < maxPage - 1) | ||||||
|         { |         { | ||||||
|             currentPage++; |             currentPage++; | ||||||
| @@ -112,6 +112,7 @@ public class LevelEditor : MonoBehaviour | |||||||
|  |  | ||||||
|     public void PreviousPage() |     public void PreviousPage() | ||||||
|     { |     { | ||||||
|  |         Debug.Log(currentPage); | ||||||
|         if (currentPage > 0) |         if (currentPage > 0) | ||||||
|         { |         { | ||||||
|             currentPage--; |             currentPage--; | ||||||
| @@ -121,49 +122,38 @@ public class LevelEditor : MonoBehaviour | |||||||
|  |  | ||||||
|     void SelectPrefab(GameObject prefab) |     void SelectPrefab(GameObject prefab) | ||||||
|     { |     { | ||||||
|         if (isPlacingBlock) |         if (isPlacingBlock) return; | ||||||
|         { |  | ||||||
|             return; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         string name = prefab.name.ToLower(); |         string name = prefab.name.ToLower(); | ||||||
|  |  | ||||||
|         if (name.Contains("portal")) |         if (name.Contains("portal")) | ||||||
|         { |  | ||||||
|             currentScale = new Vector3(0.5f, 0.5f, 1); |             currentScale = new Vector3(0.5f, 0.5f, 1); | ||||||
|         } |  | ||||||
|         else if (name.Contains("small")) |         else if (name.Contains("small")) | ||||||
|         { |  | ||||||
|             currentScale = new Vector3(0.15f, 0.07f, 1); |             currentScale = new Vector3(0.15f, 0.07f, 1); | ||||||
|         } |  | ||||||
|         else if (name.Contains("spike")) |         else if (name.Contains("spike")) | ||||||
|         { |  | ||||||
|             currentScale = new Vector3(0.15f, 0.15f, 1); |             currentScale = new Vector3(0.15f, 0.15f, 1); | ||||||
|         } |  | ||||||
|         else if (name.Contains("block")) |         else if (name.Contains("block")) | ||||||
|         { |  | ||||||
|  |  | ||||||
|             currentScale = new Vector3(0.2f, 0.2f, 1); |             currentScale = new Vector3(0.2f, 0.2f, 1); | ||||||
|         } |  | ||||||
|         else if (name.Contains("bonus")) |         else if (name.Contains("bonus")) | ||||||
|         { |  | ||||||
|             currentScale = new Vector3(0.3f, 0.3f, 1); |             currentScale = new Vector3(0.3f, 0.3f, 1); | ||||||
|         } |  | ||||||
|         else |         else | ||||||
|         { |  | ||||||
|             currentScale = new Vector3(1f, 1f, 1); |             currentScale = new Vector3(1f, 1f, 1); | ||||||
|         } |  | ||||||
|  |  | ||||||
|         InstantiateAndPrepare(prefab, currentScale); |         InstantiateAndPrepare(prefab, currentScale); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     void Update() |     void Update() | ||||||
|     { |     { | ||||||
|  |         // Déplacement de l'objet en cours de placement | ||||||
|         if (isPlacingBlock && currentBlock != null) |         if (isPlacingBlock && currentBlock != null) | ||||||
|         { |         { | ||||||
|             Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); |             Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); | ||||||
|             currentBlock.transform.position = new Vector3(Mathf.Round(mousePos.x), Mathf.Round(mousePos.y), -1); |             currentBlock.transform.position = new Vector3(Mathf.Round(mousePos.x), Mathf.Round(mousePos.y), -1); | ||||||
|  |  | ||||||
|  |             if (currentBlock != null && Input.GetKeyDown(KeyCode.R)) | ||||||
|  |             { | ||||||
|  |                 HandleBlockRotation(); // ✅ Nouvelle rotation | ||||||
|  |             } | ||||||
|  |  | ||||||
|             if (!currentBlock.name.ToLower().Contains("portal")) |             if (!currentBlock.name.ToLower().Contains("portal")) | ||||||
|             { |             { | ||||||
|                 float scroll = Input.GetAxis("Mouse ScrollWheel"); |                 float scroll = Input.GetAxis("Mouse ScrollWheel"); | ||||||
| @@ -185,19 +175,40 @@ public class LevelEditor : MonoBehaviour | |||||||
|  |  | ||||||
|                 if (overlaps.Length > 1) |                 if (overlaps.Length > 1) | ||||||
|                 { |                 { | ||||||
|  |                     Debug.Log("Placement annulé : un objet est déjà présent à cet endroit."); | ||||||
|                     return; |                     return; | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
|                 PlaceBlock(); |                 PlaceBlock(); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |         else if (Input.GetMouseButtonDown(0)) // Clic gauche pour reprendre un objet déjà placé | ||||||
|         if (Input.GetMouseButtonDown(0) && !isPlacingBlock) |  | ||||||
|         { |         { | ||||||
|             Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); |             Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); | ||||||
|             Collider2D hit = Physics2D.OverlapPoint(mousePos); |             Collider2D hit = Physics2D.OverlapPoint(mousePos); | ||||||
|  |  | ||||||
|             if (hit != null) |             if (hit != null && hit.transform != null) | ||||||
|  |             { | ||||||
|  |                 if (hit.CompareTag("Ground")) | ||||||
|  |                 { | ||||||
|  |                     Debug.Log("Impossible de déplacer le sol (tag Ground)."); | ||||||
|  |                     return; | ||||||
|  |                 } | ||||||
|  |                 currentBlock = hit.gameObject; | ||||||
|  |                 isPlacingBlock = true; | ||||||
|  |                 currentScale = currentBlock.transform.localScale; | ||||||
|  |                 Debug.Log($"Déplacement de l'objet : {currentBlock.name}"); | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         // Redimensionnement d'un objet déjà placé | ||||||
|  |         if (Input.GetMouseButtonDown(0) && Input.GetKey(KeyCode.LeftShift) && !isPlacingBlock) | ||||||
|  |         { | ||||||
|  |             Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); | ||||||
|  |             Collider2D hit = Physics2D.OverlapPoint(mousePos); | ||||||
|  |  | ||||||
|  |             if (hit != null && hit.transform != null && !hit.CompareTag("Ground")) | ||||||
|             { |             { | ||||||
|                 resizingTarget = hit.gameObject; |                 resizingTarget = hit.gameObject; | ||||||
|                 originalMousePos = mousePos; |                 originalMousePos = mousePos; | ||||||
| @@ -212,6 +223,7 @@ public class LevelEditor : MonoBehaviour | |||||||
|                     : ResizeAxis.Vertical; |                     : ResizeAxis.Vertical; | ||||||
|  |  | ||||||
|                 isResizing = true; |                 isResizing = true; | ||||||
|  |                 Debug.Log($"Début de redimensionnement : {resizingTarget.name}, axe = {currentResizeAxis}"); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
| @@ -220,15 +232,34 @@ public class LevelEditor : MonoBehaviour | |||||||
|             Vector3 currentMousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); |             Vector3 currentMousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); | ||||||
|             Vector3 delta = currentMousePos - originalMousePos; |             Vector3 delta = currentMousePos - originalMousePos; | ||||||
|  |  | ||||||
|  |             Vector3 newScale = originalScale; | ||||||
|  |  | ||||||
|             if (currentResizeAxis == ResizeAxis.Horizontal) |             if (currentResizeAxis == ResizeAxis.Horizontal) | ||||||
|             { |                 newScale.x = Mathf.Max(0.1f, originalScale.x + delta.x); | ||||||
|                 float newScaleX = Mathf.Max(0.1f, originalScale.x + delta.x); |  | ||||||
|                 resizingTarget.transform.localScale = new Vector3(newScaleX, originalScale.y, 1); |  | ||||||
|             } |  | ||||||
|             else if (currentResizeAxis == ResizeAxis.Vertical) |             else if (currentResizeAxis == ResizeAxis.Vertical) | ||||||
|  |                 newScale.y = Mathf.Max(0.1f, originalScale.y + delta.y); | ||||||
|  |  | ||||||
|  |             // Temporarily apply the new scale for collision testing | ||||||
|  |             Vector3 originalPos = resizingTarget.transform.position; | ||||||
|  |             resizingTarget.transform.localScale = newScale; | ||||||
|  |  | ||||||
|  |             Bounds bounds = resizingTarget.GetComponent<Collider2D>().bounds; | ||||||
|  |             Collider2D[] overlaps = Physics2D.OverlapBoxAll(bounds.center, bounds.size, 0f); | ||||||
|  |  | ||||||
|  |             bool hasCollision = false; | ||||||
|  |             foreach (var col in overlaps) | ||||||
|             { |             { | ||||||
|                 float newScaleY = Mathf.Max(0.1f, originalScale.y + delta.y); |                 if (col.gameObject != resizingTarget) | ||||||
|                 resizingTarget.transform.localScale = new Vector3(originalScale.x, newScaleY, 1); |                 { | ||||||
|  |                     hasCollision = true; | ||||||
|  |                     break; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             if (hasCollision) | ||||||
|  |             { | ||||||
|  |                 resizingTarget.transform.localScale = originalScale; // revert | ||||||
|  |                 Debug.Log("Étirement annulé : collision détectée."); | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             if (Input.GetMouseButtonUp(0)) |             if (Input.GetMouseButtonUp(0)) | ||||||
| @@ -238,30 +269,180 @@ public class LevelEditor : MonoBehaviour | |||||||
|                 currentResizeAxis = ResizeAxis.None; |                 currentResizeAxis = ResizeAxis.None; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |         // Clic droit pour supprimer un objet déjà placé (sauf le sol) | ||||||
|  |         if (Input.GetMouseButtonDown(1)) | ||||||
|  |         { | ||||||
|  |             Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); | ||||||
|  |             Collider2D hit = Physics2D.OverlapPoint(mousePos); | ||||||
|  |  | ||||||
|  |             if (hit != null && hit.transform != null) | ||||||
|  |             { | ||||||
|  |                 if (hit.CompareTag("Ground")) | ||||||
|  |                 { | ||||||
|  |                     Debug.Log("Impossible de supprimer le sol (tag Ground)."); | ||||||
|  |                     return; | ||||||
|  |                 } | ||||||
|  |  | ||||||
|  |                 Destroy(hit.gameObject); | ||||||
|  |                 Debug.Log($"Objet supprimé : {hit.name}"); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     void PlaceBlock() |     void PlaceBlock() | ||||||
|     { |     { | ||||||
|  |         bool skipVerticalSnap = false; | ||||||
|  |  | ||||||
|  |         if (currentBlock.name.ToLower().Contains("smallobstacle") || currentBlock.name.ToLower().Contains("portal")) | ||||||
|  |         { | ||||||
|  |             skipVerticalSnap = true; // On saute l'alignement vertical pour ces cas-là | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if (!skipVerticalSnap) | ||||||
|  |         { | ||||||
|  |             Vector2 origin = currentBlock.transform.position; | ||||||
|  |             RaycastHit2D[] hitsBelow = Physics2D.RaycastAll(origin, Vector2.down, 100f); | ||||||
|  |  | ||||||
|  |             float highestY = -Mathf.Infinity; | ||||||
|  |             GameObject bestTargetBelow = null; | ||||||
|  |  | ||||||
|  |             foreach (var hit in hitsBelow) | ||||||
|  |             { | ||||||
|  |                 if (hit.collider != null && hit.collider.gameObject != currentBlock) | ||||||
|  |                 { | ||||||
|  |                     float topOfObject = hit.collider.bounds.max.y; | ||||||
|  |                     if (topOfObject > highestY) | ||||||
|  |                     { | ||||||
|  |                         highestY = topOfObject; | ||||||
|  |                         bestTargetBelow = hit.collider.gameObject; | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             if (bestTargetBelow != null) | ||||||
|  |             { | ||||||
|  |                 float height = currentBlock.GetComponent<Collider2D>().bounds.size.y; | ||||||
|  |                 currentBlock.transform.position = new Vector3(currentBlock.transform.position.x, highestY + height / 2f, -1); | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 float height = currentBlock.GetComponent<Collider2D>().bounds.size.y; | ||||||
|  |                 currentBlock.transform.position = new Vector3(currentBlock.transform.position.x, height / 2f, -1); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         // ➔ Toujours essayer de snap sur la droite et en bas même pour Portal et SmallObstacle | ||||||
|  |         TrySnapToNearbyBlock(); | ||||||
|  |  | ||||||
|         isPlacingBlock = false; |         isPlacingBlock = false; | ||||||
|         currentBlock = null; |         currentBlock = null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     private void TrySnapToNearbyBlock() | ||||||
|  |     { | ||||||
|  |         if (currentBlock == null) | ||||||
|  |             return; | ||||||
|  |  | ||||||
|  |         Collider2D blockCollider = currentBlock.GetComponent<Collider2D>(); | ||||||
|  |         Bounds bounds = blockCollider.bounds; | ||||||
|  |  | ||||||
|  |         float snapDistance = 1f; // Distance de snap (en Unity units) | ||||||
|  |  | ||||||
|  |         // Zone de scan à droite | ||||||
|  |         Vector2 rightAreaStart = new Vector2(bounds.max.x, bounds.min.y); | ||||||
|  |         Vector2 rightAreaEnd = new Vector2(bounds.max.x + snapDistance, bounds.max.y); | ||||||
|  |  | ||||||
|  |         // Zone de scan à gauche | ||||||
|  |         Vector2 leftAreaStart = new Vector2(bounds.min.x - snapDistance, bounds.min.y); | ||||||
|  |         Vector2 leftAreaEnd = new Vector2(bounds.min.x, bounds.max.y); | ||||||
|  |  | ||||||
|  |         // Zone de scan en dessous | ||||||
|  |         Vector2 bottomAreaStart = new Vector2(bounds.min.x, bounds.min.y - snapDistance); | ||||||
|  |         Vector2 bottomAreaEnd = new Vector2(bounds.max.x, bounds.min.y); | ||||||
|  |  | ||||||
|  |         // Zone de scan au dessus | ||||||
|  |         Vector2 topAreaStart = new Vector2(bounds.min.x, bounds.max.y); | ||||||
|  |         Vector2 topAreaEnd = new Vector2(bounds.max.x, bounds.max.y + snapDistance); | ||||||
|  |  | ||||||
|  |         Collider2D[] hitsRight = Physics2D.OverlapAreaAll(rightAreaStart, rightAreaEnd); | ||||||
|  |         Collider2D[] hitsLeft = Physics2D.OverlapAreaAll(leftAreaStart, leftAreaEnd); | ||||||
|  |         Collider2D[] hitsBelow = Physics2D.OverlapAreaAll(bottomAreaStart, bottomAreaEnd); | ||||||
|  |         Collider2D[] hitsAbove = Physics2D.OverlapAreaAll(topAreaStart, topAreaEnd); | ||||||
|  |  | ||||||
|  |         // ➔ Priorité : droite > gauche > bas > haut | ||||||
|  |  | ||||||
|  |         foreach (var hit in hitsRight) | ||||||
|  |         { | ||||||
|  |             if (hit != null && hit.gameObject != currentBlock) | ||||||
|  |             { | ||||||
|  |                 float theirLeft = hit.bounds.min.x; | ||||||
|  |                 float ourWidth = bounds.size.x; | ||||||
|  |                 currentBlock.transform.position = new Vector3(theirLeft - ourWidth / 2f, currentBlock.transform.position.y, -1); | ||||||
|  |                 Debug.Log("✅ Snap automatique à droite !"); | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         foreach (var hit in hitsLeft) | ||||||
|  |         { | ||||||
|  |             if (hit != null && hit.gameObject != currentBlock) | ||||||
|  |             { | ||||||
|  |                 float theirRight = hit.bounds.max.x; | ||||||
|  |                 float ourWidth = bounds.size.x; | ||||||
|  |                 currentBlock.transform.position = new Vector3(theirRight + ourWidth / 2f, currentBlock.transform.position.y, -1); | ||||||
|  |                 Debug.Log("✅ Snap automatique à gauche !"); | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         foreach (var hit in hitsBelow) | ||||||
|  |         { | ||||||
|  |             if (hit != null && hit.gameObject != currentBlock) | ||||||
|  |             { | ||||||
|  |                 float theirTop = hit.bounds.max.y; | ||||||
|  |                 float ourHeight = bounds.size.y; | ||||||
|  |                 currentBlock.transform.position = new Vector3(currentBlock.transform.position.x, theirTop + ourHeight / 2f, -1); | ||||||
|  |                 Debug.Log("✅ Snap automatique en bas !"); | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         foreach (var hit in hitsAbove) | ||||||
|  |         { | ||||||
|  |             if (hit != null && hit.gameObject != currentBlock) | ||||||
|  |             { | ||||||
|  |                 float theirBottom = hit.bounds.min.y; | ||||||
|  |                 float ourHeight = bounds.size.y; | ||||||
|  |                 currentBlock.transform.position = new Vector3(currentBlock.transform.position.x, theirBottom - ourHeight / 2f, -1); | ||||||
|  |                 Debug.Log("✅ Snap automatique en haut !"); | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|     void InstantiateAndPrepare(GameObject prefab, Vector3? scaleOverride = null) |     void InstantiateAndPrepare(GameObject prefab, Vector3? scaleOverride = null) | ||||||
|     { |     { | ||||||
|         GameObject obj = Instantiate(prefab); |         GameObject obj = Instantiate(prefab); | ||||||
|         obj.transform.position = new Vector3(0, 0, -1); |         obj.transform.position = new Vector3(0, 0, -1); | ||||||
|         obj.transform.localScale = scaleOverride ?? currentScale; |         obj.transform.localScale = scaleOverride ?? currentScale; | ||||||
|  |  | ||||||
|         if (mapParent != null) |         try { obj.tag = prefab.name; } | ||||||
|         { |         catch { Debug.LogWarning($"Le tag '{prefab.name}' n'existe pas. Ajoutez-le dans Project Settings > Tags."); } | ||||||
|             obj.transform.SetParent(mapParent); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         currentBlock = obj; |         currentBlock = obj; | ||||||
|         isPlacingBlock = true; |         isPlacingBlock = true; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     private void HandleBlockRotation() | ||||||
|  |     { | ||||||
|  |         currentBlock.transform.Rotate(0f, 0f, -90f); // ➔ Rotation de 90° dans le sens horaire | ||||||
|  |         Debug.Log("🔄 Bloc pivoté de 90° !"); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public void Save() |     public void Save() | ||||||
|     { |     { | ||||||
|  |         // TODO : Implémenter la sauvegarde du niveau | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -18,6 +18,11 @@ public class MainMenu : MonoBehaviour | |||||||
|         Application.Quit(); |         Application.Quit(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public void LevelEditor() | ||||||
|  |     { | ||||||
|  |         SceneManager.LoadSceneAsync("LevelEditorScene"); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public void EditorChoice() |     public void EditorChoice() | ||||||
|     { |     { | ||||||
|         SceneManager.LoadSceneAsync("EditorChoiceScene"); |         SceneManager.LoadSceneAsync("EditorChoiceScene"); | ||||||
|   | |||||||
| @@ -6,9 +6,11 @@ public class Player : MonoBehaviour | |||||||
|     public Rigidbody2D RigidBody { get; private set; } |     public Rigidbody2D RigidBody { get; private set; } | ||||||
|     public Transform Transform { get; private set; } |     public Transform Transform { get; private set; } | ||||||
|     public ParticleSystem Particle { get; private set; } |     public ParticleSystem Particle { get; private set; } | ||||||
|     public LevelsLoader LevelsLoader { get; private set; } |     public LevelsLoader LevelsLoader { get; set; } | ||||||
|     public SpriteRenderer SpriteRenderer { get; private set; } |     public SpriteRenderer SpriteRenderer { get; private set; } | ||||||
|     public bool IsColliding { get; set; } = true; |     public bool IsColliding { get; set; } = true; | ||||||
|  |     public bool HasStarted { get; set; } = false; | ||||||
|  |     public bool CanJump { get; set; } = true; | ||||||
|  |  | ||||||
|     public IGameMode CurrentGameMode { get; set; } |     public IGameMode CurrentGameMode { get; set; } | ||||||
|     public float SpeedMultiplier = 1f; |     public float SpeedMultiplier = 1f; | ||||||
| @@ -19,7 +21,12 @@ public class Player : MonoBehaviour | |||||||
|         Transform = transform; |         Transform = transform; | ||||||
|         Particle = GetComponentInChildren<ParticleSystem>(); |         Particle = GetComponentInChildren<ParticleSystem>(); | ||||||
|         SpriteRenderer = GetComponentInChildren<SpriteRenderer>(); |         SpriteRenderer = GetComponentInChildren<SpriteRenderer>(); | ||||||
|         LevelsLoader = GameObject.FindGameObjectWithTag("LevelsLoader").GetComponent<LevelsLoader>(); |  | ||||||
|  |         GameObject loaderObj = GameObject.FindGameObjectWithTag("LevelsLoader"); | ||||||
|  |         if (loaderObj != null) | ||||||
|  |             LevelsLoader = loaderObj.GetComponent<LevelsLoader>(); | ||||||
|  |         else | ||||||
|  |             Debug.LogWarning("LevelsLoader introuvable : Progression désactivée pour ce niveau."); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public void Start() |     public void Start() | ||||||
| @@ -33,21 +40,24 @@ public class Player : MonoBehaviour | |||||||
|  |  | ||||||
|     public void Update() |     public void Update() | ||||||
|     { |     { | ||||||
|         CurrentGameMode.Update(this); |         if (CurrentGameMode != null) | ||||||
|         LevelsLoader.CalculateCurrentProgressionPercent(transform.position); |             CurrentGameMode.Update(this); | ||||||
|  |  | ||||||
|  |         if (LevelsLoader != null) | ||||||
|  |             LevelsLoader.CalculateCurrentProgressionPercent(transform.position); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public void OnCollisionEnter2D(Collision2D collision) |     public virtual void OnCollisionEnter2D(Collision2D collision) | ||||||
|     { |     { | ||||||
|         CurrentGameMode.OnCollisionEnter(this, collision); |         CurrentGameMode?.OnCollisionEnter(this, collision); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public void OnCollisionExit2D(Collision2D collision) |     public void OnCollisionExit2D(Collision2D collision) | ||||||
|     { |     { | ||||||
|         CurrentGameMode.OnCollisionExit(this, collision); |         CurrentGameMode?.OnCollisionExit(this, collision); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private void OnTriggerEnter2D(Collider2D collision) |     public virtual void OnTriggerEnter2D(Collider2D collision) | ||||||
|     { |     { | ||||||
|         if (collision.CompareTag("ShipPortal")) |         if (collision.CompareTag("ShipPortal")) | ||||||
|         { |         { | ||||||
|   | |||||||
| @@ -8,6 +8,9 @@ public class PlayerCamera : MonoBehaviour | |||||||
|     public float smoothSpeed = 5.0f; |     public float smoothSpeed = 5.0f; | ||||||
|     private float initialY; |     private float initialY; | ||||||
|  |  | ||||||
|  |     [Header("References")] | ||||||
|  |     public bool isPlaying; | ||||||
|  |  | ||||||
|     private void Start() |     private void Start() | ||||||
|     { |     { | ||||||
|         initialY = transform.position.y; |         initialY = transform.position.y; | ||||||
| @@ -15,22 +18,25 @@ public class PlayerCamera : MonoBehaviour | |||||||
|  |  | ||||||
|     private void Update() |     private void Update() | ||||||
|     { |     { | ||||||
|         Player player = playerObject.GetComponent<Player>(); |         if (isPlaying) | ||||||
|  |  | ||||||
|         float minYFollow = normalMinYFollow; |  | ||||||
|         if (player.CurrentGameMode is ShipGameMode) |  | ||||||
|         { |         { | ||||||
|             minYFollow = shipMinYFollow; |             Player player = playerObject.GetComponent<Player>(); | ||||||
|  |  | ||||||
|  |             float minYFollow = normalMinYFollow; | ||||||
|  |             if (player.CurrentGameMode is ShipGameMode) | ||||||
|  |             { | ||||||
|  |                 minYFollow = shipMinYFollow; | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             float targetY = initialY; | ||||||
|  |             if (playerObject.transform.position.y > minYFollow) | ||||||
|  |             { | ||||||
|  |                 targetY = playerObject.transform.position.y; | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             float newY = Mathf.Lerp(transform.position.y, targetY, smoothSpeed * Time.deltaTime); | ||||||
|  |  | ||||||
|  |             transform.position = new Vector3(playerObject.transform.position.x, newY, transform.position.z); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         float targetY = initialY; |  | ||||||
|         if (playerObject.transform.position.y > minYFollow) |  | ||||||
|         { |  | ||||||
|             targetY = playerObject.transform.position.y; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         float newY = Mathf.Lerp(transform.position.y, targetY, smoothSpeed * Time.deltaTime); |  | ||||||
|  |  | ||||||
|         transform.position = new Vector3(playerObject.transform.position.x, newY, transform.position.z); |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										127
									
								
								Assets/Scripts/TestManager.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,127 @@ | |||||||
|  | using UnityEngine; | ||||||
|  |  | ||||||
|  | public class TestManager : MonoBehaviour | ||||||
|  | { | ||||||
|  |     [Header("References")] | ||||||
|  |     public IGameMode gameMode; | ||||||
|  |     public Player currentPlayer; | ||||||
|  |     public Transform spawnPoint; | ||||||
|  |     public GameObject editorUI; | ||||||
|  |     public PlayerCamera playerCamera; | ||||||
|  |  | ||||||
|  |     private bool isTesting = false; | ||||||
|  |  | ||||||
|  |     void Start() | ||||||
|  |     { | ||||||
|  |         if (spawnPoint == null) | ||||||
|  |         { | ||||||
|  |             GameObject spawn = new GameObject("AutoSpawnPoint"); | ||||||
|  |             spawn.transform.position = new Vector3(-16, -3, 0f); | ||||||
|  |             spawnPoint = spawn.transform; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if (currentPlayer == null) | ||||||
|  |         { | ||||||
|  |             Debug.LogError("[TestManager] Aucun Player assigné !"); | ||||||
|  |         } | ||||||
|  |         else | ||||||
|  |         { | ||||||
|  |             gameMode = new NormalGameMode(); | ||||||
|  |             currentPlayer.ChangeGameMode(gameMode); | ||||||
|  |             currentPlayer.SpeedMultiplier = 0f; | ||||||
|  |  | ||||||
|  |             if (currentPlayer.SpriteRenderer != null) | ||||||
|  |                 currentPlayer.SpriteRenderer.enabled = false; | ||||||
|  |  | ||||||
|  |             if (currentPlayer.Particle != null) | ||||||
|  |                 currentPlayer.Particle.Stop(true, ParticleSystemStopBehavior.StopEmittingAndClear); // 🛑 Stop propre | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if (playerCamera != null) | ||||||
|  |         { | ||||||
|  |             playerCamera.isPlaying = false; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     void Update() | ||||||
|  |     { | ||||||
|  |         if (isTesting && currentPlayer == null) | ||||||
|  |         { | ||||||
|  |             StopTest(); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void StartOrStop() | ||||||
|  |     { | ||||||
|  |         if (isTesting) | ||||||
|  |             StopTest(); | ||||||
|  |         else | ||||||
|  |             StartTest(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void StartTest() | ||||||
|  |     { | ||||||
|  |         if (currentPlayer == null) | ||||||
|  |         { | ||||||
|  |             Debug.LogError("[TestManager] Player manquant pour lancer le test !"); | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if (editorUI != null) | ||||||
|  |             editorUI.SetActive(false); | ||||||
|  |  | ||||||
|  |         currentPlayer.transform.position = spawnPoint.position; | ||||||
|  |         currentPlayer.RigidBody.linearVelocity = Vector2.zero; | ||||||
|  |         currentPlayer.SpeedMultiplier = 1f; | ||||||
|  |         currentPlayer.SpriteRenderer.sprite = Resources.Load<Sprite>("Shapes/BaseSquare"); | ||||||
|  |  | ||||||
|  |         currentPlayer.ChangeGameMode(gameMode); | ||||||
|  |         isTesting = true; | ||||||
|  |  | ||||||
|  |         if (playerCamera != null) | ||||||
|  |         { | ||||||
|  |             playerCamera.playerObject = currentPlayer.gameObject; | ||||||
|  |             playerCamera.isPlaying = true; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if (currentPlayer.SpriteRenderer != null) | ||||||
|  |             currentPlayer.SpriteRenderer.enabled = true; | ||||||
|  |  | ||||||
|  |         if (currentPlayer.Particle != null) | ||||||
|  |             currentPlayer.Particle.Play(); // ✅ Démarrer la particule | ||||||
|  |  | ||||||
|  |         Debug.Log("[TestManager] Test du niveau démarré !"); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void StopTest() | ||||||
|  |     { | ||||||
|  |         if (currentPlayer != null) | ||||||
|  |         { | ||||||
|  |             currentPlayer.transform.position = spawnPoint.position; | ||||||
|  |             currentPlayer.RigidBody.linearVelocity = Vector2.zero; | ||||||
|  |             currentPlayer.RigidBody.angularVelocity = 0f; | ||||||
|  |             currentPlayer.transform.rotation = Quaternion.identity; | ||||||
|  |             currentPlayer.SpriteRenderer.sprite = Resources.Load<Sprite>("Shapes/BaseSquare"); | ||||||
|  |             currentPlayer.SpeedMultiplier = 0f; | ||||||
|  |  | ||||||
|  |             if (currentPlayer.Particle != null) | ||||||
|  |                 currentPlayer.Particle.Stop(true, ParticleSystemStopBehavior.StopEmittingAndClear); // ✅ Arrêter proprement | ||||||
|  |  | ||||||
|  |             if (currentPlayer.SpriteRenderer != null) | ||||||
|  |                 currentPlayer.SpriteRenderer.enabled = false; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if (editorUI != null) | ||||||
|  |             editorUI.SetActive(true); | ||||||
|  |  | ||||||
|  |         if (playerCamera != null) | ||||||
|  |         { | ||||||
|  |             playerCamera.isPlaying = false; | ||||||
|  |             playerCamera.transform.position = new Vector3(0f, 0f, -10f); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         isTesting = false; | ||||||
|  |  | ||||||
|  |         Debug.Log("[TestManager] Test du niveau arrêté, joueur reset et caméra recentrée !"); | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										2
									
								
								Assets/Scripts/TestManager.cs.meta
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,2 @@ | |||||||
|  | fileFormatVersion: 2 | ||||||
|  | guid: 2c6d38f8c53ec314c9827a842e6f17d8 | ||||||
| @@ -11,18 +11,21 @@ EditorBuildSettings: | |||||||
|   - enabled: 1 |   - enabled: 1 | ||||||
|     path: Assets/Scenes/ImportScene.unity |     path: Assets/Scenes/ImportScene.unity | ||||||
|     guid: 079203ac02d460d48a1208a03134d373 |     guid: 079203ac02d460d48a1208a03134d373 | ||||||
|   - enabled: 1 |  | ||||||
|     path: Assets/Scenes/EditorChoiceScene.unity |  | ||||||
|     guid: 200c916866fde6f4bb0123b72f22771f |  | ||||||
|   - enabled: 1 |   - enabled: 1 | ||||||
|     path: Assets/Scenes/SelectLevelScene.unity |     path: Assets/Scenes/SelectLevelScene.unity | ||||||
|     guid: ff897c289bbe86f499c0c88b6177ab5c |     guid: ff897c289bbe86f499c0c88b6177ab5c | ||||||
|   - enabled: 1 |   - enabled: 1 | ||||||
|     path: Assets/Scenes/LevelScene.unity |     path: Assets/Scenes/LevelScene.unity | ||||||
|     guid: 8c9cfa26abfee488c85f1582747f6a02 |     guid: 8c9cfa26abfee488c85f1582747f6a02 | ||||||
|   - enabled: 1 |   - enabled: 0 | ||||||
|     path: Assets/Scenes/CreateLevelScene.unity |     path: Assets/Scenes/LevelEditorScene.unity | ||||||
|     guid: 73b983a44d701df4bb6d8ceb94e05a2b |     guid: 73b983a44d701df4bb6d8ceb94e05a2b | ||||||
|  |   - enabled: 1 | ||||||
|  |     path: Assets/Scenes/LevelEditorScene.unity | ||||||
|  |     guid: 73b983a44d701df4bb6d8ceb94e05a2b | ||||||
|  |   - enabled: 1 | ||||||
|  |     path: Assets/Scenes/EditorChoiceScene.unity | ||||||
|  |     guid: 200c916866fde6f4bb0123b72f22771f | ||||||
|   m_configObjects: |   m_configObjects: | ||||||
|     com.unity.input.settings.actions: {fileID: -944628639613478452, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3} |     com.unity.input.settings.actions: {fileID: -944628639613478452, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3} | ||||||
|   m_UseUCBPForAssetBundles: 0 |   m_UseUCBPForAssetBundles: 0 | ||||||
|   | |||||||
| @@ -18,6 +18,7 @@ TagManager: | |||||||
|   - PortalButtonGroup |   - PortalButtonGroup | ||||||
|   - BonusBoostSpeed |   - BonusBoostSpeed | ||||||
|   - BonusSlowSpeed |   - BonusSlowSpeed | ||||||
|  |   - Ground | ||||||
|   layers: |   layers: | ||||||
|   - Default |   - Default | ||||||
|   - TransparentFX |   - TransparentFX | ||||||
|   | |||||||