Compare commits

...

23 Commits

Author SHA1 Message Date
627ddacb10 Fix: User dice timer system.
Fix: User's dice roll attempt was not stopping while the game was paused.
2026-02-23 17:09:04 +05:30
6e420e0282 Added game icon in gameplay.
Addition: Added game icon for recognising each player's turn.

Fix: Added null checks for users timer system.
2026-02-23 16:35:26 +05:30
71b6dee8ac Merge branch 'Gameplay/ashby-gameplay' into Gameplay/main-gameplay 2026-02-23 16:11:39 +05:30
66c71eb098 NullRefFix: Gameplay.
While selecting PvsAI and selecting green, got a null ref due to wrong currentPlayerTurnIndex be passed on.
2026-02-23 16:09:23 +05:30
87dfbaf5d1 Updated safe tiles with flags and final point with LOGO 2026-02-23 15:51:11 +05:30
d79c7973a5 Changed Dice Color 2026-02-17 18:45:31 +05:30
e560024e70 Fixes: Loader script and preseve aspect for brand logo. 2026-02-17 12:49:35 +05:30
bac165c28d Fix: Alignment issue in main menu screen. 2026-02-16 15:56:35 +05:30
46ca785f31 Added brand logo. 2026-02-16 15:01:44 +05:30
9c650a348b Scene changes for properties. 2026-02-13 18:20:29 +05:30
8be8ffae15 Major Refactoring + fixes for new feedback logic + tiny visual fixes with dice logic. 2026-02-13 18:17:23 +05:30
b41e2990fc Updated with all the feedback fixes. 2026-02-12 21:34:08 +05:30
2563f36e7d Player Indication arrow added 2026-02-12 18:07:21 +05:30
b3a05ea6c3 Merge remote-tracking branch 'origin/Gameplay/main-gameplay' into Gameplay/siva-gameplay
# Conflicts:
#	Assets/External-Assets/packages/Project/Scripts/Gameplay/Snake and Ladder/DiceView.cs
2026-02-12 14:57:31 +05:30
9db1a39af7 Merge remote-tracking branch 'origin/Gameplay/main-gameplay' into Gameplay/siva-gameplay
# Conflicts:
#	Assets/External-Assets/packages/Project/Scripts/Gameplay/Snake and Ladder/DiceView.cs
2026-02-12 14:48:15 +05:30
3f68064a5f Restrict Dice roll interaction 2026-02-12 14:38:40 +05:30
370c9f4b57 Modified animation, updated dice roll logic. 2026-02-12 14:11:08 +05:30
8b7efc158e Merge remote-tracking branch 'origin/Gameplay/siva-gameplay' into Gameplay/main-gameplay 2026-02-12 11:54:35 +05:30
fc4aeda01c Fix : Dice roll animation 2026-02-12 11:50:41 +05:30
2cebaa46a9 Merge branch 'Gameplay/main-gameplay' into Gameplay/ashby-gameplay 2026-02-11 19:54:26 +05:30
da4b44957b Applied probability logic for pawns. 2026-02-11 19:53:16 +05:30
83af807d4b Added Dice sprite and animation 2026-02-11 17:28:01 +05:30
97cd17c0cf Added auto selecting logic for player. 2026-02-10 19:24:08 +05:30
75 changed files with 7900 additions and 2553 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

View File

@ -0,0 +1,169 @@
fileFormatVersion: 2
guid: ba663284666654b1abb477ac5ccb8f3d
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 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
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: Logo_GO88 1_0
rect:
serializedVersion: 2
x: 88
y: 152
width: 2444
height: 1104
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 281a1393ddc5148d79a719ca7cd0f112
internalID: 2023667419
vertices: []
indices:
edges: []
weights: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable:
Logo_GO88 1_0: 2023667419
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

View File

@ -0,0 +1,147 @@
fileFormatVersion: 2
guid: 1cfb151daad2e4e719892a83a58ce545
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 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
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8c02139ab26de4dfe860e4cd9b03736a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,80 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: asp1748_29
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 71c0ea837c61f4fa58dea236757d7e9b, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 65619a258b3e04ec5a4d9e3c96956039
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4061e8aa84dfe4eb2a50f6ca6cd2de8a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

View File

@ -0,0 +1,147 @@
fileFormatVersion: 2
guid: 390d47ba6df534413b44212f4f3e46ab
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 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
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

View File

@ -0,0 +1,147 @@
fileFormatVersion: 2
guid: b319e1c209cba4553984a082f038f4d3
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 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
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

View File

@ -0,0 +1,147 @@
fileFormatVersion: 2
guid: a1fb635e62b0b41d5b7bef83dab5b737
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 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
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

View File

@ -0,0 +1,147 @@
fileFormatVersion: 2
guid: badd09bdd1cad4e869f5a86093eb9100
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 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
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,182 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1101 &-6898229064500072479
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: RollDice
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -4380509804427687874}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &-4741003227895343028
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: RollDice
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -4380509804427687874}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &-4380509804427687874
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: DiceRoll
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 6818879043199705446}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: 56866b3f3aa684c4aaae327d408408f5, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Dice View
serializedVersion: 5
m_AnimatorParameters:
- m_Name: RollDice
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: 928477371247330088}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1107 &928477371247330088
AnimatorStateMachine:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 8906461555241454014}
m_Position: {x: 330, y: 120, z: 0}
- serializedVersion: 1
m_State: {fileID: -4380509804427687874}
m_Position: {x: 330, y: 20, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions:
- {fileID: -4741003227895343028}
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 60, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 8906461555241454014}
--- !u!1101 &6818879043199705446
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 8906461555241454014}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 1
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &8906461555241454014
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: DiceRoll_Idle
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: -6898229064500072479}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: 1e051fb85c10145a4a7b1545d2b8eab8, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fc151435589cf4a46ae3e2dc20aa6378
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 KiB

View File

@ -0,0 +1,280 @@
fileFormatVersion: 2
guid: bbe0ebcb7b6854733a0dd63492c4d57d
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 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
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: Dice_0
rect:
serializedVersion: 2
x: 162
y: 429
width: 223
height: 223
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 1c51d9a8a1fe1413c8c957a757094949
internalID: -1704993586
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Dice_2
rect:
serializedVersion: 2
x: 162
y: 722
width: 223
height: 223
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 51577d2c759f24aa78f10850058c42fa
internalID: -446861723
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Dice_3
rect:
serializedVersion: 2
x: 455
y: 429
width: 226
height: 223
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: b7d249b4ca3684517a5c30d8595af541
internalID: -1410956897
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Dice_4
rect:
serializedVersion: 2
x: 455
y: 722
width: 226
height: 223
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: e483cbda05166422fa2b83e73ebf5461
internalID: -216994016
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Dice_5
rect:
serializedVersion: 2
x: 455
y: 136
width: 226
height: 223
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: a79736ce389b84e249d8cfbd84c2a865
internalID: -387705599
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Dice_6
rect:
serializedVersion: 2
x: 162
y: 136
width: 223
height: 223
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: b7a58afd4739a454ab8934ce5c6cd7cc
internalID: -1712661324
vertices: []
indices:
edges: []
weights: []
outline: []
physicsShape: []
bones: []
spriteID: bd1add5ef440642049506ef9345ecac5
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable:
Dice_0: -1704993586
Dice_1: -241868573
Dice_2: -446861723
Dice_3: -1410956897
Dice_4: -216994016
Dice_5: -387705599
Dice_6: -1712661324
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,60 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: DiceIdle
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings: []
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events:
- time: 0
functionName: OnReturnedToIdle
data:
objectReferenceParameter: {fileID: 0}
floatParameter: 0
intParameter: 0
messageOptions: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1e051fb85c10145a4a7b1545d2b8eab8
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 56866b3f3aa684c4aaae327d408408f5
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

View File

@ -0,0 +1,169 @@
fileFormatVersion: 2
guid: 2c0526d99bc3843a4b73e6eb2f3b1376
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 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
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: freepik__background__84200_0
rect:
serializedVersion: 2
x: 267
y: 265
width: 534
height: 520
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 8d303e835051e4a9292b27d8ce204313
internalID: 1572130339
vertices: []
indices:
edges: []
weights: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable:
freepik__background__84200_0: 1572130339
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0017474de88684d92b1a05a4000550ee
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,72 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1102 &-2545934288178809719
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: PlayerIndication_anim
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: 51b02f31ecde547eebbafa571745a246, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1107 &-672237964412992765
AnimatorStateMachine:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: -2545934288178809719}
m_Position: {x: 200, y: 0, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: -2545934288178809719}
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Player Count
serializedVersion: 5
m_AnimatorParameters: []
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: -672237964412992765}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 75a4679d0223349d280cb4d1c51de929
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -0,0 +1,147 @@
fileFormatVersion: 2
guid: e9d88b101d2ed46bd877d1bcb5ea1160
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 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
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,147 @@
fileFormatVersion: 2
guid: 1d36c9b9ea1804a01987f56b706af9af
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 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
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,205 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: PlayerIndication_anim
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 1, y: 1, z: 1}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.33333334
value: {x: 1.3, y: 1.3, z: 1.3}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.6666667
value: {x: 1, y: 1, z: 1}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path:
m_FloatCurves: []
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 3
script: {fileID: 0}
typeID: 4
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.6666667
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.33333334
value: 1.3
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.6666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.x
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.33333334
value: 1.3
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.6666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.y
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.33333334
value: 1.3
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.6666667
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.z
path:
classID: 224
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 51b02f31ecde547eebbafa571745a246
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 1012 KiB

View File

@ -0,0 +1,147 @@
fileFormatVersion: 2
guid: 71c0ea837c61f4fa58dea236757d7e9b
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 1000
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
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e3ea4819072614c93a0c99d87489e004
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

View File

@ -0,0 +1,147 @@
fileFormatVersion: 2
guid: 918d44d1d3507495ebe9a63f04ddfa19
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 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
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

View File

@ -0,0 +1,147 @@
fileFormatVersion: 2
guid: 253fef382e0d74d448ee879e2fc3b43c
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 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
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

View File

@ -0,0 +1,147 @@
fileFormatVersion: 2
guid: c93232af737064b1f93496ea5cdac531
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 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
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

View File

