Merge remote-tracking branch 'origin/develop' into feature/dlg_setting

This commit is contained in:
Tungdv
2026-05-15 15:15:29 +07:00
26 changed files with 10707 additions and 26 deletions
@@ -49,7 +49,7 @@ TextureImporter:
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteBorder: {x: 3, y: 3, z: 3, w: 3}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
@@ -93,6 +93,19 @@ TextureImporter:
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
@@ -101,7 +114,7 @@ TextureImporter:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
internalID: 1537655665
vertices: []
indices:
edges: []
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,153 @@
fileFormatVersion: 2
guid: 69063cfcb3505724e8bd505dc3e28b03
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: common_slide_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 533
height: 17
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: e42a62df77bd0cf44acb009fc5621bc3
internalID: 2042434889
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 2dece465b7235f543b32bcf7ec5425dc
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
common_slide_0: 2042434889
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

@@ -0,0 +1,153 @@
fileFormatVersion: 2
guid: f333bac6e02f98f49b1f69f44f451d54
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: common_slider_0
rect:
serializedVersion: 2
x: 6
y: 8
width: 23
height: 23
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 773c06c514272154f8916873c4bc9597
internalID: -1783195739
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 0d9d62d35ebd1e048a1222e4f02c3bd0
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
common_slider_0: -1783195739
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

@@ -0,0 +1,153 @@
fileFormatVersion: 2
guid: 7fe023a7136a94d4393d0a3a4901efdb
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: icon_checked_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 22
height: 16
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 022fbaeaf7465384ba66ec58aa317a41
internalID: -1390858318
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 1f5988c15a6a16c488898c9526378f0a
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
icon_checked_0: -1390858318
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 370 B

@@ -0,0 +1,153 @@
fileFormatVersion: 2
guid: e806a3056e41c8743a93ff291ebcf2c8
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: icon_tieude_4_0
rect:
serializedVersion: 2
x: 1
y: 1
width: 14
height: 14
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 85de70303a14da84baac3dec13d09aeb
internalID: 1563912341
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 497a4499296da4a4294a088ef036c190
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
icon_tieude_4_0: 1563912341
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