@ -0,0 +1,147 @@
fileFormatVersion: 2
guid: 92ec6ff26880b4457ad1a37e1901816f
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 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
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,32 +1,52 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.Serialization;
using UnityEngine.UI;
using Random = UnityEngine.Random;
public enum DiceSideVal
{
One = 0,
Two = 1,
Three = 2,
Four = 3,
Five = 4,
Six = 5,
}
[Serializable]
public class DiceSideData
{
public DiceSideVal sideVal;
public Sprite sprite;
}
public class DiceView : MonoBehaviour, IBase public class DiceView : MonoBehaviour, IBase
{ {
private Rigidbody rb; [SerializeField] private DiceSideData[] diceSideDatas;
private bool rolling; [SerializeField] private Image diceImage;
[SerializeField] private Sprite defaultSprite;
[SerializeField] private Button diceButton;
[SerializeField] private RectTransform diceRectTransform;
[SerializeField] private int diceVal;
[SerializeField] private DiceSide[] diceSides; private Animator animator;
[SerializeField] private float sideValueTime = 1.2f; private List<int> probabilityValues = new List<int>() { 2, 3, 4 };
[SerializeField] private Vector3 startPos = new Vector3(0, 20, 0);
[Header("Physics Randomness")]
[SerializeField] private float baseSpinForce = 900f;
[SerializeField] private float sideForce = 0.18f;
[SerializeField] private float liftForce = 0.1f;
private Quaternion startRotation;
private Action<int> onRollingComplete = null; private Action<int> onRollingComplete = null;
void Awake()
{
rb = GetComponent<Rigidbody>();
rb.useGravity = false;
transform.localPosition = startPos;
startRotation = transform.localRotation;
}
private IRollBase rollBase = null;
private bool rolling;
private bool hasNoActionOnRoll = false;
private int rolledVal = 0;
private void Awake()
{
animator = GetComponent<Animator>();
}
public void Roll(Action<int> onComplete, bool isBot) public void Roll(Action<int> onComplete, bool isBot)
{ {
Debug.Log($"Start rolling: {rolling}"); Debug.Log($"Start rolling: {rolling}");
@ -34,78 +54,112 @@ public class DiceView : MonoBehaviour, IBase
if (!rolling) if (!rolling)
{ {
Debug.Log($"isBot: {isBot}"); Debug.Log($"isBot: {isBot}");
animator.enabled = true;
onRollingComplete = onComplete; onRollingComplete = onComplete;
StartCoroutine(RollRoutine()); StartRollingAction();
} }
} }
IEnumerator RollRoutine() private void StartRollingAction()
{ {
rolling = true; rolling = true;
rolledVal = 0;
// MICRO DELAY → breaks physics sync between dice // start animation
yield return new WaitForSeconds(UnityEngine.Random.Range(0.01f, 0.06f)); animator.SetTrigger(Ludo_3D_Constants.RollDiceTriggerString);
rb.useGravity = true; if (hasNoActionOnRoll)
// PER-DICE FORCE MULTIPLIER
float spinMultiplier = UnityEngine.Random.Range(0.8f, 1.25f);
// RANDOM TORQUE
rb.AddTorque(
UnityEngine.Random.Range(-baseSpinForce, baseSpinForce) * spinMultiplier,
UnityEngine.Random.Range(-baseSpinForce, baseSpinForce) * spinMultiplier,
UnityEngine.Random.Range(-baseSpinForce, baseSpinForce) * spinMultiplier,
ForceMode.Impulse
);
// RANDOM SIDE FORCE
Vector3 sideDir = new Vector3(
UnityEngine.Random.Range(-1f, 1f),
0f,
UnityEngine.Random.Range(-1f, 1f)
).normalized;
rb.AddForce(sideDir * sideForce, ForceMode.Impulse);
// SMALL UPWARD FORCE
rb.AddForce(Vector3.up * liftForce, ForceMode.Impulse);
yield return new WaitForSeconds(sideValueTime);
int value = GetDiceValue();
//TODO: Use the dice value as needed
Debug.Log($"Dice rolled: {value}");
ResetDice();
onRollingComplete?.Invoke(value);
}
int GetDiceValue()
{
foreach (DiceSide side in diceSides)
{ {
if (side.OnGround()) if (rollBase.SixRollCount == 0)
return side.sideValue; {
rollBase.UpdateMaxRollCount(probabilityValues[Random.Range(0, probabilityValues.Count)]);
}
rollBase.UpdateSixRollCount();
rolledVal = rollBase.SixRollCount == rollBase.MaxRollCount ? Ludo_3D_Constants.Max_Dice_Rolls : GetDiceValue();
}
else
{
rolledVal = GetDiceValue();
} }
return 1; if (diceVal != 0) rolledVal = diceVal;
} }
public void ResetDice() /*
* Summary:
* Call when the dice roll animation is complete
*/
public void OnDiceRollingCompleted()
{ {
rb.useGravity = false; animator.ResetTrigger(Ludo_3D_Constants.RollDiceTriggerString);
rb.velocity = Vector3.zero;
rb.angularVelocity = Vector3.zero; if (rolledVal == Ludo_3D_Constants.Max_Dice_Rolls)
transform.localPosition = startPos; ResetRollData();
ResetData();
onRollingComplete?.Invoke(rolledVal);
}
public void OnReturnedToIdle()
{
Debug.Log($"DiceView :: OnReturnedToIdle: {rolledVal}");
animator.enabled = false;
if (rolledVal == 0)
{
ShowDefaultSprite();
}
else
{
diceImage.sprite = diceSideDatas[rolledVal - 1].sprite;
}
}
private int GetDiceValue()
{
return Random.Range(1, Ludo_3D_Constants.Max_Dice_Rolls + 1);
}
public void ResetRollData()
{
if (rollBase != null) rollBase.ResetRollData();
}
public void ResetData()
{
rollBase = null;
rolling = false; rolling = false;
} }
public void SetDiceButtonInteraction(bool status)
{
diceButton.interactable = status;
}
public void ResetOnSessionEnd() public void ResetOnSessionEnd()
{ {
ResetDice(); ResetData();
transform.localRotation = startRotation;
rolledVal = 0;
OnReturnedToIdle();
diceRectTransform.rotation = Quaternion.identity;
diceRectTransform.localScale = Vector3.one;
onRollingComplete = null; onRollingComplete = null;
} }
public void InitOnNoActionsAfterRoll(IRollBase rollBase, bool state)
{
hasNoActionOnRoll = state;
if (!state)
return;
this.rollBase = rollBase;
}
public void ShowDefaultSprite()
{
Debug.Log($"DiceView :: ShowDefaultSprite");
diceImage.sprite = defaultSprite;
}
} }

View File

@ -629,7 +629,7 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
playerState: 0 playerState: 0
animator: {fileID: 5526766409186502679} animator: {fileID: 5526766409186502679}
playerCountCanvas: {fileID: 5728752331380905399} playerIndicatorCanvas: {fileID: 5728752331380905399}
--- !u!1 &4818123989977612668 --- !u!1 &4818123989977612668
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1593,7 +1593,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: 2.239 value: 2.6
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_LocalEulerAnglesHint.x propertyPath: m_LocalEulerAnglesHint.x
@ -1607,6 +1607,10 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z propertyPath: m_LocalEulerAnglesHint.z
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 1334714064113256010, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_PresetInfoIsWorld
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1708578341718423809, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} - target: {fileID: 1708578341718423809, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_TargetGraphic propertyPath: m_TargetGraphic
value: value:

View File

@ -629,7 +629,7 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
playerState: 0 playerState: 0
animator: {fileID: 5274388487207906813} animator: {fileID: 5274388487207906813}
playerCountCanvas: {fileID: 7923051124467737897} playerIndicatorCanvas: {fileID: 7923051124467737897}
--- !u!1 &5059623752267150313 --- !u!1 &5059623752267150313
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1579,18 +1579,6 @@ PrefabInstance:
propertyPath: m_SizeDelta.y propertyPath: m_SizeDelta.y
value: 1 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_LocalScale.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_LocalScale.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_LocalScale.z
value: 1
objectReference: {fileID: 0}
- target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: 0 value: 0
@ -1625,7 +1613,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: 2.239 value: 2.6
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_LocalEulerAnglesHint.x propertyPath: m_LocalEulerAnglesHint.x
@ -1639,6 +1627,10 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z propertyPath: m_LocalEulerAnglesHint.z
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 1334714064113256010, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_PresetInfoIsWorld
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1708578341718423809, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} - target: {fileID: 1708578341718423809, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_TargetGraphic propertyPath: m_TargetGraphic
value: value:

View File

@ -201,7 +201,7 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
playerState: 0 playerState: 0
animator: {fileID: 232863433340697214} animator: {fileID: 232863433340697214}
playerCountCanvas: {fileID: 1920934309388072333} playerIndicatorCanvas: {fileID: 1920934309388072333}
--- !u!136 &1627116187348267135 --- !u!136 &1627116187348267135
CapsuleCollider: CapsuleCollider:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1579,18 +1579,6 @@ PrefabInstance:
propertyPath: m_SizeDelta.y propertyPath: m_SizeDelta.y
value: 1 value: 1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_LocalScale.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_LocalScale.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_LocalScale.z
value: 1
objectReference: {fileID: 0}
- target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: 0 value: 0
@ -1625,7 +1613,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: 2.239 value: 2.6
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_LocalEulerAnglesHint.x propertyPath: m_LocalEulerAnglesHint.x
@ -1639,6 +1627,10 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z propertyPath: m_LocalEulerAnglesHint.z
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 1334714064113256010, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_PresetInfoIsWorld
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1708578341718423809, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} - target: {fileID: 1708578341718423809, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_TargetGraphic propertyPath: m_TargetGraphic
value: value:

View File

@ -1258,7 +1258,7 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
playerState: 0 playerState: 0
animator: {fileID: 7800412279828783518} animator: {fileID: 7800412279828783518}
playerCountCanvas: {fileID: 941219433310479660} playerIndicatorCanvas: {fileID: 941219433310479660}
--- !u!1 &7074820051352815849 --- !u!1 &7074820051352815849
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1593,7 +1593,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: 2.239 value: 2.6
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} - target: {fileID: 953143927943285832, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_LocalEulerAnglesHint.x propertyPath: m_LocalEulerAnglesHint.x
@ -1607,6 +1607,10 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z propertyPath: m_LocalEulerAnglesHint.z
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 1334714064113256010, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_PresetInfoIsWorld
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1708578341718423809, guid: a925361762f504380a8aa4d7eb87b32c, type: 3} - target: {fileID: 1708578341718423809, guid: a925361762f504380a8aa4d7eb87b32c, type: 3}
propertyPath: m_TargetGraphic propertyPath: m_TargetGraphic
value: value:

View File

@ -11,6 +11,7 @@ GameObject:
- component: {fileID: 65645560966781747} - component: {fileID: 65645560966781747}
- component: {fileID: 2858063052804912079} - component: {fileID: 2858063052804912079}
- component: {fileID: 8752947010238866161} - component: {fileID: 8752947010238866161}
- component: {fileID: 130026720339915370}
m_Layer: 5 m_Layer: 5
m_Name: Player Count m_Name: Player Count
m_TagString: Untagged m_TagString: Untagged
@ -28,7 +29,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 1
m_Children: m_Children:
- {fileID: 8089047016482236660} - {fileID: 8089047016482236660}
- {fileID: 6813413954384782979} - {fileID: 6813413954384782979}
@ -37,8 +38,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0.1}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: -0.40000004, y: -0.2}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2858063052804912079 --- !u!222 &2858063052804912079
CanvasRenderer: CanvasRenderer:
@ -68,7 +69,7 @@ MonoBehaviour:
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_Sprite: {fileID: 21300000, guid: d683a4be9f87743d3b78b0b8761f8f1a, type: 3} m_Sprite: {fileID: 21300000, guid: 1d36c9b9ea1804a01987f56b706af9af, type: 3}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
@ -78,6 +79,27 @@ MonoBehaviour:
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1 m_PixelsPerUnitMultiplier: 1
--- !u!95 &130026720339915370
Animator:
serializedVersion: 5
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1950433650452808236}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: 75a4679d0223349d280cb4d1c51de929, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!1 &3121570579764810185 --- !u!1 &3121570579764810185
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -113,8 +135,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.014999993} m_AnchoredPosition: {x: 0, y: -0.006000042}
m_SizeDelta: {x: 0.030000001, y: 0.000000013969839} m_SizeDelta: {x: 0, y: 0.012}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6912280764899309526 --- !u!222 &6912280764899309526
CanvasRenderer: CanvasRenderer:
@ -144,7 +166,7 @@ MonoBehaviour:
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_Sprite: {fileID: 21300000, guid: af3141ba5ffc841798e2e04325a2bc4a, type: 3} m_Sprite: {fileID: 21300000, guid: e9d88b101d2ed46bd877d1bcb5ea1160, type: 3}
m_Type: 0 m_Type: 0
m_PreserveAspect: 0 m_PreserveAspect: 0
m_FillCenter: 1 m_FillCenter: 1
@ -176,7 +198,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 0 m_IsActive: 1
--- !u!224 &953143927943285832 --- !u!224 &953143927943285832
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -186,7 +208,7 @@ RectTransform:
m_GameObject: {fileID: 4879164135252893718} m_GameObject: {fileID: 4879164135252893718}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1.3, y: 1.7, z: 2}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 65645560966781747} - {fileID: 65645560966781747}
@ -195,7 +217,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 8.79} m_AnchoredPosition: {x: 0, y: 9}
m_SizeDelta: {x: 1, y: 1} m_SizeDelta: {x: 1, y: 1}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!223 &5587250865659051320 --- !u!223 &5587250865659051320
@ -242,7 +264,7 @@ MonoBehaviour:
m_FallbackScreenDPI: 96 m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96 m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1 m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 1 m_PresetInfoIsWorld: 0
--- !u!114 &2739169735767897497 --- !u!114 &2739169735767897497
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -323,7 +345,7 @@ MonoBehaviour:
m_SelectedTrigger: Selected m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled m_DisabledTrigger: Disabled
m_Interactable: 1 m_Interactable: 1
m_TargetGraphic: {fileID: 0} m_TargetGraphic: {fileID: 6293990703772930473}
m_OnClick: m_OnClick:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
@ -374,7 +396,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 0
--- !u!224 &6813413954384782979 --- !u!224 &6813413954384782979
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -0,0 +1,253 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &770534144500286122
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4547155689416384467}
- component: {fileID: 8636401148931874773}
- component: {fileID: 3592825875980183606}
m_Layer: 5
m_Name: Dice
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4547155689416384467
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 770534144500286122}
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: 1
m_Children: []
m_Father: {fileID: 1882416428171655664}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0.4997177, y: -1.3315816}
m_SizeDelta: {x: -50.9302, y: -55.2572}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8636401148931874773
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 770534144500286122}
m_CullTransparentMesh: 1
--- !u!114 &3592825875980183606
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 770534144500286122}
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: 0.96862745, g: 0.78039217, b: 0.37254903, 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: 1572130339, guid: 2c0526d99bc3843a4b73e6eb2f3b1376, 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!1 &1882416428171655665
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1882416428171655664}
- component: {fileID: 1882416428171655662}
- component: {fileID: 1882416428171655663}
- component: {fileID: 1882416428171655661}
- component: {fileID: 3198670228222659179}
- component: {fileID: 4899113815169563360}
m_Layer: 5
m_Name: Dice View
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1882416428171655664
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1882416428171655665}
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: 1
m_Children:
- {fileID: 4547155689416384467}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 100, y: -100}
m_SizeDelta: {x: 120, y: 120}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1882416428171655662
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1882416428171655665}
m_CullTransparentMesh: 1
--- !u!114 &1882416428171655663
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1882416428171655665}
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: 58e0f18b9561a4018b66e3973548335b, type: 3}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &1882416428171655661
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1882416428171655665}
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: 1882416428171655663}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!95 &3198670228222659179
Animator:
serializedVersion: 5
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1882416428171655665}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: fc151435589cf4a46ae3e2dc20aa6378, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!114 &4899113815169563360
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1882416428171655665}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e700eca2e67354017b67213c95bbee09, type: 3}
m_Name:
m_EditorClassIdentifier:
diceSideDatas:
- sideVal: 0
sprite: {fileID: -1712661324, guid: bbe0ebcb7b6854733a0dd63492c4d57d, type: 3}
- sideVal: 1
sprite: {fileID: -446861723, guid: bbe0ebcb7b6854733a0dd63492c4d57d, type: 3}
- sideVal: 2
sprite: {fileID: -1704993586, guid: bbe0ebcb7b6854733a0dd63492c4d57d, type: 3}
- sideVal: 3
sprite: {fileID: -216994016, guid: bbe0ebcb7b6854733a0dd63492c4d57d, type: 3}
- sideVal: 4
sprite: {fileID: -1410956897, guid: bbe0ebcb7b6854733a0dd63492c4d57d, type: 3}
- sideVal: 5
sprite: {fileID: -387705599, guid: bbe0ebcb7b6854733a0dd63492c4d57d, type: 3}
diceImage: {fileID: 3592825875980183606}
defaultSprite: {fileID: 1572130339, guid: 2c0526d99bc3843a4b73e6eb2f3b1376, type: 3}
diceButton: {fileID: 1882416428171655661}
diceRectTransform: {fileID: 4547155689416384467}
diceVal: 0

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 94fc731c540da43c9ab09386da3501df
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 05273ddf992ca4671b13f0b4b9dde85d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,11 @@
public interface IRollBase
{
public int SixRollCount { get; }
public int MaxRollCount { get; }
void UpdateSixRollCount();
void UpdateMaxRollCount(int val);
void ResetRollData();
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 4683cbbafe11541cf8a71cdd12df62ac
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -10,4 +10,6 @@ public static class Ludo_3D_Constants
public const string Player2_Name = "Player2"; public const string Player2_Name = "Player2";
public const string Player3_Name = "Player3"; public const string Player3_Name = "Player3";
public const string Player4_Name = "Player4"; public const string Player4_Name = "Player4";
public const string RollDiceTriggerString = "RollDice";
} }

View File