@@ -0,0 +1,153 @@
fileFormatVersion: 2
guid: 3badba543fa647c488ea32bb5ebc8835
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: label_khung_switch_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 96
height: 37
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 116f4392788b6544cad4168e8a8a888d
internalID: 1507717390
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 3217e423a4a794840af3563407cb1749
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
label_khung_switch_0: 1507717390
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -69,7 +69,7 @@ TextureImporter:
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
maxTextureSize: 512
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
@@ -93,6 +93,19 @@ TextureImporter:
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 12e3fbc87fab9044abb62aba808775c8
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+278 -11
View File
@@ -682,7 +682,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: -365.6, y: 157.9}
m_AnchoredPosition: {x: -365.5996, y: 157.90002}
m_SizeDelta: {x: 60, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5677368834917231984
@@ -2901,6 +2901,142 @@ MonoBehaviour:
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &1378138514068573007
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1338850449069315884}
- component: {fileID: 4798983205928476451}
- component: {fileID: 1056062056842140503}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1338850449069315884
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1378138514068573007}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6316423652623308809}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4798983205928476451
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1378138514068573007}
m_CullTransparentMesh: 1
--- !u!114 &1056062056842140503
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1378138514068573007}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text:
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4281479730
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 24
m_fontSizeBase: 24
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &1400832610860055065
GameObject:
m_ObjectHideFlags: 0
@@ -5573,7 +5709,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -104.1001, y: -685.9}
m_AnchoredPosition: {x: -104.09961, y: -685.9}
m_SizeDelta: {x: 69, y: 69}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4294505687272824498
@@ -6030,7 +6166,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -573.3, y: -60}
m_AnchoredPosition: {x: -500, y: -60}
m_SizeDelta: {x: 85, y: 95}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3725287594404594500
@@ -7205,7 +7341,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0.97314453, y: 48.68799}
m_AnchoredPosition: {x: 0.9736328, y: 48.68799}
m_SizeDelta: {x: -30.7139, y: -502.456}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7878709850570617337
@@ -8726,7 +8862,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: -105.6001, y: 263}
m_AnchoredPosition: {x: -105.59961, y: 263}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1896346771968462987
@@ -9099,7 +9235,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -468.5, y: -61.19995}
m_AnchoredPosition: {x: -395.19922, y: -61.19995}
m_SizeDelta: {x: 93, y: 95}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2051684615504035519
@@ -9988,7 +10124,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -675.9995, y: -62.6}
m_AnchoredPosition: {x: -602.6987, y: -62.6}
m_SizeDelta: {x: 85, y: 99}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6123887107398507141
@@ -10608,6 +10744,127 @@ MonoBehaviour:
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &6286690471151213487
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6316423652623308809}
- component: {fileID: 8479593421816810}
- component: {fileID: 2706050623307446940}
- component: {fileID: 1376098175126032485}
m_Layer: 5
m_Name: SettingBtn
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6316423652623308809
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6286690471151213487}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1338850449069315884}
m_Father: {fileID: 3483809415181351540}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -704, y: -62.6}
m_SizeDelta: {x: 85, y: 99}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8479593421816810
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6286690471151213487}
m_CullTransparentMesh: 1
--- !u!114 &2706050623307446940
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6286690471151213487}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 2dfaf1789fc4d9549aef1e775bd269e2, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &1376098175126032485
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6286690471151213487}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 2706050623307446940}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &6353807544545313732
GameObject:
m_ObjectHideFlags: 0
@@ -12485,6 +12742,7 @@ RectTransform:
- {fileID: 7889600498641702394}
- {fileID: 2430319032688992992}
- {fileID: 8913509984865075419}
- {fileID: 6316423652623308809}
- {fileID: 7306104429597638794}
- {fileID: 5823843793071880086}
- {fileID: 1462603449517194619}
@@ -12521,6 +12779,7 @@ MonoBehaviour:
_escapeBtn: {fileID: 2013061949432893537}
_btnTask: {fileID: 8640845703001841192}
_btnInvntory: {fileID: 7124460838393469068}
_btnSettings: {fileID: 1376098175126032485}
_btnTeam: {fileID: 7702438348439019520}
_btnTaskTrace: {fileID: 3253955040536933532}
_taskTraceParent: {fileID: 2578159539417438268}
@@ -13325,7 +13584,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -791.1102, y: -64.70001}
m_AnchoredPosition: {x: -791.1094, y: -64.70001}
m_SizeDelta: {x: 96, y: 96}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7156160830622099876
@@ -14096,7 +14355,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 219, y: -24}
m_AnchoredPosition: {x: 219, y: -24.000122}
m_SizeDelta: {x: -866.9302, y: 14.923}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4601529256775030850
@@ -17965,7 +18224,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5834405183358786743, guid: 22d3972b131ebdb4288f9cbdf996d691, type: 3}
propertyPath: m_AnchoredPosition.x
value: 41.144287
value: 41.143555
objectReference: {fileID: 0}
- target: {fileID: 5834405183358786743, guid: 22d3972b131ebdb4288f9cbdf996d691, type: 3}
propertyPath: m_AnchoredPosition.y
@@ -20552,7 +20811,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 121983901978661093, guid: fd12cafdb76332a488e2a1f3782fe40f, type: 3}
propertyPath: m_AnchoredPosition.x
value: -192.78015
value: -192.7793
objectReference: {fileID: 0}
- target: {fileID: 121983901978661093, guid: fd12cafdb76332a488e2a1f3782fe40f, type: 3}
propertyPath: m_AnchoredPosition.y
@@ -21685,6 +21944,14 @@ PrefabInstance:
propertyPath: m_Name
value: prefab_MiniChat
objectReference: {fileID: 0}
- target: {fileID: 1026350322123039068, guid: 05206a01b3910384cb9a17c74225d554, type: 3}
propertyPath: m_AnchoredPosition.x
value: -157.2002
objectReference: {fileID: 0}
- target: {fileID: 1026350322123039068, guid: 05206a01b3910384cb9a17c74225d554, type: 3}
propertyPath: m_AnchoredPosition.y
value: 151.79999
objectReference: {fileID: 0}
- target: {fileID: 3676046446549609595, guid: 05206a01b3910384cb9a17c74225d554, type: 3}
propertyPath: m_Pivot.x
value: 0.5
@@ -61,3 +61,5 @@ MonoBehaviour:
prefab: {fileID: 7959803810568030828, guid: c3fe60ca49d530e4a9d03e185154c4f5, type: 3}
- id: Win_WorldMap
prefab: {fileID: 6225996695219405878, guid: 2ed5e05eaa1d87341bf25c3cf111cc01, type: 3}
- id: Win_Settings
prefab: {fileID: 5193882765232824931, guid: 12e3fbc87fab9044abb62aba808775c8, type: 3}
@@ -1,10 +0,0 @@
using BrewMonster.UI;
using UnityEngine;
namespace BrewMonster
{
public class DlgSetting : AUIDialog
{
}
}
@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: e89b514fe463eaf46b81527aff05751a
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4b6e00c0a650e9446b61783946078df6
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,113 @@
using BrewMonster.UI;
using System.Collections;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace BrewMonster
{
public class DlgSetting : AUIDialog
{
[Header("Box Button")]
[SerializeField] private Button btn_system;
[SerializeField] private Button btn_interface;
[SerializeField] private Button btn_setting;
[SerializeField] private Button btn_sound;
[SerializeField] private Button btn_default;
[SerializeField] private Button btn_confirm;
[SerializeField] private Button btn_close;
[Header("Content")]
[SerializeField] private GameObject content_interface;
[SerializeField] private GameObject content_sound;
[Header("Sprite")]
[SerializeField] private Sprite tab_active;
[SerializeField] private Sprite tab_unactive;
[Header("Tab Text Color")]
[SerializeField] private Color activeTextColor = Color.white;
[SerializeField] private Color inactiveTextColor = Color.white;
private Button[] tabButtons;
public override void Awake()
{
tabButtons = new[]
{
btn_system,
btn_interface,
btn_setting,
btn_sound
};
}
public override void OnEnable()
{
btn_system.onClick.AddListener(OnBtnSystem);
btn_interface.onClick.AddListener(OnBtnInterface);
btn_setting.onClick.AddListener(OnBtnSetting);
btn_sound.onClick.AddListener(OnBtnSound);
btn_close.onClick.AddListener(OnBtnClose);
}
public override void OnDisable()
{
btn_system.onClick.RemoveListener(OnBtnSystem);
btn_interface.onClick.RemoveListener(OnBtnInterface);
btn_setting.onClick.RemoveListener(OnBtnSetting);
btn_sound.onClick.RemoveListener(OnBtnSound);
btn_close.onClick.RemoveListener(OnBtnClose);
}
private void OnBtnSystem()
{
SetActiveTab(btn_system);
}
private void OnBtnInterface()
{
SetActiveTab(btn_interface);
content_interface.SetActive(true);
content_sound.SetActive(false);
}
private void OnBtnSetting()
{
SetActiveTab(btn_setting);
}
private void OnBtnSound()
{
SetActiveTab(btn_sound);
content_interface.SetActive(false);
content_sound.SetActive(true);
}
private void SetActiveTab(Button activeButton)
{
foreach(Button button in tabButtons)
{
if (button == null)
continue;
Image image = button.GetComponent<Image>();
if(image != null)
{
image.sprite = button == activeButton ? tab_active : tab_unactive;
}
TMP_Text text = button.GetComponentInChildren<TMP_Text>();
if(text != null)
{
text.color = button == activeButton ? activeTextColor : inactiveTextColor;
}
}
}
private void OnBtnClose()
{
CECUIManager.Instance.HideCurrentUIInStack();
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 5595fd2d80a58034bb63e5c36da3bd4a
@@ -0,0 +1,105 @@
using BrewMonster.Assets.PerfectWorld.Scripts.UI;
using BrewMonster.Common;
using BrewMonster.Managers;
using BrewMonster.Scripts;
using BrewMonster.Scripts.Managers;
using BrewMonster.UI;
using CSNetwork.GPDataType;
using Cysharp.Threading.Tasks.Triggers;
using PerfectWorld.Scripts.Managers;
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace BrewMonster
{
public class SettingInterface : MonoBehaviour
{
[Header("Slider")]
[SerializeField] private Slider slider_foresight;
[SerializeField] private Slider slider_distance_npc_and_mst;
[SerializeField] private Slider slider_distance_player_other;
[Header("Slider Value Level")]
private float valueLevel1 = 0;
private float valueLevel2 = 0.194f;
private float valueLevel3 = 0.409f;
private float valueLevel4 = 0.603f;
private float valueLevel5 = 0.793f;
private float valueLevel6 = 1f;
[Header("slider Text Level")]
[SerializeField] private TextMeshProUGUI txt_level_of_foresight;
[SerializeField] private TextMeshProUGUI txt_level_of_distance_npc_and_mst;
[SerializeField] private TextMeshProUGUI txt_level_of_distance_player_other;
private void OnEnable()
{
}
private void OnDisable()
{
slider_foresight.onValueChanged.RemoveListener(OnForessightSliderChange);
slider_distance_npc_and_mst.onValueChanged.RemoveListener(OnDisNPCandMstSliderChange);
slider_distance_player_other.onValueChanged.RemoveListener(OnDisPlayerOtherSliderChange);
}
private void Update()
{
UpdateSliderText(slider_foresight, txt_level_of_foresight);
UpdateSliderText(slider_distance_npc_and_mst, txt_level_of_distance_npc_and_mst);
UpdateSliderText(slider_distance_player_other, txt_level_of_distance_player_other);
}
private void OnForessightSliderChange(float value)
{
UpdateSliderText(slider_foresight, txt_level_of_foresight);
}
private void OnDisNPCandMstSliderChange(float value)
{
UpdateSliderText(slider_distance_npc_and_mst, txt_level_of_distance_npc_and_mst);
}
private void OnDisPlayerOtherSliderChange(float value)
{
UpdateSliderText(slider_distance_player_other, txt_level_of_distance_player_other);
}
private void UpdateSliderText(Slider slider, TextMeshProUGUI text)
{
if (slider == null || text == null)
return;
int level = GetLevelFromValue(slider.value);
text.text = $"Mức {level}";
}
private int GetLevelFromValue(float value)
{
float t12 = (valueLevel1 + valueLevel2) * 0.5f;
float t23 = (valueLevel2 + valueLevel3) * 0.5f;
float t34 = (valueLevel3 + valueLevel4) * 0.5f;
float t45 = (valueLevel4 + valueLevel5) * 0.5f;
float t56 = (valueLevel5 + valueLevel6) * 0.5f;
if (value < t12)
return 1;
else if (value < t23)
return 2;
else if (value < t34)
return 3;
else if (value < t45)
return 4;
else if (value < t56)
return 5;
else
return 6;
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 6683dd582fa268c45af1ece39633a804
@@ -0,0 +1,249 @@
using BrewMonster.Assets.PerfectWorld.Scripts.UI;
using BrewMonster.Common;
using BrewMonster.Managers;
using BrewMonster.Scripts;
using BrewMonster.Scripts.Managers;
using BrewMonster.UI;
using CSNetwork.GPDataType;
using Cysharp.Threading.Tasks.Triggers;
using PerfectWorld.Scripts.Managers;
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace BrewMonster
{
public class SettingSound : MonoBehaviour
{
[Header("Sound Settings")]
[SerializeField] private Toggle tog_bgm;
[SerializeField] private Toggle tog_sfx;
[SerializeField] private Toggle tog_master;
[SerializeField] private RectTransform handle_bmg;
[SerializeField] private RectTransform handle_sfx;
[SerializeField] private RectTransform handle_master;
[SerializeField] private TextMeshProUGUI txt_bgm;
[SerializeField] private TextMeshProUGUI txt_sfx;
[SerializeField] private TextMeshProUGUI txt_master;
[Header("Sprite")]
[SerializeField] private Sprite switch_off;
[SerializeField] private Sprite switch_on;
[Header("Switch Config")]
private float slideDuration = 0.15f;
private float handleOffPositionX = -88.3f;
private float handleOnPositionX = -27.8f;
private float textOnPositionX = -27.8f;
private float textOffPositionX = 30f;
private Color textOnColor = new Color(0.96f, 0.84f, 0.61f);
private Color textOffColor = new Color(0.6f, 0.6f, 0.6f);
[Header("Slider")]
[SerializeField] private Slider slider_bgm;
[SerializeField] private Slider slider_sfx;
[SerializeField] private Slider slider_master;
[Header("Slider Value Level")]
private float valueLevel1 = 0;
private float valueLevel2 = 0.173f;
private float valueLevel3 = 0.393f;
private float valueLevel4 = 0.603f;
private float valueLevel5 = 0.797f;
private float valueLevel6 = 1f;
[Header("slider Text Level")]
[SerializeField] private TextMeshProUGUI txt_level_of_bgm;
[SerializeField] private TextMeshProUGUI txt_level_of_sfx;
[SerializeField] private TextMeshProUGUI txt_level_of_master;
private Coroutine bgmCoroutine;
private Coroutine sfxCoroutine;
private Coroutine masterCoroutine;
private void Update()
{
UpdateSliderText(slider_bgm, txt_level_of_bgm);
UpdateSliderText(slider_sfx, txt_level_of_sfx);
UpdateSliderText(slider_master, txt_level_of_master);
}
private void OnEnable()
{
UpdateSwitchInstant(tog_bgm, handle_bmg, txt_bgm);
UpdateSwitchInstant(tog_sfx, handle_sfx, txt_sfx);
UpdateSwitchInstant(tog_master, handle_master, txt_master);
tog_bgm.onValueChanged.AddListener(OnBgmChanged);
tog_sfx.onValueChanged.AddListener(OnSfxChanged);
tog_master.onValueChanged.AddListener(OnMasterChanged);
}
private void OnDisable()
{
tog_bgm.onValueChanged.RemoveListener(OnBgmChanged);
tog_sfx.onValueChanged.RemoveListener(OnSfxChanged);
tog_master.onValueChanged.RemoveListener(OnMasterChanged);
slider_bgm.onValueChanged.RemoveListener(OnBgmSliderChanged);
slider_sfx.onValueChanged.RemoveListener(OnSfxSliderChanged);
slider_master.onValueChanged.RemoveListener(OnMasterSliderChanged);
}
private void OnBgmChanged(bool isOn)
{
if (bgmCoroutine != null)
{
StopCoroutine(bgmCoroutine);
}
bgmCoroutine = StartCoroutine(SlideSwitchCoroutine(tog_bgm, handle_bmg, txt_bgm));
// TODO: Add logic to change BGM volume or mute state
}
private void OnSfxChanged(bool isOn)
{
if (sfxCoroutine != null)
{
StopCoroutine(sfxCoroutine);
}
sfxCoroutine = StartCoroutine(SlideSwitchCoroutine(tog_sfx, handle_sfx, txt_sfx));
// TODO: Add logic to change SFX volume or mute state
}
private void OnMasterChanged(bool isOn)
{
if (masterCoroutine != null)
{
StopCoroutine(masterCoroutine);
}
masterCoroutine = StartCoroutine(SlideSwitchCoroutine(tog_master, handle_master, txt_master));
// TODO: Add logic to change Master volume or mute state
}
private void OnBgmSliderChanged(float value)
{
UpdateSliderText(slider_bgm, txt_level_of_bgm);
}
private void OnSfxSliderChanged(float value)
{
UpdateSliderText(slider_sfx, txt_level_of_sfx);
}
private void OnMasterSliderChanged(float value)
{
UpdateSliderText(slider_master, txt_level_of_master);
}
private void UpdateSwitchInstant(Toggle toggle, RectTransform handle, TextMeshProUGUI statusText)
{
bool isOn = toggle.isOn;
// Logic circle switch
float handleTargetX = isOn ? handleOnPositionX : handleOffPositionX;
handle.anchoredPosition = new Vector2(handleTargetX, handle.anchoredPosition.y);
// Logic text switch
if (statusText != null)
{
float textTargetX = isOn ? textOnPositionX : textOffPositionX;
statusText.rectTransform.anchoredPosition = new Vector2(textTargetX, statusText.rectTransform.anchoredPosition.y);
statusText.text = isOn ? "Mở" : "Tắt";
statusText.color = isOn ? textOnColor : textOffColor;
}
// Logic background switch
if (handle.TryGetComponent<Image>(out var handleImage))
{
handleImage.sprite = isOn ? switch_on : switch_off;
}
}
private IEnumerator SlideSwitchCoroutine(Toggle toggle, RectTransform handle, TextMeshProUGUI statusText)
{
bool isOn = toggle.isOn;
// Get info target
float handleTargetX = isOn ? handleOnPositionX : handleOffPositionX;
float handleStartX = handle.anchoredPosition.x;
float textTargetX = isOn ? textOnPositionX : textOffPositionX;
float textStartX = statusText != null ? statusText.rectTransform.anchoredPosition.x : 0f;
// Update text and background immediately
if (statusText != null)
{
statusText.text = isOn ? "Mở" : "Tắt";
statusText.color = isOn ? textOnColor : textOffColor;
}
if (handle.TryGetComponent<Image>(out var handleImage))
{
handleImage.sprite = isOn ? switch_on : switch_off;
}
float time = 0f;
while (time < slideDuration)
{
time += Time.deltaTime;
float t = Mathf.Clamp01(time / slideDuration);
float smoothT = Mathf.SmoothStep(0f, 1f, t);
// Move handle
float currentHandleX = Mathf.Lerp(handleStartX, handleTargetX, smoothT);
handle.anchoredPosition = new Vector2(currentHandleX, handle.anchoredPosition.y);
// Move text
if (statusText != null)
{
float currentTextX = Mathf.Lerp(textStartX, textTargetX, smoothT);
statusText.rectTransform.anchoredPosition = new Vector2(currentTextX, statusText.rectTransform.anchoredPosition.y);
}
yield return null;
}
// Position it correctly in the last frame to avoid errors.
handle.anchoredPosition = new Vector2(handleTargetX, handle.anchoredPosition.y);
if (statusText != null)
{
statusText.rectTransform.anchoredPosition = new Vector2(textTargetX, statusText.rectTransform.anchoredPosition.y);
}
}
private void UpdateSliderText(Slider slider, TextMeshProUGUI text)
{
if(slider == null || text == null)
return;
int level = GetLevelFromValue(slider.value);
text.text = $"Mức {level}";
}
private int GetLevelFromValue(float value)
{
float t12 = (valueLevel1 + valueLevel2) * 0.5f;
float t23 = (valueLevel2 + valueLevel3) * 0.5f;
float t34 = (valueLevel3 + valueLevel4) * 0.5f;
float t45 = (valueLevel4 + valueLevel5) * 0.5f;
float t56 = (valueLevel5 + valueLevel6) * 0.5f;
if(value < t12)
return 1;
else if(value < t23)
return 2;
else if(value < t34)
return 3;
else if(value < t45)
return 4;
else if(value < t56)
return 5;
else
return 6;
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 405c79bf7a84c8d499a6733998a87b79
@@ -13,6 +13,7 @@ namespace BrewMonster
[SerializeField]private Button _escapeBtn;
[SerializeField]private Button _btnTask;
[SerializeField]private Button _btnInvntory;
[SerializeField]private Button _btnSettings;
[SerializeField]private Toggle _btnTeam;
[SerializeField]private Toggle _btnTaskTrace;
[SerializeField]private Transform _taskTraceParent;
@@ -30,6 +31,7 @@ namespace BrewMonster
_escapeBtn.onClick.AddListener(OnEscapeClicked);
_btnTask.onClick.AddListener(OnTaskClicked);
_btnInvntory.onClick.AddListener(OnInventoryClicked);
_btnSettings.onClick.AddListener(OnSettingsClicked);
_btnTeam.onValueChanged.AddListener(OnTeamClicked);
_btnTaskTrace.onValueChanged.AddListener(OnTaskTraceClicked);
_btnTeamList.onClick.AddListener(OnTeamListClicked);
@@ -43,6 +45,7 @@ namespace BrewMonster
_escapeBtn.onClick.RemoveListener(OnEscapeClicked);
_btnTask.onClick.RemoveListener(OnTaskClicked);
_btnInvntory.onClick.RemoveListener(OnInventoryClicked);
_btnSettings.onClick.RemoveListener(OnSettingsClicked);
_btnTeam.onValueChanged.RemoveListener(OnTeamClicked);
_btnTaskTrace.onValueChanged.RemoveListener(OnTaskTraceClicked);
_btnTeamList.onClick.RemoveListener(OnTeamListClicked);
@@ -81,6 +84,12 @@ namespace BrewMonster
{
CECUIManager.Instance.ShowUI("Win_Inventory");
}
private void OnSettingsClicked()
{
CECUIManager.Instance.ShowUI("Win_Settings");
}
private void OnTeamClicked(bool isOn)
{
if(isOn)