@ -4,6 +4,8 @@ using System.Linq;
using DG.Tweening; using DG.Tweening;
using UnityEngine; using UnityEngine;
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading;
using UnityEngine.Serialization;
public enum BotMove public enum BotMove
{ {
@ -25,10 +27,12 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
[SerializeField] DiceRollHandler diceRollHandler; [SerializeField] DiceRollHandler diceRollHandler;
[SerializeField] private int diceValue = 0; [SerializeField] private int diceValue = 0;
[SerializeField] private float botDiceRollDelay = 0.25f; [SerializeField] private float diceRollDelayForBot = 0.5f;
[SerializeField] private float diceRollDelayForUser = 0.5f;
[SerializeField] private int maxDiceSixRollCounter = 2; [SerializeField] private int maxDiceSixRollCounter = 2;
[SerializeField] private int totalStepsForCharacter = 57; [SerializeField] private int totalStepsForCharacter = 57;
[SerializeField] private int currentPlayerTurnMaxTime = 5; [SerializeField] private int currentPlayerTurnMaxTime = 5;
[SerializeField] private int currentPlayerSelectionMaxTime = 5;
[SerializeField] private TextMeshProUGUI diceText; [SerializeField] private TextMeshProUGUI diceText;
@ -42,11 +46,11 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
[SerializeField] private PlayerGameData[] playerGameDatas; [SerializeField] private PlayerGameData[] playerGameDatas;
[SerializeField] private PlayerBaseHandler playerBaseHandler; [SerializeField] private PlayerBaseHandler playerBaseHandler;
public PlayerType CurrentPlayerTypeTurn => currentPlayerTypeTurn;
public PlayerBaseHandler PlayerBaseHandler => playerBaseHandler; public PlayerBaseHandler PlayerBaseHandler => playerBaseHandler;
private PlayerType currentPlayerTypeTurn; private PlayerType currentPlayerTypeTurn;
private TimerSystem currentPlayerTurnTimer; private TimerSystem currentPlayerTurnTimer;
private TimerSystem savedCurrentPlayerTurnTimerInst;
private int currentPlayerTurnIndex = 0; private int currentPlayerTurnIndex = 0;
private List<PlayerType> allPlayerTypes = new List<PlayerType>(); private List<PlayerType> allPlayerTypes = new List<PlayerType>();
@ -76,7 +80,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
private bool CanRollDiceAgain = false; // used for when you get a 6 or when you reach the finish point private bool CanRollDiceAgain = false; // used for when you get a 6 or when you reach the finish point
private int diceSixRollCounter = 0; private int diceSixRollCounter = 0;
private List<PlayerPawn> availPlayers = new List<PlayerPawn>(); private List<PlayerPawn> availPlayersToMove = new List<PlayerPawn>();
private bool canSwitchPlayer = true; private bool canSwitchPlayer = true;
public bool CanRollDiceForUser public bool CanRollDiceForUser
@ -92,7 +96,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
public List<PlayerData> PlayerDatas => playerDatas; public List<PlayerData> PlayerDatas => playerDatas;
public List<PlayerType> PlayerTypesCollection => allPlayerTypes; public List<PlayerType> PlayerTypesCollection => allPlayerTypes;
public Action OnGameResumed = null; public Action onGameResumed = null;
public void Initialize() public void Initialize()
{ {
@ -129,8 +133,6 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
playerBaseHandler.InitPlayerTypes(allPlayerTypes); playerBaseHandler.InitPlayerTypes(allPlayerTypes);
InitCurrentGamePlayerInfo(); InitCurrentGamePlayerInfo();
// SetCanRollDiceForUser(true);
} }
public void InitPlayerTypesForBotMatch(PlayerData selectedPlayerData, int botCount) public void InitPlayerTypesForBotMatch(PlayerData selectedPlayerData, int botCount)
@ -169,7 +171,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
private void HandleDiceRollWithDelay() private void HandleDiceRollWithDelay()
{ {
Invoke(nameof(HandleDiceRoll), botDiceRollDelay); Invoke(nameof(RollDiceForBot), diceRollDelayForBot);
} }
private void InitBotRuntimeData() private void InitBotRuntimeData()
@ -240,37 +242,58 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
playerBaseHandler.ShowSelectedPlayerBase(currentPlayerTypeTurn, false); playerBaseHandler.ShowSelectedPlayerBase(currentPlayerTypeTurn, false);
currentPlayerTypeTurn = playerType; currentPlayerTypeTurn = playerType;
playerBaseHandler.ShowSelectedPlayerBase(currentPlayerTypeTurn, true); playerBaseHandler.ShowSelectedPlayerBase(currentPlayerTypeTurn, true);
UpdateTurnTimer();
} }
private void UpdateTurnTimer() private void UpdateDiceView()
{
diceRollHandler.DiceView.SetDiceButtonInteraction(true);
diceRollHandler.DiceView.ShowDefaultSprite();
UpdateResponseTimerForUser(currentPlayerMaxTime: currentPlayerTurnMaxTime, () => RollDiceForUser());
}
private void UpdateDiceViewForBot()
{
UpdateDiceView();
HandleDiceRollWithDelay();
}
private void UpdateResponseTimerForUser(int currentPlayerMaxTime, Action onComplete)
{ {
if (gameModeHandler.CurrentGameModeType == GameModeType.Bot) if (gameModeHandler.CurrentGameModeType == GameModeType.Bot)
{ {
bool isBotTurn = botTypesInGame.Contains(currentPlayerTypeTurn); bool isBotTurn = botTypesInGame.Contains(currentPlayerTypeTurn);
SetCanRollDiceForUser(!isBotTurn); // SetCanRollDiceForUser(!isBotTurn); // TODO :: Need to change
if (isBotTurn) if (isBotTurn)
{ {
currentPlayerTurnTimer?.KillTimer();
uIManager.UpdatePlayerTurnText(currentPlayerTypeTurn); uIManager.UpdatePlayerTurnText(currentPlayerTypeTurn);
uIManager.UpdatePlayerTurnIcon(currentPlayerTypeTurn);
return; return;
} }
} }
else // else
SetCanRollDiceForUser(true); // SetCanRollDiceForUser(true); // TODO :: Need to change
uIManager.UpdatePlayerTurnText(currentPlayerTypeTurn, currentPlayerTurnMaxTime); uIManager.UpdatePlayerTurnText(currentPlayerTypeTurn, currentPlayerMaxTime);
uIManager.UpdatePlayerTurnIcon(currentPlayerTypeTurn);
if (currentPlayerTurnTimer == null) if (currentPlayerTurnTimer == null)
currentPlayerTurnTimer = new TimerSystem(); currentPlayerTurnTimer = new TimerSystem();
currentPlayerTurnTimer.Init(currentPlayerTurnMaxTime, onComplete: () => currentPlayerTurnTimer.Init(currentPlayerMaxTime, onComplete: () =>
{ {
Debug.Log($"currentPlayerTurnTimer: HandleDiceViewForUser"); Debug.Log($"currentPlayerTurnTimer: HandleDiceViewForUser");
diceRollHandler.HandleDiceViewForUser(); onComplete?.Invoke();
}, inProgress: (remTime) => }, inProgress: (remTime) =>
{ {
uIManager.UpdatePlayerTurnText(currentPlayerTypeTurn, currentPlayerTurnMaxTime - (int)remTime); if (HasGamePausedForUser())
{
savedCurrentPlayerTurnTimerInst = currentPlayerTurnTimer;
currentPlayerTurnTimer = null;
return;
}
uIManager.UpdatePlayerTurnText(currentPlayerTypeTurn, currentPlayerMaxTime - (int)remTime);
}); });
} }
@ -289,12 +312,15 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
private void ResetCurrentPlayerTurnTimer() private void ResetCurrentPlayerTurnTimer()
{ {
currentPlayerTurnTimer.KillTimer(); currentPlayerTurnTimer?.KillTimer();
} }
public void InitCurrentGamePlayerInfo() public void InitCurrentGamePlayerInfo()
{ {
currentPlayerTurnIndex = 0;
UpdateCurrentPlayerTurn(allPlayerTypes[currentPlayerTurnIndex]); UpdateCurrentPlayerTurn(allPlayerTypes[currentPlayerTurnIndex]);
SetCanRollDiceForUser(IsUsersTurn());
UpdateDiceView();
Debug.Log($"currentPlayerTypeTurn: {currentPlayerTypeTurn}"); Debug.Log($"currentPlayerTypeTurn: {currentPlayerTypeTurn}");
#if UNITY_EDITOR #if UNITY_EDITOR
@ -336,11 +362,15 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
} }
} }
public void EnablePlayerSelectionStates(bool state) public void SetPlayerSelectionStates(bool state, Predicate<PlayerState> skipPredicate = null)
{ {
foreach (var playerPawn in playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict) foreach (var playerPawn in playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict)
{ {
if (playerPawn.Value.GetPlayerState() == PlayerState.InFinishingPath) continue; if (skipPredicate != null && skipPredicate.Invoke(playerPawn.Value.GetPlayerState()))
{
playerPawn.Value.SetPlayerSelectionState(false);
continue;
}
playerPawn.Value.SetPlayerSelectionState(state); playerPawn.Value.SetPlayerSelectionState(state);
} }
@ -348,8 +378,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
public void OnDiceInteracted() public void OnDiceInteracted()
{ {
ResetCurrentPlayerTurnTimer(); RollDiceForUser();
diceRollHandler.HandleDiceViewForUser();
} }
public void RollDiceForPlayer(int rolledVal) public void RollDiceForPlayer(int rolledVal)
@ -396,7 +425,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
// What happens when you get a 6 // What happens when you get a 6
private void SelectPawnFromBotBase() private void SelectPawnFromBotBase()
{ {
if (canSwitchPlayer || availPlayers.Count() < 1 && !CanRollDiceAgain || !botTypesInGame.Contains(currentPlayerTypeTurn)) if (canSwitchPlayer || availPlayersToMove.Count() < 1 && !CanRollDiceAgain || !botTypesInGame.Contains(currentPlayerTypeTurn))
{ {
Debug.Log($"returning from SelectPawnFromBotBase"); Debug.Log($"returning from SelectPawnFromBotBase");
return; // Have a better check here return; // Have a better check here
@ -408,12 +437,15 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
int savedPlayerId = -1; int savedPlayerId = -1;
PlayerPawn pawn = null; PlayerPawn pawn = null;
Debug.Log($"SelectPawnFromBotBase: availPlayers.Count(): {availPlayers.Count()}, CanRollDiceAgain: {CanRollDiceAgain}"); Debug.Log($"SelectPawnFromBotBase: availPlayers.Count(): {availPlayersToMove.Count()}, CanRollDiceAgain: {CanRollDiceAgain}");
InitActivePlayers();
#if UNITY_EDITOR
if (playerGameDatasDict[currentPlayerTypeTurn].totalPawnsInHome == 0) if (playerGameDatasDict[currentPlayerTypeTurn].totalPawnsInHome == 0)
{ {
UpdateActivePlayersAndSetDisplay(true); SetDisplayCountForAllAvailPlayers(true);
} }
#endif
if (CanRollDiceAgain) // got a 6 roll value if (CanRollDiceAgain) // got a 6 roll value
{ {
@ -428,7 +460,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
} }
Debug.Log($"Before Iterating"); Debug.Log($"Before Iterating");
foreach (var playerPawn in availPlayers) foreach (var playerPawn in availPlayersToMove)
{ {
int possibleSteps = 0; int possibleSteps = 0;
Tile possibleTileData = null; Tile possibleTileData = null;
@ -513,9 +545,11 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
{ {
return; return;
} }
if (CanRollDiceAgain) if (CanRollDiceAgain)
HandleDiceRoll(); {
RollDiceForBot();
}
else else
SwitchPlayer(); SwitchPlayer();
} }
@ -570,6 +604,11 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
return possibleSteps > TilesManager.GetGeneralTilesLength() - 1; return possibleSteps > TilesManager.GetGeneralTilesLength() - 1;
} }
private bool HasNoPlayersTravelling() => Mathf.Abs(availPlayersToMove.Count - playerGameDatasDict[currentPlayerTypeTurn].totalPawnsInFinishingPath) < 1;
private bool IsUsersTurn() => gameModeHandler.CurrentGameModeType != GameModeType.Bot ||
!botTypesInGame.Contains(currentPlayerTypeTurn);
public void OnDiceRolled(int rolledVal) public void OnDiceRolled(int rolledVal)
{ {
SetCanRollDiceForUser(false); SetCanRollDiceForUser(false);
@ -578,17 +617,15 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
Debug.Log($"Tile Index :: LUDO :: rolledVal: {rolledVal} :: {currentPlayerTypeTurn}"); Debug.Log($"Tile Index :: LUDO :: rolledVal: {rolledVal} :: {currentPlayerTypeTurn}");
diceRolledValue = rolledVal; diceRolledValue = rolledVal;
diceText.text = $"{diceRolledValue}"; diceText.text = $"{diceRolledValue}";
availPlayers = new List<PlayerPawn>();
if (!CanRollDiceAgain) // remove this check for showing arrow logic
if (!CanRollDiceAgain)
{ {
UpdateActivePlayersAndSetDisplay(true); #if UNITY_EDITOR
SetDisplayCountForAllAvailPlayers(true);
#endif
} }
else
{ FilterAvailablePlayersToMove();
InitActivePlayers();
}
if (rolledVal == Ludo_3D_Constants.Max_Dice_Rolls) if (rolledVal == Ludo_3D_Constants.Max_Dice_Rolls)
{ {
canSwitchPlayer = false; canSwitchPlayer = false;
@ -596,81 +633,145 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
// also play a simple animation before selecting // also play a simple animation before selecting
CanRollDiceAgain = true; CanRollDiceAgain = true;
diceSixRollCounter++; diceSixRollCounter++;
if (IsUsersTurn())
{
Debug.Log($"availPlayersToMove.Count < 1: {availPlayersToMove.Count < 1} || HasNoPlayersTravelling(): {HasNoPlayersTravelling()}");
if (availPlayersToMove.Count < 1 || HasNoPlayersTravelling())
{
if (playerGameDatasDict[currentPlayerTypeTurn].totalPawnsInHome > 0)
{
OnPawnSelected(playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Values
.FirstOrDefault(pawn => pawn.GetPlayerState() == PlayerState.InHome));
return;
}
}
else
{
if (playerGameDatasDict[currentPlayerTypeTurn].totalPawnsInHome < 1 && CanMoveSoloPlayer())
{
SetPlayerSelectionStates(false);
OnPawnSelected(availPlayersToMove[0]);
return;
}
}
}
#if UNITY_EDITOR #if UNITY_EDITOR
pointerMeshRend.material = selectMat; pointerMeshRend.material = selectMat;
#endif #endif
foreach (var playerPawn in playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict)
if (playerPawn.Value.GetPlayerState() == PlayerState.InFinishingPath)
playerPawn.Value.SetPlayerSelectionState(false);
Debug.Log($"### AreAllPawnsInFinishingPath"); Debug.Log($"### AreAllPawnsInFinishingPath");
if (AreAllPawnsInFinishingPath()) if (AreAllPawnsInFinishingPath())
{ {
SetCanRollDiceForUser(gameModeHandler.CurrentGameModeType != GameModeType.Bot || !botTypesInGame.Contains(currentPlayerTypeTurn)); SetCanRollDiceForUser(IsUsersTurn());
UpdateResponseTimerForUser(currentPlayerSelectionMaxTime, () => RollDiceForUser());
CheckForMaxDiceRollAttempt();
return; return;
} }
Debug.Log($"### EnablePlayerSelectionStates"); SetPlayerSelectionStates(true, (state) => state == PlayerState.InFinishingPath || state == PlayerState.HasFinished);
EnablePlayerSelectionStates(true);
// pointerMeshRend.materials[0] = selectMat;
} }
else // if there are any other pawns that are in safe or moving state else
{ {
// for player's logic Debug.Log($"before CustomAvailablePlayers: {availPlayersToMove.Count}");
int customAvailPlayers = availPlayers.Count(); Debug.Log($"CustomAvailablePlayers: {availPlayersToMove.Count}");
Debug.Log($"before CustomAvailablePlayers: {customAvailPlayers}"); canSwitchPlayer = availPlayersToMove.Count < 1;
List<int> indexesToRemove = new List<int>();
for (int i = 0; i < availPlayers.Count; i++)
{
Debug.Log($"## playerPawn.GetPlayerState(): {availPlayers[i].GetPlayerState()}");
if (availPlayers[i].GetPlayerState() == PlayerState.InFinishingPath)
{
Debug.Log($"diceRolledValue: {diceRolledValue}, FinishingDataLen: {TilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn)}, playerPawn.CurrentTileIndex: {availPlayers[i].CurrentTileIndex}");
if (diceRolledValue <= TilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn) - (availPlayers[i].CurrentTileIndex + 1))
{
availPlayers[i].SetPlayerSelectionState(true);
}
else
{
indexesToRemove.Add(i);
availPlayers[i].SetPlayerSelectionState(false);
availPlayers[i].ShowPlayerCountCanvas(false);
customAvailPlayers--;
}
continue;
}
availPlayers[i].SetPlayerSelectionState(true);
}
for (int idx = indexesToRemove.Count - 1; idx >= 0; idx--)
availPlayers.RemoveAt(idx);
// if (availPlayers.Count() < 1)
Debug.Log($"CustomAvailablePlayers: {customAvailPlayers}");
canSwitchPlayer = customAvailPlayers < 1;
CanRollDiceAgain = false; CanRollDiceAgain = false;
} }
diceRollHandler.DiceView.SetDiceButtonInteraction(CanRollDiceAgain);
Debug.Log($"CanRollDiceAgain: {CanRollDiceAgain}, canSwitchPlayer: {canSwitchPlayer}"); Debug.Log($"CanRollDiceAgain: {CanRollDiceAgain}, canSwitchPlayer: {canSwitchPlayer}");
if (IsUsersTurn())
{
Action onComplete = null;
if (CanRollDiceAgain && availPlayersToMove.Count < 1 &&
playerGameDatasDict[currentPlayerTypeTurn].totalPawnsInHome > 0)
{
onComplete = () => OnPawnSelected(playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Values
.FirstOrDefault(pawn => pawn.GetPlayerState() == PlayerState.InHome));
UpdateResponseTimerForUser(currentPlayerSelectionMaxTime, () => onComplete?.Invoke());
}
else if (availPlayersToMove.Count > 0)
{
if (CanRollDiceAgain && playerGameDatasDict[currentPlayerTypeTurn].totalPawnsInHome > 0)
{
onComplete = () => OnPawnSelected(playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Values
.FirstOrDefault(pawn => pawn.GetPlayerState() == PlayerState.InHome));
UpdateResponseTimerForUser(currentPlayerSelectionMaxTime, () => onComplete?.Invoke());
return;
}
if (CanMoveSoloPlayer())
{
SetPlayerSelectionStates(false);
OnPawnSelected(availPlayersToMove[0]);
return;
}
onComplete = () => OnPawnSelected(availPlayersToMove.OrderByDescending(pawn => pawn.StepsTaken).FirstOrDefault());
UpdateResponseTimerForUser(currentPlayerSelectionMaxTime, () => onComplete?.Invoke());
}
}
} }
private void UpdateActivePlayersAndSetDisplay(bool state) private void FilterAvailablePlayersToMove()
{ {
InitActivePlayers(); List<int> indexesToRemove = new List<int>();
SetDisplayCountForAllAvailPlayers(state);
for (int i = 0; i < availPlayersToMove.Count; i++)
{
Debug.Log($"## playerPawn.GetPlayerState(): {availPlayersToMove[i].GetPlayerState()}");
if (availPlayersToMove[i].GetPlayerState() == PlayerState.InFinishingPath)
{
Debug.Log($"diceRolledValue: {diceRolledValue}, FinishingDataLen: {TilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn)}, playerPawn.CurrentTileIndex: {availPlayersToMove[i].CurrentTileIndex}");
if (diceRolledValue <= TilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn) - (availPlayersToMove[i].CurrentTileIndex + 1))
{
availPlayersToMove[i].SetPlayerSelectionState(true);
}
else
{
indexesToRemove.Add(i);
availPlayersToMove[i].SetPlayerSelectionState(false);
#if UNITY_EDITOR
availPlayersToMove[i].ShowPlayerCountCanvas(false);
#endif
}
continue;
}
availPlayersToMove[i].SetPlayerSelectionState(true);
}
for (int idx = indexesToRemove.Count - 1; idx >= 0; idx--)
availPlayersToMove.RemoveAt(idx);
}
private bool CanMoveSoloPlayer()
{
if (availPlayersToMove.Count == 1)
{
if (availPlayersToMove[0].GetPlayerState() == PlayerState.InSafeZone || availPlayersToMove[0].GetPlayerState() == PlayerState.Moving
|| availPlayersToMove[0].GetPlayerState() == PlayerState.InFinishingPath)
{
return true;
}
}
return false;
} }
private void InitActivePlayers() private void InitActivePlayers()
{ {
availPlayers = playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Values.Select(pawn => pawn) availPlayersToMove = new List<PlayerPawn>();
availPlayersToMove = playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Values.Select(pawn => pawn)
.Where(pawn => pawn.GetPlayerState() == PlayerState.InSafeZone || .Where(pawn => pawn.GetPlayerState() == PlayerState.InSafeZone ||
pawn.GetPlayerState() == PlayerState.Moving || pawn.GetPlayerState() == PlayerState.Moving ||
pawn.GetPlayerState() == PlayerState.InFinishingPath).ToList(); pawn.GetPlayerState() == PlayerState.InFinishingPath).ToList();
@ -698,6 +799,12 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
private void UpdatePlayerState(PlayerPawn playerPawn, PlayerState playerState) private void UpdatePlayerState(PlayerPawn playerPawn, PlayerState playerState)
{ {
if (!playerPawn)
{
// Debug.LogError($"Player pawn is null");
return;
}
Debug.Log($"#### UpdatePlayerState "); Debug.Log($"#### UpdatePlayerState ");
playerGameDatasDict[playerPawn.PlayerType].playerPawnsDict[playerPawn.PlayerId] = playerPawn; playerGameDatasDict[playerPawn.PlayerType].playerPawnsDict[playerPawn.PlayerId] = playerPawn;
playerGameDatasDict[playerPawn.PlayerType].playerPawnsDict[playerPawn.PlayerId].SetPlayerState(playerState); playerGameDatasDict[playerPawn.PlayerType].playerPawnsDict[playerPawn.PlayerId].SetPlayerState(playerState);
@ -708,47 +815,90 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
{ {
if (CanRollDiceAgain) if (CanRollDiceAgain)
{ {
HandleDiceRoll(); RollDiceForBot();
} }
} }
private void HandleDiceRoll() private void RollDiceForUser()
{
ResetCurrentPlayerTurnTimer();
InitActivePlayers();
bool canUsePawnsFromHome = CanUsePawnsFromHome();
diceRollHandler.HandleDiceViewForUser(
hasNoActionOnRoll: canUsePawnsFromHome,
playerBase: canUsePawnsFromHome ? PlayerBaseHandler.GetPlayerBase(currentPlayerTypeTurn) : null);
}
private void RollDiceForBot()
{
ResetCurrentPlayerTurnTimer();
InitActivePlayers();
HandleDiceRollForBot();
}
/***
* Summary:
* Scenario where the user/bot has no other move when some of the pawns/characters out of home
* are in finishing path and doesn't have a move from dice rolled value
*/
private bool CanUsePawnsFromHome()
{
return playerGameDatasDict[currentPlayerTypeTurn].totalPawnsInHome > 0 && HasNoPlayersTravelling();
}
private void HandleDiceRollForBot()
{ {
if (isDebugAITest) if (isDebugAITest)
diceRollHandler.HandleDiceViewForBot((rollVal) => RollDiceForBot(rollVal), diceValue == 0 ? UnityEngine.Random.Range(1, Ludo_3D_Constants.Max_Dice_Rolls + 1) : diceValue); diceRollHandler.HandleDiceViewForBot((rollVal) => RollDiceForBot(rollVal),
else diceValue == 0 ? UnityEngine.Random.Range(1, Ludo_3D_Constants.Max_Dice_Rolls + 1) : diceValue);
diceRollHandler.HandleDiceViewForBot((rollVal) => RollDiceForBot(rollVal)); else
{
bool canUsePawnsFromHome = CanUsePawnsFromHome();
diceRollHandler.HandleDiceViewForBot(
(rollVal) => RollDiceForBot(rollVal),
hasNoActionOnRoll: canUsePawnsFromHome,
playerBase: canUsePawnsFromHome ? PlayerBaseHandler.GetPlayerBase(currentPlayerTypeTurn) : null);
}
} }
public void OnPawnSelected(PlayerPawn selectedPawn) public void OnPawnSelected(PlayerPawn selectedPawn)
{ {
EnablePlayerSelectionStates(false); // TODO :: Hide the selectable characters indicator here
SetPlayerSelectionStates(false);
if (IsUsersTurn()) currentPlayerTurnTimer.KillTimer();
PlayerGameData playerGameData = playerGameDatasDict[currentPlayerTypeTurn]; PlayerGameData playerGameData = playerGameDatasDict[currentPlayerTypeTurn];
Debug.Log($"playerPawn.GetPlayerState(): {selectedPawn.GetPlayerState()}"); Debug.Log($"playerPawn.GetPlayerState(): {selectedPawn.GetPlayerState()}");
#if UNITY_EDITOR
selectedPawn.ShowPlayerCountCanvas(false);
#endif
if (selectedPawn.GetPlayerState() == PlayerState.InHome) if (selectedPawn.GetPlayerState() == PlayerState.InHome)
{ {
Tile targetTile = TilesManager.RetrieveTileBasedOnIndex(playerGameData.startIndex); Tile targetTile = TilesManager.RetrieveTileBasedOnIndex(playerGameData.startIndex);
selectedPawn.ShowPlayerCountCanvas(false);
selectedPawn.MoveToTile( selectedPawn.MoveToTile(
TilesManager.GetAndInitPositionInsideSafeZone(selectedPawn, targetTile, currentPlayerTypeTurn), TilesManager.GetAndInitPositionInsideSafeZone(selectedPawn, targetTile, currentPlayerTypeTurn),
onComplete: () => onComplete: () =>
{ {
playerGameDatasDict[playerGameData.playerType].totalPawnsInHome--; playerGameDatasDict[playerGameData.playerType].totalPawnsInHome--;
UpdatePlayerState(selectedPawn, PlayerState.InSafeZone); UpdatePlayerState(selectedPawn, PlayerState.InSafeZone);
#if UNITY_EDITOR
ShowUpdatedPlayerCountOnTile(selectedPawn); ShowUpdatedPlayerCountOnTile(selectedPawn);
#endif
if (CheckForMaxDiceRollAttempt()) if (CheckForMaxDiceRollAttempt())
{ {
return; return;
} }
if (selectedPawn.IsBotPlayer) if (selectedPawn.IsBotPlayer)
CheckDiceRollForBot(); CheckDiceRollForBot();
else else
UpdateTurnTimer(); {
SetCanRollDiceForUser(IsUsersTurn());
UpdateResponseTimerForUser(currentPlayerMaxTime: currentPlayerTurnMaxTime, () => RollDiceForUser());
}
}, playerGameData.startIndex); }, playerGameData.startIndex);
return; return;
@ -758,18 +908,21 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
Tile currentSittingTile = TilesManager.RetrieveFinishingTileBasedOnIndex(selectedPawn.PlayerType, selectedPawn.CurrentTileIndex); Tile currentSittingTile = TilesManager.RetrieveFinishingTileBasedOnIndex(selectedPawn.PlayerType, selectedPawn.CurrentTileIndex);
currentSittingTile.ResetPlayerPawn(selectedPawn); currentSittingTile.ResetPlayerPawn(selectedPawn);
#if UNITY_EDITOR
if (currentSittingTile.HasPawnsAvailable) if (currentSittingTile.HasPawnsAvailable)
{ {
var playerPawns = currentSittingTile.GetPlayerPawns(); var playerPawns = currentSittingTile.GetPlayerPawns();
foreach (var pawn in playerPawns) foreach (var pawn in playerPawns)
ShowUpdatedPlayerCountOnTile(pawn); ShowUpdatedPlayerCountOnTile(pawn);
} }
#endif
ApplyFinishingPathLogic(selectedPawn); ApplyFinishingPathLogic(selectedPawn);
} }
else if (selectedPawn.CurrentTileIndex == playerGameDatasDict[currentPlayerTypeTurn].endIndex) else if (selectedPawn.CurrentTileIndex == playerGameDatasDict[currentPlayerTypeTurn].endIndex)
{ {
TilesManager.RetrieveTileBasedOnIndex(selectedPawn.CurrentTileIndex).ResetPlayerPawn(selectedPawn); TilesManager.RetrieveTileBasedOnIndex(selectedPawn.CurrentTileIndex).ResetPlayerPawn(selectedPawn);
playerGameDatasDict[currentPlayerTypeTurn].totalPawnsInFinishingPath++;
ApplyFinishingPathLogic(selectedPawn); ApplyFinishingPathLogic(selectedPawn);
} }
else if (selectedPawn.GetPlayerState() == PlayerState.InSafeZone || selectedPawn.GetPlayerState() == PlayerState.Moving) else if (selectedPawn.GetPlayerState() == PlayerState.InSafeZone || selectedPawn.GetPlayerState() == PlayerState.Moving)
@ -795,22 +948,26 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
pawn.MoveToCustomTilePosition(currentSittingSafeTile.CenterPlacementPosition); pawn.MoveToCustomTilePosition(currentSittingSafeTile.CenterPlacementPosition);
} }
#if UNITY_EDITOR
if (currentSittingSafeTile.ContainsPlayerType(currentPlayerTypeTurn)) if (currentSittingSafeTile.ContainsPlayerType(currentPlayerTypeTurn))
{ {
var playerPawns = currentSittingSafeTile.GetPlayerPawns(currentPlayerTypeTurn); var playerPawns = currentSittingSafeTile.GetPlayerPawns(currentPlayerTypeTurn);
foreach (var pawn in playerPawns) foreach (var pawn in playerPawns)
ShowUpdatedPlayerCountOnTile(pawn); ShowUpdatedPlayerCountOnTile(pawn);
} }
#endif
} }
else else
{ {
currentSittingTile.ResetPlayerPawn(selectedPawn); currentSittingTile.ResetPlayerPawn(selectedPawn);
#if UNITY_EDITOR
if (currentSittingTile.HasPawnsAvailable) if (currentSittingTile.HasPawnsAvailable)
{ {
var playerPawns = currentSittingTile.GetPlayerPawns(); var playerPawns = currentSittingTile.GetPlayerPawns();
foreach (var pawn in playerPawns) foreach (var pawn in playerPawns)
ShowUpdatedPlayerCountOnTile(pawn); ShowUpdatedPlayerCountOnTile(pawn);
} }
#endif
} }
MoveThroughTiles(selectedPawn, nextTileIdx, targetIndex: targetIdx); MoveThroughTiles(selectedPawn, nextTileIdx, targetIndex: targetIdx);
@ -825,7 +982,6 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
Debug.Log($"TargetIdx: {targetIdx}, finishingPathIndex: {finishingPathIndex}"); Debug.Log($"TargetIdx: {targetIdx}, finishingPathIndex: {finishingPathIndex}");
playerPawn.ShowPlayerCountCanvas(false);
MoveThroughFinishingPath(playerPawn, finishingPathIndex, targetIdx); MoveThroughFinishingPath(playerPawn, finishingPathIndex, targetIdx);
} }
@ -843,10 +999,13 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
Debug.Log($"currentPlayerTurn: {currentPlayerTypeTurn}"); Debug.Log($"currentPlayerTurn: {currentPlayerTypeTurn}");
Debug.Log($"currentPlayerTurnIndex: {currentPlayerTurnIndex}"); Debug.Log($"currentPlayerTurnIndex: {currentPlayerTurnIndex}");
Debug.Log($"before SwitchPlayer availPlayers: {availPlayers.Count}, playerPawn: {playerPawn}"); Debug.Log($"before SwitchPlayer availPlayers: {availPlayersToMove.Count}, playerPawn: {playerPawn}");
UpdateActivePlayersAndSetDisplay(false); InitActivePlayers();
Debug.Log($"after SwitchPlayer availPlayers: {availPlayers.Count}, playerPawn: {playerPawn}"); #if UNITY_EDITOR
SetDisplayCountForAllAvailPlayers(false);
#endif
Debug.Log($"after SwitchPlayer availPlayers: {availPlayersToMove.Count}, playerPawn: {playerPawn}");
Debug.Log($"after allPlayerTypes.Count: {allPlayerTypes.Count}"); Debug.Log($"after allPlayerTypes.Count: {allPlayerTypes.Count}");
if (allPlayerTypes.Count == 0) if (allPlayerTypes.Count == 0)
@ -867,14 +1026,33 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
soundManager.PlayGameSoundClip(SoundType.Turn); soundManager.PlayGameSoundClip(SoundType.Turn);
UpdateCurrentPlayerTurn(allPlayerTypes[currentPlayerTurnIndex]); UpdateCurrentPlayerTurn(allPlayerTypes[currentPlayerTurnIndex]);
Debug.Log($"IsUsersTurn: {IsUsersTurn()}");
if (IsUsersTurn())
{
SetCanRollDiceForUser(true);
Invoke(nameof(UpdateDiceView), diceRollDelayForUser);
}
else
{
SetCanRollDiceForUser(false);
currentPlayerTurnTimer?.KillTimer();
Invoke(nameof(UpdateDiceViewForBot), diceRollDelayForBot);
}
diceSixRollCounter = 0; diceSixRollCounter = 0;
diceText.text = $"{0}"; diceText.text = $"{0}";
} }
else // else
{ // {
UpdateTurnTimer(); // UpdateResponseTimerForUser(currentPlayerMaxTime: currentPlayerTurnMaxTime, () => RollDiceForUser());
} //
// if (gameModeHandler.CurrentGameModeType == GameModeType.Bot && botTypesInGame.Contains(currentPlayerTypeTurn)) // TODO :: Double check calling of the function
// {
// Debug.Log($"Invoking RollDiceForBot");
// HandleDiceRollWithDelay();
// }
// }
Debug.Log($"currentPlayerTurnIndex: {currentPlayerTurnIndex}"); Debug.Log($"currentPlayerTurnIndex: {currentPlayerTurnIndex}");
Debug.Log($"CurrentPlayerTurn: {currentPlayerTypeTurn}"); Debug.Log($"CurrentPlayerTurn: {currentPlayerTypeTurn}");
@ -884,36 +1062,22 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
pointerMeshRend.material = turnMat; pointerMeshRend.material = turnMat;
// pointerMeshRend.materials[0] = turnMat; // pointerMeshRend.materials[0] = turnMat;
#endif #endif
}
// Debug.Log($"botTypesInGame.Contains(currentPlayerTypeTurn): {botTypesInGame.Contains(currentPlayerTypeTurn)}"); private void OnCanRollDiceAgain(PlayerPawn playerPawn = null)
{
if (playerPawn)
UpdatePlayerState(playerPawn, TilesManager.RetrieveTileBasedOnIndex(playerPawn.CurrentTileIndex).IsSafeZone ? PlayerState.InSafeZone : PlayerState.Moving);
UpdateResponseTimerForUser(currentPlayerMaxTime: currentPlayerTurnMaxTime, () => RollDiceForUser());
if (gameModeHandler.CurrentGameModeType == GameModeType.Bot && botTypesInGame.Contains(currentPlayerTypeTurn)) // TODO :: Double check calling of the function if (gameModeHandler.CurrentGameModeType == GameModeType.Bot && botTypesInGame.Contains(currentPlayerTypeTurn)) // TODO :: Double check calling of the function
{ {
Debug.Log($"Invoking RollDiceForBot"); Debug.Log($"Invoking RollDiceForBot");
HandleDiceRollWithDelay(); HandleDiceRollWithDelay();
} }
} }
#if UNITY_EDITOR
private void SetCurrentSelectedPointer()
{
var tempPos = playerBaseHandler.GetPlayerBase(currentPlayerTypeTurn).transform.position;
pointerDebug.position = new Vector3(tempPos.x, 3f, tempPos.z);
}
#endif
public void SetDisplayCountForAllAvailPlayers(bool state)
{
if (state)
{
availPlayers.ForEach(pawn => ShowUpdatedPlayerCountOnTile(pawn));
}
else
{
availPlayers.ForEach(pawn => pawn.ShowPlayerCountCanvas(false));
}
}
private void MoveThroughTiles(PlayerPawn playerPawn, int index, int targetIndex) private void MoveThroughTiles(PlayerPawn playerPawn, int index, int targetIndex)
{ {
Tile nextTile = TilesManager.RetrieveTileBasedOnIndex(index); Tile nextTile = TilesManager.RetrieveTileBasedOnIndex(index);
@ -931,7 +1095,9 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
} }
Debug.Log($"tile targetPosition: {targetPosition}"); Debug.Log($"tile targetPosition: {targetPosition}");
playerPawn.ShowPlayerCountCanvas(false); #if UNITY_EDITOR
playerPawn.ShowPlayerCountCanvas(false); // TODO :: Check if call can be removed
#endif
playerPawn.MoveToTile( playerPawn.MoveToTile(
targetPosition, targetPosition,
@ -948,6 +1114,9 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
{ {
// MoveThroughTiles(playerPawn, index, targetIndex); // MoveThroughTiles(playerPawn, index, targetIndex);
Debug.Log($"TargetIdx: {targetIndex - index}"); Debug.Log($"TargetIdx: {targetIndex - index}");
if (index == playerGameDatasDict[currentPlayerTypeTurn].endIndex)
playerGameDatasDict[currentPlayerTypeTurn].totalPawnsInFinishingPath++;
CheckForGamePause(() => MoveThroughFinishingPath(playerPawn, 0, targetIndex - index)); CheckForGamePause(() => MoveThroughFinishingPath(playerPawn, 0, targetIndex - index));
} }
else if (nextTileIndex <= targetIndex) else if (nextTileIndex <= targetIndex)
@ -964,7 +1133,11 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
Debug.Log($"nextTile.IsSafeZone: {nextTile.IsSafeZone}"); Debug.Log($"nextTile.IsSafeZone: {nextTile.IsSafeZone}");
if (CanRollDiceAgain) if (CanRollDiceAgain)
{
#if UNITY_EDITOR
ShowUpdatedPlayerCountOnTile(playerPawn); ShowUpdatedPlayerCountOnTile(playerPawn);
#endif
}
if (!nextTile.IsSafeZone) if (!nextTile.IsSafeZone)
{ {
@ -993,14 +1166,12 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
} }
CanRollDiceAgain = true; CanRollDiceAgain = true;
if (!playerPawn.IsBotPlayer)
{
UpdateTurnTimer();
}
} }
nextTile.InitPlayerPawn(playerPawn, currentPlayerTypeTurn); nextTile.InitPlayerPawn(playerPawn, currentPlayerTypeTurn);
#if UNITY_EDITOR
ShowUpdatedPlayerCountOnTile(playerPawn); ShowUpdatedPlayerCountOnTile(playerPawn);
#endif
if (CheckForMaxDiceRollAttempt()) if (CheckForMaxDiceRollAttempt())
{ {
@ -1014,20 +1185,36 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
return; return;
} }
} }
if (!CanRollDiceAgain) SwitchPlayer(playerPawn);
else
{
if (IsUsersTurn())
{
UpdateResponseTimerForUser(currentPlayerMaxTime: currentPlayerTurnMaxTime, () => RollDiceForUser());
SetCanRollDiceForUser(IsUsersTurn());
}
SwitchPlayer(playerPawn); OnCanRollDiceAgain(playerPawn);
diceRollHandler.DiceView.SetDiceButtonInteraction(true);
}
} }
}, },
index); index);
} }
private bool HasGamePausedForUser()
{
return (botTypesInGame == null || !botTypesInGame.Contains(currentPlayerTypeTurn)) &&
GameManager.CurrentGameState == GameState.IsPaused;
}
public void CheckForGamePause(Action onComplete) public void CheckForGamePause(Action onComplete)
{ {
Debug.Log($"CheckForGamePause: {GameManager.CurrentGameState == GameState.IsPaused}"); Debug.Log($"CheckForGamePause: {GameManager.CurrentGameState == GameState.IsPaused}");
if (gameModeHandler.CurrentGameModeType == GameModeType.Bot && !botTypesInGame.Contains(currentPlayerTypeTurn) if (HasGamePausedForUser())
&& GameManager.CurrentGameState == GameState.IsPaused)
{ {
OnGameResumed = onComplete; onGameResumed = onComplete;
} }
else else
{ {
@ -1035,6 +1222,13 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
} }
} }
public void OnGameResumed()
{
onGameResumed?.Invoke();
currentPlayerTurnTimer = savedCurrentPlayerTurnTimerInst;
savedCurrentPlayerTurnTimerInst = null;
}
private void MoveThroughFinishingPath(PlayerPawn playerPawn, int index, int targetIndex) private void MoveThroughFinishingPath(PlayerPawn playerPawn, int index, int targetIndex)
{ {
UpdatePlayerState(playerPawn, PlayerState.InFinishingPath); UpdatePlayerState(playerPawn, PlayerState.InFinishingPath);
@ -1059,13 +1253,16 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
{ {
if (playerPawn.CurrentTileIndex == TilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn) - 1) if (playerPawn.CurrentTileIndex == TilesManager.GetFinishingTileDataLength(currentPlayerTypeTurn) - 1)
{ {
OnGameResumed = null; onGameResumed = null;
Tile tile = TilesManager.RetrieveFinishingTileBasedOnIndex(playerPawn.PlayerType, playerPawn.CurrentTileIndex); Tile tile = TilesManager.RetrieveFinishingTileBasedOnIndex(playerPawn.PlayerType, playerPawn.CurrentTileIndex);
tile.InitPlayerPawn(playerPawn, playerPawn.PlayerType); tile.InitPlayerPawn(playerPawn, playerPawn.PlayerType);
// ShowUpdatedPlayerCountOnTile(playerPawn); // ShowUpdatedPlayerCountOnTile(playerPawn);
UpdatePlayerState(playerPawn, PlayerState.HasFinished); UpdatePlayerState(playerPawn, PlayerState.HasFinished);
playerPawn.SetPlayerSelectionState(false);
playerGameDatasDict[currentPlayerTypeTurn].totalPawnsFinished++; playerGameDatasDict[currentPlayerTypeTurn].totalPawnsFinished++;
playerGameDatasDict[currentPlayerTypeTurn].totalPawnsInFinishingPath--;
Debug.Log($"playerGameDatasDict[currentPlayerTypeTurn].totalPawnsFinished: {playerGameDatasDict[currentPlayerTypeTurn].totalPawnsFinished}"); Debug.Log($"playerGameDatasDict[currentPlayerTypeTurn].totalPawnsFinished: {playerGameDatasDict[currentPlayerTypeTurn].totalPawnsFinished}");
Debug.Log($"playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Count: {playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Count}"); Debug.Log($"playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Count: {playerGameDatasDict[currentPlayerTypeTurn].playerPawnsDict.Count}");
@ -1104,8 +1301,11 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
CheckDiceRollForBot(); CheckDiceRollForBot();
else else
{ {
UpdateTurnTimer(); SetCanRollDiceForUser(true);
UpdateResponseTimerForUser(currentPlayerMaxTime: currentPlayerTurnMaxTime, () => RollDiceForUser());
} }
diceRollHandler.DiceView.SetDiceButtonInteraction(CanRollDiceAgain);
} }
} }
else else
@ -1119,9 +1319,15 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
} }
if (CanRollDiceAgain) if (CanRollDiceAgain)
{
SetCanRollDiceForUser(IsUsersTurn());
OnCanRollDiceAgain();
#if UNITY_EDITOR
ShowUpdatedPlayerCountOnTile(playerPawn); ShowUpdatedPlayerCountOnTile(playerPawn);
#endif
SwitchPlayer(); }
else
SwitchPlayer();
} }
} }
}, },
@ -1134,6 +1340,7 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
Debug.Log($"CAnRollDiceForUser: {CanRollDiceForUser}"); Debug.Log($"CAnRollDiceForUser: {CanRollDiceForUser}");
} }
#if UNITY_EDITOR
private void ShowUpdatedPlayerCountOnTile(PlayerPawn playerPawn) private void ShowUpdatedPlayerCountOnTile(PlayerPawn playerPawn)
{ {
Tile tile = playerPawn.GetPlayerState() == PlayerState.InFinishingPath ? Tile tile = playerPawn.GetPlayerState() == PlayerState.InFinishingPath ?
@ -1154,22 +1361,44 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
Debug.Log($"ShowUpdatedPlayerCountOnTile: {count}"); Debug.Log($"ShowUpdatedPlayerCountOnTile: {count}");
playerPawn.PlayerCountCanvas.SetPlayerCount(count); playerPawn.PlayerIndicatorCanvas.SetPlayerCount(count);
} }
private void SetCurrentSelectedPointer()
{
var tempPos = playerBaseHandler.GetPlayerBase(currentPlayerTypeTurn).transform.position;
pointerDebug.position = new Vector3(tempPos.x, 3f, tempPos.z);
}
public void SetDisplayCountForAllAvailPlayers(bool state)
{
if (state)
{
availPlayersToMove.ForEach(pawn => ShowUpdatedPlayerCountOnTile(pawn));
}
else
{
availPlayersToMove.ForEach(pawn => pawn.ShowPlayerCountCanvas(false));
}
}
#endif
public void ResetTileDatasForPlayers() public void ResetTileDatasForPlayers()
{ {
foreach (PlayerData data in playerDatas) // causes null ref cast exception while player is moving.
{ // foreach (PlayerData data in playerDatas)
var pawns = playerGameDatasDict[data.playerType].playerPawnsDict.Values; // {
// var pawns = playerGameDatasDict[data.playerType].playerPawnsDict.Values;
//
// foreach (var pawn in pawns)
// {
// if (pawn.GetPlayerState() == PlayerState.InHome) continue;
//
// TilesManager.ResetTileData(pawn.PlayerType, pawn.CurrentTileIndex, pawn.GetPlayerState());
// }
// }
foreach (var pawn in pawns) TilesManager.ResetTileDatas();
{
if (pawn.GetPlayerState() == PlayerState.InHome) continue;
TilesManager.ResetTileData(pawn.PlayerType, pawn.CurrentTileIndex, pawn.GetPlayerState());
}
}
} }
public void ResetData() public void ResetData()
@ -1178,14 +1407,17 @@ public class GameplayManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
diceRollHandler.DiceView.ResetOnSessionEnd(); diceRollHandler.DiceView.ResetOnSessionEnd();
ResetGameRestartData(); ResetGameRestartData();
OnGameResumed = null; currentPlayerTurnTimer?.KillTimer();
savedCurrentPlayerTurnTimerInst = null;
currentPlayerTurnTimer = null;
onGameResumed = null;
playerDatas = null; playerDatas = null;
allPlayerTypes = null; allPlayerTypes = null;
playerGameDatasDict = null; playerGameDatasDict = null;
playerDatas = null; playerDatas = null;
availPlayers = null; availPlayersToMove = null;
botTypesInGame = null; botTypesInGame = null;
botRuntimeMovementData = null; botRuntimeMovementData = null;

View File

@ -7,12 +7,17 @@ public class BasePlacementData
public Transform placementTransform; public Transform placementTransform;
} }
public class PlayerBase : MonoBehaviour public class PlayerBase : MonoBehaviour, IRollBase
{ {
[SerializeField] private PlayerType playerType; [SerializeField] private PlayerType playerType;
[SerializeField] private BasePlacementData[] basePlacementDatas; [SerializeField] private BasePlacementData[] basePlacementDatas;
[SerializeField] private PlayerPawn[] playerPawns; [SerializeField] private PlayerPawn[] playerPawns;
[SerializeField] private GameObject playerBaseEffect; [SerializeField] private GameObject playerBaseEffect;
private int sixRollCount, maxRollCount;
public int SixRollCount => sixRollCount;
public int MaxRollCount => maxRollCount;
public bool IsBotBase public bool IsBotBase
{ {
@ -21,6 +26,22 @@ public class PlayerBase : MonoBehaviour
public PlayerType GetPlayerType() => playerType; public PlayerType GetPlayerType() => playerType;
public void UpdateSixRollCount()
{
sixRollCount++;
}
public void ResetRollData()
{
sixRollCount = 0;
maxRollCount = 0;
}
public void UpdateMaxRollCount(int val)
{
maxRollCount = val;
}
public void InitPlayerData() public void InitPlayerData()
{ {
for (int idx = 0; idx < basePlacementDatas.Length; idx++) for (int idx = 0; idx < basePlacementDatas.Length; idx++)

View File

@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using System.Collections.Generic;
[System.Serializable] [System.Serializable]
public class PlayerBaseData public class PlayerBaseData
@ -57,6 +56,7 @@ public class PlayerBaseHandler : MonoBehaviour
public void ShowSelectedPlayerBase(PlayerType playerType, bool state) public void ShowSelectedPlayerBase(PlayerType playerType, bool state)
{ {
playerBasesDict[playerType].ShowPlayerBaseEffect(state); if (playerBasesDict.ContainsKey(playerType))
playerBasesDict[playerType].ShowPlayerBaseEffect(state);
} }
} }

View File

@ -27,6 +27,7 @@ public class PlayerGameData
public Dictionary<int, PlayerPawn> playerPawnsDict; public Dictionary<int, PlayerPawn> playerPawnsDict;
public int totalPawnsInHome = 0; public int totalPawnsInHome = 0;
public int totalPawnsFinished = 0; public int totalPawnsFinished = 0;
public int totalPawnsInFinishingPath = 0;
} }
[System.Serializable] [System.Serializable]

View File

@ -1,6 +1,7 @@
using System; using System;
using DG.Tweening; using DG.Tweening;
using UnityEngine; using UnityEngine;
using UnityEngine.Serialization;
public enum PlayerState public enum PlayerState
{ {
@ -21,12 +22,12 @@ public class PlayerPawn : MonoBehaviour
{ {
[SerializeField] private PlayerState playerState; [SerializeField] private PlayerState playerState;
[SerializeField] private Animator animator; [SerializeField] private Animator animator;
[SerializeField] private PlayerCountCanvas playerCountCanvas; [SerializeField] private PlayerIndicatorCanvas playerIndicatorCanvas;
private PlayerBase playerBase; private PlayerBase playerBase;
private GameplayManager gameplayManager; private GameplayManager gameplayManager;
public PlayerCountCanvas PlayerCountCanvas => playerCountCanvas; public PlayerIndicatorCanvas PlayerIndicatorCanvas => playerIndicatorCanvas;
public int PlayerId { get; private set; } public int PlayerId { get; private set; }
public int StepsTaken { get; private set; } public int StepsTaken { get; private set; }
@ -43,6 +44,8 @@ public class PlayerPawn : MonoBehaviour
public void SetPlayerSelectionState(bool state) public void SetPlayerSelectionState(bool state)
{ {
CanSelectPlayer = state; CanSelectPlayer = state;
Debug.Log($"### SetPlayerSelectionState: {name} :: {state}, ");
ShowPlayerSelCanvas(state);
} }
public void MoveToTile(Vector3 startingPoint, Action onComplete, int tileIndex) public void MoveToTile(Vector3 startingPoint, Action onComplete, int tileIndex)
@ -61,7 +64,7 @@ public class PlayerPawn : MonoBehaviour
// Rotate Player // Rotate Player
TilesManager tilesManager = InterfaceManager.Instance.GetInterfaceInstance<TilesManager>(); TilesManager tilesManager = InterfaceManager.Instance.GetInterfaceInstance<TilesManager>();
gameplayManager = gameplayManager ?? InterfaceManager.Instance.GetInterfaceInstance<GameplayManager>(); SetGameplayManager();
Vector3 lookDirection = Vector3.zero; Vector3 lookDirection = Vector3.zero;
@ -121,7 +124,7 @@ public class PlayerPawn : MonoBehaviour
transform.position = transformData.position; transform.position = transformData.position;
transform.rotation = transformData.rotation; transform.rotation = transformData.rotation;
SetPlayerState(PlayerState.InHome); SetPlayerState(PlayerState.InHome);
ShowPlayerCountCanvas(false); ShowPlayerSelCanvas(false);
StepsTaken = 0; StepsTaken = 0;
} }
@ -156,7 +159,13 @@ public class PlayerPawn : MonoBehaviour
public void ShowPlayerCountCanvas(bool show) public void ShowPlayerCountCanvas(bool show)
{ {
playerCountCanvas.gameObject.SetActive(show); // add the player count canvas to the object and show from here.
// playerIndicatorCanvas.gameObject.SetActive(show);
}
public void ShowPlayerSelCanvas(bool show)
{
playerIndicatorCanvas.gameObject.SetActive(show);
} }
public void ResetData() public void ResetData()
@ -164,8 +173,7 @@ public class PlayerPawn : MonoBehaviour
SetPlayerState(PlayerState.InHome); SetPlayerState(PlayerState.InHome);
StepsTaken = 0; StepsTaken = 0;
PlayerId = 0; PlayerId = 0;
if (playerCountCanvas.gameObject.activeInHierarchy) if (playerIndicatorCanvas.gameObject.activeInHierarchy)
ShowPlayerCountCanvas(false); ShowPlayerSelCanvas(false);
} }
} }

View File

@ -29,7 +29,7 @@ public class DiceRollHandler : MonoBehaviour
inputManager.SetDiceRollValue(rolledVal); inputManager.SetDiceRollValue(rolledVal);
} }
public void HandleDiceViewForUser() public void HandleDiceViewForUser(bool hasNoActionOnRoll = false, PlayerBase playerBase = null)
{ {
if (!inputManager.GameplayManager.CanRollDiceForUser) return; if (!inputManager.GameplayManager.CanRollDiceForUser) return;
@ -39,11 +39,17 @@ public class DiceRollHandler : MonoBehaviour
if (inputManager.GameplayManager.IsDebugPlayerTest) if (inputManager.GameplayManager.IsDebugPlayerTest)
OnUserDiceRollComplete(GetDiceTestVal()); OnUserDiceRollComplete(GetDiceTestVal());
else else
diceView.Roll(onComplete: (rolledVal) => OnUserDiceRollComplete(rolledVal), false); {
diceView.InitOnNoActionsAfterRoll(playerBase, hasNoActionOnRoll);
diceView.Roll(
(rolledVal) => OnUserDiceRollComplete(rolledVal),
false);
}
} }
public void HandleDiceViewForBot(Action<int> onComplete) public void HandleDiceViewForBot(Action<int> onComplete, bool hasNoActionOnRoll = false, PlayerBase playerBase = null)
{ {
diceView.InitOnNoActionsAfterRoll(playerBase, hasNoActionOnRoll);
diceView.Roll(onComplete: onComplete, true); diceView.Roll(onComplete: onComplete, true);
} }

View File

@ -90,6 +90,7 @@ public class SafeTile : Tile
public override void ResetTileData() public override void ResetTileData()
{ {
Debug.Log($"Resetting tile in safe tile {name}");
if (playerTypesDict != null && playerTypesDict.Count > 0) if (playerTypesDict != null && playerTypesDict.Count > 0)
{ {
playerTypesDict.Clear(); playerTypesDict.Clear();

View File

@ -56,6 +56,7 @@ public class Tile : MonoBehaviour
public virtual void ResetTileData() public virtual void ResetTileData()
{ {
Debug.Log($"Resetting tile in parent tile {name}");
if (HasPawnsAvailable) if (HasPawnsAvailable)
PlayerPawns.Clear(); PlayerPawns.Clear();
} }

View File

@ -77,6 +77,8 @@ public class TilesManager : MonoBehaviour, IBootLoader, IDataLoader, IBase
finishingTileDataPairs.Clear(); finishingTileDataPairs.Clear();
} }
// causes null ref cast exception while player is moving.
/*
public void ResetTileData(PlayerType playerType, int currentTileIndex, PlayerState playerState) public void ResetTileData(PlayerType playerType, int currentTileIndex, PlayerState playerState)
{ {
if (playerState == PlayerState.InFinishingPath || playerState == PlayerState.HasFinished) if (playerState == PlayerState.InFinishingPath || playerState == PlayerState.HasFinished)
@ -95,6 +97,21 @@ public class TilesManager : MonoBehaviour, IBootLoader, IDataLoader, IBase
tile.ResetTileData(); tile.ResetTileData();
} }
} }
*/
public void ResetTileDatas()
{
foreach (var tile in generalTiles)
tile.ResetTileData();
foreach (var pair in finishingTileDataPairs)
{
foreach (var tile in finishingTileDataPairs[pair.Key])
{
tile.ResetTileData();
}
}
}
public Vector3 GetAndInitPositionInsideSafeZone(PlayerPawn playerPawn, Tile targetTile, PlayerType currentPlayerTypeTurn) public Vector3 GetAndInitPositionInsideSafeZone(PlayerPawn playerPawn, Tile targetTile, PlayerType currentPlayerTypeTurn)
{ {

View File

@ -46,12 +46,17 @@ public class UIManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
public void UpdatePlayerTurnText(PlayerType type, int remSec) public void UpdatePlayerTurnText(PlayerType type, int remSec)
{ {
screenManager.GetScreen<GameHUDS>(ScreenType.InGameHUDScreen).UpdatePlayerTurnText(type, remSec); screenManager.GetScreen<GameHUDScreen>(ScreenType.InGameHUDScreen).UpdatePlayerTurnText(type, remSec);
} }
public void UpdatePlayerTurnText(PlayerType type) public void UpdatePlayerTurnText(PlayerType type)
{ {
screenManager.GetScreen<GameHUDS>(ScreenType.InGameHUDScreen).UpdateBotTurnText(type); screenManager.GetScreen<GameHUDScreen>(ScreenType.InGameHUDScreen).UpdateBotTurnText(type);
}
public void UpdatePlayerTurnIcon(PlayerType type)
{
screenManager.GetScreen<GameHUDScreen>(ScreenType.InGameHUDScreen).UpdatePlayerTurnIcon(type);
} }
public void OnGameOver() public void OnGameOver()

View File

@ -40,7 +40,7 @@ public class PauseMenuPopup : PopupBase
screenManager.ShowScreen(ScreenType.InGameHUDScreen); screenManager.ShowScreen(ScreenType.InGameHUDScreen);
SetGameModeHandler(); SetGameModeHandler();
gameModeHandler.GameplayManager.OnGameResumed?.Invoke(); gameModeHandler.GameplayManager.OnGameResumed();
} }
private void OnClick_HomeButton() private void OnClick_HomeButton()

View File

@ -1,10 +1,12 @@
using TMPro;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using TMPro;
using System.Collections;
public class GameHUDS : ScreenBase public class GameHUDScreen : ScreenBase
{ {
[SerializeField] private Image playerTurnIcon;
[Header("Buttons")]
[SerializeField] private Button diceBtn; [SerializeField] private Button diceBtn;
[SerializeField] private Button pauseBtn; [SerializeField] private Button pauseBtn;
@ -12,6 +14,8 @@ public class GameHUDS : ScreenBase
[SerializeField] private TMP_Text diceCountText; [SerializeField] private TMP_Text diceCountText;
[SerializeField] private TMP_Text playerTurnText; [SerializeField] private TMP_Text playerTurnText;
[SerializeField] private Sprite[] turnSprites;
private SoundManager soundManager; private SoundManager soundManager;
private UIManager uiManager; private UIManager uiManager;
@ -55,13 +59,18 @@ public class GameHUDS : ScreenBase
public void UpdatePlayerTurnText(PlayerType playerType, int remSec) public void UpdatePlayerTurnText(PlayerType playerType, int remSec)
{ {
Debug.Log($"GameHUDS: UpdatePlayerTurnText: {playerType}"); Debug.Log($"UpdateTurnText: Player Turn :: {(PlayerColorType)((int)playerType)} ({remSec})");
playerTurnText.text = $"Turn : {(PlayerColorType)((int)playerType)} ({remSec})"; playerTurnText.text = $"Turn : {(PlayerColorType)((int)playerType)} ({remSec})";
} }
public void UpdateBotTurnText(PlayerType playerType) public void UpdateBotTurnText(PlayerType playerType)
{ {
Debug.Log($"GameHUDS: UpdatePlayerTurnText: {playerType}"); Debug.Log($"UpdateTurnText: Bot Turn :: {(PlayerColorType)((int)playerType)}");
playerTurnText.text = $"Turn : {(PlayerColorType)((int)playerType)}"; playerTurnText.text = $"Turn : {(PlayerColorType)((int)playerType)}";
} }
public void UpdatePlayerTurnIcon(PlayerType playerType)
{
playerTurnIcon.sprite = turnSprites[(int)playerType];
}
} }

View File

@ -2,7 +2,7 @@ using TMPro;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
public class PlayerCountCanvas : MonoBehaviour public class PlayerIndicatorCanvas : MonoBehaviour
{ {
Transform cam; Transform cam;
[SerializeField] private TMP_Text playerCountText; [SerializeField] private TMP_Text playerCountText;
@ -21,18 +21,22 @@ public class PlayerCountCanvas : MonoBehaviour
indicatorBtn.onClick.RemoveListener(() => OnClickPlayer()); indicatorBtn.onClick.RemoveListener(() => OnClickPlayer());
} }
void Start() private void Start()
{ {
cam = GameObject.FindGameObjectWithTag("MainCamera").transform; cam = GameObject.FindGameObjectWithTag("MainCamera").transform;
} }
void LateUpdate()
private void LateUpdate()
{ {
transform.LookAt(cam.forward + transform.position); transform.LookAt(cam.forward + transform.position);
} }
#if UNITY_EDITOR
public void SetPlayerCount(int count) public void SetPlayerCount(int count)
{ {
playerCountText.text = count.ToString(); playerCountText.text = count.ToString();
} }
#endif
public void OnClickPlayer() public void OnClickPlayer()
{ {

View File

@ -42,7 +42,7 @@ PlayerSettings:
m_SplashScreenLogos: m_SplashScreenLogos:
- logo: {fileID: 10404, guid: 0000000000000000e000000000000000, type: 0} - logo: {fileID: 10404, guid: 0000000000000000e000000000000000, type: 0}
duration: 2 duration: 2
- logo: {fileID: 21300000, guid: e84386e1891df488bae582876f896a36, type: 3} - logo: {fileID: 21300000, guid: 1cfb151daad2e4e719892a83a58ce545, type: 3}
duration: 2 duration: 2
m_VirtualRealitySplashScreen: {fileID: 2800000, guid: e84386e1891df488bae582876f896a36, type: 3} m_VirtualRealitySplashScreen: {fileID: 2800000, guid: e84386e1891df488bae582876f896a36, type: 3}
m_HolographicTrackingLossScreen: {fileID: 0} m_HolographicTrackingLossScreen: {fileID: 0}