Merge pull request 'morepuzzles' (#6) from morepuzzles into main
All checks were successful
Build project / Build for (StandaloneLinux64, 6000.0.37f1) (push) Successful in 8m43s
Build project / Build for (StandaloneWindows64, 6000.0.37f1) (push) Successful in 7m31s
Build project / Publish to itch.io (StandaloneLinux64) (push) Successful in 21s
Build project / Publish to itch.io (StandaloneWindows64) (push) Successful in 20s
All checks were successful
Build project / Build for (StandaloneLinux64, 6000.0.37f1) (push) Successful in 8m43s
Build project / Build for (StandaloneWindows64, 6000.0.37f1) (push) Successful in 7m31s
Build project / Publish to itch.io (StandaloneLinux64) (push) Successful in 21s
Build project / Publish to itch.io (StandaloneWindows64) (push) Successful in 20s
Reviewed-on: #6
This commit is contained in:
commit
4f1fa31abe
@ -302,6 +302,10 @@ public class ControlScript : MonoBehaviour {
|
||||
/// Restart the game
|
||||
/// </summary>
|
||||
public void Restart() {
|
||||
if (_tiles == null)
|
||||
return;
|
||||
if (_tiles.Length == 0)
|
||||
return;
|
||||
foreach (var tile in _tiles) {
|
||||
Destroy(tile);
|
||||
}
|
||||
@ -492,7 +496,7 @@ private void CreateTiles() {
|
||||
/// Is called whenever GameState is altered
|
||||
/// </summary>
|
||||
private void OnGameStateChange() {
|
||||
switch (_gameState) {
|
||||
switch (GameState) {
|
||||
case EGameState.Lose: // Actions to do when lost
|
||||
//StateButton.LoseState();
|
||||
StateButton.sprite = StateButton.GetComponent<StateButtonScript>().LoseSprite;
|
||||
@ -500,6 +504,7 @@ private void CreateTiles() {
|
||||
DisablePlayField();
|
||||
break;
|
||||
case EGameState.Win: // Actions to do when won
|
||||
Debug.Log("You won!");
|
||||
//StateButton.WinState();
|
||||
StateButton.sprite = StateButton.GetComponent<StateButtonScript>().WinSprite;
|
||||
DisablePlayField();
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 2.0 KiB |
@ -1,6 +1,6 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &959971375585652767
|
||||
--- !u!1 &8299965232727738621
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@ -8,8 +8,8 @@ GameObject:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7739536703667390582}
|
||||
- component: {fileID: -4703862515620996004}
|
||||
- component: {fileID: 52846165173590012}
|
||||
- component: {fileID: 3386004437024417690}
|
||||
m_Layer: 5
|
||||
m_Name: LinePrefab
|
||||
m_TagString: Untagged
|
||||
@ -17,29 +17,29 @@ GameObject:
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &7739536703667390582
|
||||
--- !u!4 &52846165173590012
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 959971375585652767}
|
||||
m_GameObject: {fileID: 8299965232727738621}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_LocalScale: {x: 40, y: 40, z: 40}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!120 &-4703862515620996004
|
||||
--- !u!120 &3386004437024417690
|
||||
LineRenderer:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 959971375585652767}
|
||||
m_GameObject: {fileID: 8299965232727738621}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
@ -53,10 +53,10 @@ LineRenderer:
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 4
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 95d691d1ae476e049b3ca1db2f7b4c0d, type: 2}
|
||||
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
@ -82,13 +82,13 @@ LineRenderer:
|
||||
- {x: 0, y: 0, z: 1}
|
||||
m_Parameters:
|
||||
serializedVersion: 3
|
||||
widthMultiplier: 1
|
||||
widthMultiplier: 0.05
|
||||
widthCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0.18181992
|
||||
value: 0.10416603
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
@ -100,8 +100,8 @@ LineRenderer:
|
||||
m_RotationOrder: 4
|
||||
colorGradient:
|
||||
serializedVersion: 2
|
||||
key0: {r: 1, g: 1, b: 1, a: 1}
|
||||
key1: {r: 1, g: 1, b: 1, a: 1}
|
||||
key0: {r: 0.8805031, g: 0.11352392, b: 0.1815179, a: 1}
|
||||
key1: {r: 0.8805031, g: 0.11352392, b: 0.1815179, a: 1}
|
||||
key2: {r: 0, g: 0, b: 0, a: 0}
|
||||
key3: {r: 0, g: 0, b: 0, a: 0}
|
||||
key4: {r: 0, g: 0, b: 0, a: 0}
|
||||
@ -124,11 +124,11 @@ LineRenderer:
|
||||
atime5: 0
|
||||
atime6: 0
|
||||
atime7: 0
|
||||
m_Mode: 0
|
||||
m_ColorSpace: -1
|
||||
m_Mode: 1
|
||||
m_ColorSpace: 0
|
||||
m_NumColorKeys: 2
|
||||
m_NumAlphaKeys: 2
|
||||
numCornerVertices: 1
|
||||
numCornerVertices: 0
|
||||
numCapVertices: 0
|
||||
alignment: 0
|
||||
textureMode: 0
|
||||
|
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ed614cb2b39e874ab80285050f80fbf5
|
||||
guid: 309050a344950a3449bfbe234b084a16
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 5.9 KiB |
@ -1,233 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f8bdf4538e33aabae8cae2f2b04af7c7
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: -2413806693520163455
|
||||
second: Circle
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 256
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: 0
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 1
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: Circle
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline:
|
||||
- - {x: 33, y: 128}
|
||||
- {x: -33, y: 128}
|
||||
- {x: -95, y: 95}
|
||||
- {x: -128, y: 33}
|
||||
- {x: -128, y: -33}
|
||||
- {x: -95, y: -95}
|
||||
- {x: -33, y: -128}
|
||||
- {x: 33, y: -128}
|
||||
- {x: 95, y: -95}
|
||||
- {x: 128, y: -33}
|
||||
- {x: 128, y: 33}
|
||||
- {x: 95, y: 95}
|
||||
physicsShape:
|
||||
- - {x: 0, y: 128}
|
||||
- {x: -39, y: 121}
|
||||
- {x: -75, y: 103}
|
||||
- {x: -103, y: 75}
|
||||
- {x: -121, y: 39}
|
||||
- {x: -128, y: 0}
|
||||
- {x: -121, y: -39}
|
||||
- {x: -103, y: -75}
|
||||
- {x: -75, y: -103}
|
||||
- {x: -39, y: -121}
|
||||
- {x: 0, y: -128}
|
||||
- {x: 39, y: -121}
|
||||
- {x: 75, y: -103}
|
||||
- {x: 103, y: -75}
|
||||
- {x: 121, y: -39}
|
||||
- {x: 128, y: 0}
|
||||
- {x: 121, y: 39}
|
||||
- {x: 103, y: 75}
|
||||
- {x: 75, y: 103}
|
||||
- {x: 39, y: 121}
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 18d3544e99f608ed0800000000000000
|
||||
internalID: -2413806693520163455
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline:
|
||||
- - {x: 33, y: 128}
|
||||
- {x: -33, y: 128}
|
||||
- {x: -95, y: 95}
|
||||
- {x: -128, y: 33}
|
||||
- {x: -128, y: -33}
|
||||
- {x: -95, y: -95}
|
||||
- {x: -33, y: -128}
|
||||
- {x: 33, y: -128}
|
||||
- {x: 95, y: -95}
|
||||
- {x: 128, y: -33}
|
||||
- {x: 128, y: 33}
|
||||
- {x: 95, y: 95}
|
||||
customData:
|
||||
physicsShape:
|
||||
- - {x: 0, y: 128}
|
||||
- {x: -39, y: 121}
|
||||
- {x: -75, y: 103}
|
||||
- {x: -103, y: 75}
|
||||
- {x: -121, y: 39}
|
||||
- {x: -128, y: 0}
|
||||
- {x: -121, y: -39}
|
||||
- {x: -103, y: -75}
|
||||
- {x: -75, y: -103}
|
||||
- {x: -39, y: -121}
|
||||
- {x: 0, y: -128}
|
||||
- {x: 39, y: -121}
|
||||
- {x: 75, y: -103}
|
||||
- {x: 103, y: -75}
|
||||
- {x: 121, y: -39}
|
||||
- {x: 128, y: 0}
|
||||
- {x: 121, y: 39}
|
||||
- {x: 103, y: 75}
|
||||
- {x: 75, y: 103}
|
||||
- {x: 39, y: 121}
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable:
|
||||
Circle: -2413806693520163455
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,6 +1,6 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &959971375585652767
|
||||
--- !u!1 &9063511274317546134
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@ -8,8 +8,10 @@ GameObject:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7739536703667390582}
|
||||
- component: {fileID: -1385066238260059775}
|
||||
- component: {fileID: 5368770168816344344}
|
||||
- component: {fileID: 3750786645599238705}
|
||||
- component: {fileID: 2368334114180051338}
|
||||
- component: {fileID: 7940451848550998055}
|
||||
m_Layer: 5
|
||||
m_Name: PointPrefab
|
||||
m_TagString: Untagged
|
||||
@ -17,28 +19,28 @@ GameObject:
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &7739536703667390582
|
||||
--- !u!4 &5368770168816344344
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 959971375585652767}
|
||||
m_GameObject: {fileID: 9063511274317546134}
|
||||
serializedVersion: 2
|
||||
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_LocalScale: {x: 200, y: 200, z: 200}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!212 &-1385066238260059775
|
||||
--- !u!212 &3750786645599238705
|
||||
SpriteRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 959971375585652767}
|
||||
m_GameObject: {fileID: 9063511274317546134}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
@ -52,10 +54,10 @@ SpriteRenderer:
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 4
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2}
|
||||
- {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
@ -76,14 +78,65 @@ SpriteRenderer:
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_Sprite: {fileID: -2413806693520163455, guid: f8bdf4538e33aabae8cae2f2b04af7c7, type: 3}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Color: {r: 0.9273837, g: 0.9372549, b: 0, a: 1}
|
||||
m_FlipX: 0
|
||||
m_FlipY: 0
|
||||
m_DrawMode: 0
|
||||
m_Size: {x: 1, y: 1}
|
||||
m_Size: {x: 0.2, y: 0.2}
|
||||
m_AdaptiveModeThreshold: 0.5
|
||||
m_SpriteTileMode: 0
|
||||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!58 &2368334114180051338
|
||||
CircleCollider2D:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9063511274317546134}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Density: 1
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_ForceSendLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_ForceReceiveLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_ContactCaptureLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_CallbackLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_IsTrigger: 0
|
||||
m_UsedByEffector: 0
|
||||
m_CompositeOperation: 0
|
||||
m_CompositeOrder: 0
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Radius: 0.5
|
||||
--- !u!114 &7940451848550998055
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9063511274317546134}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: a2576d4090b96f542a3fd9afb4387f5d, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
id: 0
|
||||
manager: {fileID: 0}
|
||||
uiOverlayCamera: {fileID: 0}
|
||||
|
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 75fe5bf1a42eca40692a206e44b0c1b9
|
||||
guid: d5fb5cd996a5f2444964d8293dbf076a
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
8
Assets/Puzzles/Untangle/Scenes.meta
Normal file
8
Assets/Puzzles/Untangle/Scenes.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 646239f948b7b11b9bb7438b854ddf50
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
125
Assets/Puzzles/Untangle/Scenes/MainScene.unity
Normal file
125
Assets/Puzzles/Untangle/Scenes/MainScene.unity
Normal file
@ -0,0 +1,125 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!29 &1
|
||||
OcclusionCullingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_OcclusionBakeSettings:
|
||||
smallestOccluder: 5
|
||||
smallestHole: 0.25
|
||||
backfaceThreshold: 100
|
||||
m_SceneGUID: 00000000000000000000000000000000
|
||||
m_OcclusionCullingData: {fileID: 0}
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 10
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
m_FogDensity: 0.01
|
||||
m_LinearFogStart: 0
|
||||
m_LinearFogEnd: 300
|
||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
||||
m_AmbientIntensity: 1
|
||||
m_AmbientMode: 3
|
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||
m_SkyboxMaterial: {fileID: 0}
|
||||
m_HaloStrength: 0.5
|
||||
m_FlareStrength: 1
|
||||
m_FlareFadeSpeed: 3
|
||||
m_HaloTexture: {fileID: 0}
|
||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_DefaultReflectionMode: 0
|
||||
m_DefaultReflectionResolution: 128
|
||||
m_ReflectionBounces: 1
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 13
|
||||
m_BakeOnSceneLoad: 0
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_EnvironmentLightingMode: 0
|
||||
m_EnableBakedLightmaps: 0
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 12
|
||||
m_Resolution: 2
|
||||
m_BakeResolution: 40
|
||||
m_AtlasSize: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAmbientOcclusion: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 1
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 2
|
||||
m_BakeBackend: 1
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 512
|
||||
m_PVRBounces: 2
|
||||
m_PVREnvironmentSampleCount: 256
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_PVRFilteringMode: 1
|
||||
m_PVRDenoiserTypeDirect: 1
|
||||
m_PVRDenoiserTypeIndirect: 1
|
||||
m_PVRDenoiserTypeAO: 1
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVREnvironmentMIS: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 1
|
||||
m_PVRFilteringGaussRadiusAO: 1
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_LightingSettings: {fileID: 0}
|
||||
--- !u!196 &4
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_BuildSettings:
|
||||
serializedVersion: 3
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
agentSlope: 45
|
||||
agentClimb: 0.4
|
||||
ledgeDropHeight: 0
|
||||
maxJumpAcrossDistance: 0
|
||||
minRegionArea: 2
|
||||
manualCellSize: 0
|
||||
cellSize: 0.16666667
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
buildHeightMesh: 0
|
||||
maxJobWorkers: 0
|
||||
preserveTilesOutsideBounds: 0
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
m_Roots: []
|
7
Assets/Puzzles/Untangle/Scenes/MainScene.unity.meta
Normal file
7
Assets/Puzzles/Untangle/Scenes/MainScene.unity.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ec160a5a56471df4abc6c13e26c5bf58
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
1241
Assets/Puzzles/Untangle/Scenes/SampleScene.unity
Normal file
1241
Assets/Puzzles/Untangle/Scenes/SampleScene.unity
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/Puzzles/Untangle/Scenes/SampleScene.unity.meta
Normal file
7
Assets/Puzzles/Untangle/Scenes/SampleScene.unity.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8c9cfa26abfee488c85f1582747f6a02
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
19
Assets/Puzzles/Untangle/Scripts/Connection.cs
Normal file
19
Assets/Puzzles/Untangle/Scripts/Connection.cs
Normal file
@ -0,0 +1,19 @@
|
||||
using UnityEngine;
|
||||
|
||||
[System.Serializable]
|
||||
public class Connection
|
||||
{
|
||||
public Point a, b;
|
||||
public LineRenderer line;
|
||||
|
||||
public void UpdateLine()
|
||||
{
|
||||
line.SetPosition(0, a.transform.position);
|
||||
line.SetPosition(1, b.transform.position);
|
||||
}
|
||||
|
||||
public bool SharesPointWith(Connection other)
|
||||
{
|
||||
return a == other.a || a == other.b || b == other.a || b == other.b;
|
||||
}
|
||||
}
|
2
Assets/Puzzles/Untangle/Scripts/Connection.cs.meta
Normal file
2
Assets/Puzzles/Untangle/Scripts/Connection.cs.meta
Normal file
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f064725dcf1ff98428a7e8d08023b551
|
49
Assets/Puzzles/Untangle/Scripts/Point.cs
Normal file
49
Assets/Puzzles/Untangle/Scripts/Point.cs
Normal file
@ -0,0 +1,49 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering.Universal;
|
||||
using System.Linq; // for FirstOrDefault()
|
||||
|
||||
public class Point : MonoBehaviour
|
||||
{
|
||||
public int id;
|
||||
public UntangleGameManager manager;
|
||||
|
||||
// optional: assign in inspector or else we'll try to find it
|
||||
[SerializeField] private Camera uiOverlayCamera;
|
||||
|
||||
private Vector3 offset;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
if (uiOverlayCamera == null && Camera.main != null)
|
||||
{
|
||||
var extra = Camera.main.GetComponent<UniversalAdditionalCameraData>();
|
||||
if (extra != null)
|
||||
{
|
||||
// look for the camera named "UIOverlayCamera"
|
||||
uiOverlayCamera = extra.cameraStack
|
||||
.FirstOrDefault(cam => cam.name == "UIOverlayCamera");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OnMouseDown()
|
||||
{
|
||||
// pick UI overlay if we have it, otherwise fallback
|
||||
var cam = uiOverlayCamera != null ? uiOverlayCamera : Camera.main;
|
||||
Vector3 worldPoint = cam.ScreenToWorldPoint(Input.mousePosition);
|
||||
// worldPoint.z = 0;
|
||||
offset = transform.position - worldPoint;
|
||||
Debug.Log($"Point {id} clicked. Offset (from {cam.name}): {offset}");
|
||||
}
|
||||
|
||||
void OnMouseDrag()
|
||||
{
|
||||
var cam = uiOverlayCamera != null ? uiOverlayCamera : Camera.main;
|
||||
Vector3 raw = cam.ScreenToWorldPoint(Input.mousePosition);
|
||||
raw.z = 0;
|
||||
transform.position = raw + offset;
|
||||
manager.CheckIfSolved();
|
||||
foreach (var c in manager.connections)
|
||||
c.UpdateLine();
|
||||
}
|
||||
}
|
2
Assets/Puzzles/Untangle/Scripts/Point.cs.meta
Normal file
2
Assets/Puzzles/Untangle/Scripts/Point.cs.meta
Normal file
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a2576d4090b96f542a3fd9afb4387f5d
|
@ -1,348 +0,0 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using System.Collections.Generic;
|
||||
using TMPro;
|
||||
|
||||
public class UntangleGame : MonoBehaviour
|
||||
{
|
||||
public class Point
|
||||
{
|
||||
public float x, y;
|
||||
public GameObject visual;
|
||||
public int index;
|
||||
}
|
||||
|
||||
public class Edge
|
||||
{
|
||||
public int a, b; // indices of connected points
|
||||
public bool isCrossed;
|
||||
public LineRenderer line;
|
||||
}
|
||||
|
||||
[Header("Game Objects")]
|
||||
public GameObject pointPrefab;
|
||||
public LineRenderer edgePrefab;
|
||||
|
||||
[Header("Game Settings")]
|
||||
public int pointCount = 10;
|
||||
public float playAreaSize = 8f;
|
||||
|
||||
[Header("Colors")]
|
||||
public Color normalEdgeColor = Color.black;
|
||||
public Color crossedEdgeColor = Color.red;
|
||||
public Color pointColor = Color.blue;
|
||||
public Color dragPointColor = Color.white;
|
||||
public Color cursorPointColor = Color.gray;
|
||||
public Color neighborPointColor = Color.red;
|
||||
|
||||
[Header("Visual Settings")]
|
||||
public float pointRadius = 0.2f;
|
||||
public float dragThreshold = 0.5f;
|
||||
|
||||
[Header("Options")]
|
||||
public bool snapToGrid = false;
|
||||
public bool showCrossedEdges = true;
|
||||
public bool showVertexNumbers = false;
|
||||
|
||||
private List<Point> points = new List<Point>();
|
||||
private List<Edge> edges = new List<Edge>();
|
||||
private int draggedPoint = -1;
|
||||
private int cursorPoint = -1;
|
||||
private bool isSolved = false;
|
||||
private Camera mainCamera;
|
||||
private Material lineMaterial;
|
||||
|
||||
void Start()
|
||||
{
|
||||
mainCamera = Camera.main;
|
||||
|
||||
// Create material for lines to prevent pink color
|
||||
lineMaterial = new Material(Shader.Find("UI/Default"));
|
||||
lineMaterial.color = normalEdgeColor;
|
||||
|
||||
GenerateGame();
|
||||
}
|
||||
|
||||
void GenerateGame()
|
||||
{
|
||||
// Clear existing game
|
||||
foreach (Point p in points)
|
||||
{
|
||||
if (p.visual != null) Destroy(p.visual);
|
||||
}
|
||||
foreach (Edge e in edges)
|
||||
{
|
||||
if (e.line != null) Destroy(e.line.gameObject);
|
||||
}
|
||||
points.Clear();
|
||||
edges.Clear();
|
||||
isSolved = false;
|
||||
|
||||
// Create points in a circle (local space)
|
||||
for (int i = 0; i < pointCount; i++)
|
||||
{
|
||||
float angle = i * 2 * Mathf.PI / pointCount;
|
||||
Point p = new Point
|
||||
{
|
||||
x = Mathf.Sin(angle) * playAreaSize * 0.4f,
|
||||
y = Mathf.Cos(angle) * playAreaSize * 0.4f,
|
||||
index = i
|
||||
};
|
||||
points.Add(p);
|
||||
}
|
||||
|
||||
// Create edges (simplified planar graph)
|
||||
for (int i = 0; i < pointCount; i++)
|
||||
{
|
||||
int connections = Mathf.Min(3, pointCount - i - 1);
|
||||
for (int j = 1; j <= connections; j++)
|
||||
{
|
||||
int k = (i + j) % pointCount;
|
||||
edges.Add(new Edge { a = i, b = k });
|
||||
}
|
||||
}
|
||||
|
||||
CreateVisuals();
|
||||
CheckCrossings();
|
||||
}
|
||||
|
||||
void CreateVisuals()
|
||||
{
|
||||
// Create point visuals
|
||||
foreach (Point p in points)
|
||||
{
|
||||
p.visual = Instantiate(pointPrefab, transform);
|
||||
p.visual.transform.localPosition = new Vector3(p.x, p.y, 0);
|
||||
p.visual.transform.localScale = Vector3.one * pointRadius * 2;
|
||||
|
||||
if (showVertexNumbers)
|
||||
{
|
||||
Text text = p.visual.GetComponentInChildren<Text>();
|
||||
if (text != null)
|
||||
{
|
||||
text.text = p.index.ToString();
|
||||
text.enabled = showVertexNumbers;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Create edge visuals
|
||||
foreach (Edge e in edges)
|
||||
{
|
||||
e.line = Instantiate(edgePrefab, transform);
|
||||
e.line.useWorldSpace = false;
|
||||
e.line.material = lineMaterial;
|
||||
e.line.startWidth = 0.1f;
|
||||
e.line.endWidth = 0.1f;
|
||||
UpdateEdgeVisual(e);
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateEdgeVisual(Edge e)
|
||||
{
|
||||
Point a = points[e.a];
|
||||
Point b = points[e.b];
|
||||
|
||||
e.line.startColor = e.isCrossed && showCrossedEdges ? crossedEdgeColor : normalEdgeColor;
|
||||
e.line.endColor = e.line.startColor;
|
||||
e.line.SetPosition(0, new Vector3(a.x, a.y, 0));
|
||||
e.line.SetPosition(1, new Vector3(b.x, b.y, 0));
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
HandleInput();
|
||||
UpdateVisuals();
|
||||
}
|
||||
|
||||
void HandleInput()
|
||||
{
|
||||
Vector2 localMousePos;
|
||||
RectTransformUtility.ScreenPointToLocalPointInRectangle(
|
||||
GetComponent<RectTransform>(),
|
||||
Input.mousePosition,
|
||||
mainCamera,
|
||||
out localMousePos);
|
||||
Debug.Log($"Mouse Position: {localMousePos}");
|
||||
|
||||
if (Input.GetMouseButtonDown(0))
|
||||
{
|
||||
int closest = FindClosestPoint(localMousePos);
|
||||
if (closest != -1) draggedPoint = closest;
|
||||
}
|
||||
else if (Input.GetMouseButton(0) && draggedPoint != -1)
|
||||
{
|
||||
if (snapToGrid)
|
||||
{
|
||||
float gridSize = playAreaSize / (pointCount - 1);
|
||||
points[draggedPoint].x = Mathf.Round(localMousePos.x / gridSize) * gridSize;
|
||||
points[draggedPoint].y = Mathf.Round(localMousePos.y / gridSize) * gridSize;
|
||||
}
|
||||
else
|
||||
{
|
||||
points[draggedPoint].x = localMousePos.x;
|
||||
points[draggedPoint].y = localMousePos.y;
|
||||
}
|
||||
|
||||
// Keep within bounds
|
||||
points[draggedPoint].x = Mathf.Clamp(points[draggedPoint].x, -playAreaSize/2, playAreaSize/2);
|
||||
points[draggedPoint].y = Mathf.Clamp(points[draggedPoint].y, -playAreaSize/2, playAreaSize/2);
|
||||
|
||||
CheckCrossings();
|
||||
}
|
||||
else if (Input.GetMouseButtonUp(0))
|
||||
{
|
||||
draggedPoint = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
cursorPoint = FindClosestPoint(localMousePos);
|
||||
}
|
||||
}
|
||||
|
||||
int FindClosestPoint(Vector2 localPosition)
|
||||
{
|
||||
int closest = -1;
|
||||
float minDist = float.MaxValue;
|
||||
|
||||
for (int i = 0; i < points.Count; i++)
|
||||
{
|
||||
float dist = Vector2.Distance(localPosition, new Vector2(points[i].x, points[i].y));
|
||||
Debug.Log($"Point {i}: Distance {dist}");
|
||||
if (dist < dragThreshold && dist < minDist)
|
||||
{
|
||||
minDist = dist;
|
||||
closest = i;
|
||||
}
|
||||
}
|
||||
Debug.Log($"Closest point: {closest} at distance {minDist}");
|
||||
return closest;
|
||||
}
|
||||
|
||||
void UpdateVisuals()
|
||||
{
|
||||
// Update point positions
|
||||
for (int i = 0; i < points.Count; i++)
|
||||
{
|
||||
Point p = points[i];
|
||||
p.visual.transform.localPosition = new Vector3(p.x, p.y, 0);
|
||||
|
||||
// Update point color
|
||||
Image img = p.visual.GetComponent<Image>();
|
||||
if (img != null)
|
||||
{
|
||||
if (i == draggedPoint)
|
||||
img.color = dragPointColor;
|
||||
else if (i == cursorPoint)
|
||||
img.color = cursorPointColor;
|
||||
else if (draggedPoint != -1 && IsConnected(draggedPoint, i))
|
||||
img.color = neighborPointColor;
|
||||
else
|
||||
img.color = pointColor;
|
||||
}
|
||||
}
|
||||
|
||||
// Update edges
|
||||
foreach (Edge e in edges)
|
||||
{
|
||||
UpdateEdgeVisual(e);
|
||||
}
|
||||
}
|
||||
|
||||
bool IsConnected(int a, int b)
|
||||
{
|
||||
foreach (Edge e in edges)
|
||||
{
|
||||
if ((e.a == a && e.b == b) || (e.a == b && e.b == a))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void CheckCrossings()
|
||||
{
|
||||
bool anyCrossings = false;
|
||||
|
||||
// Reset all edges
|
||||
foreach (Edge e in edges)
|
||||
{
|
||||
e.isCrossed = false;
|
||||
}
|
||||
|
||||
// Check all edge pairs for crossings
|
||||
for (int i = 0; i < edges.Count; i++)
|
||||
{
|
||||
Edge e1 = edges[i];
|
||||
Point a1 = points[e1.a];
|
||||
Point a2 = points[e1.b];
|
||||
|
||||
for (int j = i + 1; j < edges.Count; j++)
|
||||
{
|
||||
Edge e2 = edges[j];
|
||||
Point b1 = points[e2.a];
|
||||
Point b2 = points[e2.b];
|
||||
|
||||
// Skip if edges share a point
|
||||
if (e1.a == e2.a || e1.a == e2.b || e1.b == e2.a || e1.b == e2.b)
|
||||
continue;
|
||||
|
||||
if (DoLinesIntersect(a1, a2, b1, b2))
|
||||
{
|
||||
e1.isCrossed = true;
|
||||
e2.isCrossed = true;
|
||||
anyCrossings = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
isSolved = !anyCrossings;
|
||||
}
|
||||
|
||||
bool DoLinesIntersect(Point a1, Point a2, Point b1, Point b2)
|
||||
{
|
||||
Vector2 p1 = new Vector2(a1.x, a1.y);
|
||||
Vector2 p2 = new Vector2(a2.x, a2.y);
|
||||
Vector2 p3 = new Vector2(b1.x, b1.y);
|
||||
Vector2 p4 = new Vector2(b2.x, b2.y);
|
||||
|
||||
float d = (p2.x - p1.x) * (p4.y - p3.y) - (p2.y - p1.y) * (p4.x - p3.x);
|
||||
if (d == 0) return false;
|
||||
|
||||
float u = ((p3.x - p1.x) * (p4.y - p3.y) - (p3.y - p1.y) * (p4.x - p3.x)) / d;
|
||||
float v = ((p3.x - p1.x) * (p2.y - p1.y) - (p3.y - p1.y) * (p2.x - p1.x)) / d;
|
||||
|
||||
return (u >= 0) && (u <= 1) && (v >= 0) && (v <= 1);
|
||||
}
|
||||
|
||||
public void OnSnapToGridToggle(bool value)
|
||||
{
|
||||
snapToGrid = value;
|
||||
}
|
||||
|
||||
public void OnShowCrossedEdgesToggle(bool value)
|
||||
{
|
||||
showCrossedEdges = value;
|
||||
foreach (Edge e in edges)
|
||||
{
|
||||
UpdateEdgeVisual(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void OnVertexNumbersToggle(bool value)
|
||||
{
|
||||
showVertexNumbers = value;
|
||||
foreach (Point p in points)
|
||||
{
|
||||
Text text = p.visual.GetComponentInChildren<Text>();
|
||||
if (text != null)
|
||||
{
|
||||
text.enabled = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void OnRegenerateClick()
|
||||
{
|
||||
GenerateGame();
|
||||
}
|
||||
}
|
@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5c5e9a183c94351dbbfe349a667626ae
|
273
Assets/Puzzles/Untangle/Scripts/UntangleGameManager.cs
Normal file
273
Assets/Puzzles/Untangle/Scripts/UntangleGameManager.cs
Normal file
@ -0,0 +1,273 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using TMPro;
|
||||
public enum UGameState
|
||||
{
|
||||
Uninitialized,
|
||||
Playing,
|
||||
Win,
|
||||
Lose
|
||||
}
|
||||
|
||||
public class UntangleGameManager : MonoBehaviour
|
||||
{
|
||||
[Header("Prefabs & Parents")]
|
||||
public GameObject pointPrefab;
|
||||
public LineRenderer linePrefab;
|
||||
public Transform spawnParent;
|
||||
|
||||
[Header("UI Elements")]
|
||||
public Text statusText;
|
||||
// public GameObject winUI;
|
||||
// public GameObject loseUI;
|
||||
public Button newGameButton;
|
||||
public Button solveButton;
|
||||
|
||||
[Header("Audio")]
|
||||
public AudioClip winSound;
|
||||
// public AudioClip loseSound;
|
||||
|
||||
[Header("Game Settings")]
|
||||
public int pointCount = 10;
|
||||
|
||||
// Runtime state
|
||||
public UGameState gameState = UGameState.Uninitialized;
|
||||
private List<Point> points = new List<Point>();
|
||||
public List<Connection> connections = new List<Connection>();
|
||||
private Vector3[] solutionPositions;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
newGameButton.onClick.AddListener(StartGame);
|
||||
solveButton.onClick.AddListener(AutoSolve);
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
StartGame();
|
||||
}
|
||||
|
||||
public void SetGameState(UGameState state)
|
||||
{
|
||||
gameState = state;
|
||||
}
|
||||
|
||||
public void StartGame()
|
||||
{
|
||||
ResetPuzzle();
|
||||
}
|
||||
public void ResetPuzzle()
|
||||
{
|
||||
gameState = UGameState.Uninitialized;
|
||||
statusText.text = "Generating new game...";
|
||||
GenerateRandomGame();
|
||||
gameState = UGameState.Playing;
|
||||
statusText.text = "";
|
||||
}
|
||||
|
||||
void GenerateRandomGame()
|
||||
{
|
||||
ClearOldGame();
|
||||
statusText.text = "";
|
||||
points.Clear();
|
||||
connections.Clear();
|
||||
solutionPositions = new Vector3[pointCount];
|
||||
|
||||
// Step 1: Place points randomly (solution layout)
|
||||
for (int i = 0; i < pointCount; i++)
|
||||
{
|
||||
Vector2 pos;
|
||||
int tries = 0;
|
||||
do
|
||||
{
|
||||
pos = Random.insideUnitCircle * 4f;
|
||||
tries++;
|
||||
if (tries > 1000) break;
|
||||
}
|
||||
while (IsTooClose(pos));
|
||||
|
||||
// instantiate as child of spawnParent
|
||||
Vector3 worldPos = new Vector3(pos.x, pos.y, 0f);
|
||||
GameObject obj = Instantiate(pointPrefab, worldPos, Quaternion.identity, spawnParent);
|
||||
Point p = obj.GetComponent<Point>();
|
||||
p.id = i;
|
||||
p.manager = this;
|
||||
points.Add(p);
|
||||
solutionPositions[i] = worldPos;
|
||||
}
|
||||
|
||||
// Step 2: Create a Minimum Spanning Tree (MST)
|
||||
List<(int, int, float)> edges = new List<(int, int, float)>();
|
||||
for (int i = 0; i < pointCount; i++)
|
||||
{
|
||||
for (int j = i + 1; j < pointCount; j++)
|
||||
{
|
||||
float dist = Vector2.Distance(points[i].transform.position, points[j].transform.position);
|
||||
edges.Add((i, j, dist));
|
||||
}
|
||||
}
|
||||
edges.Sort((a, b) => a.Item3.CompareTo(b.Item3));
|
||||
|
||||
int[] parent = new int[pointCount];
|
||||
for (int i = 0; i < pointCount; i++) parent[i] = i;
|
||||
int Find(int x) => parent[x] == x ? x : parent[x] = Find(parent[x]);
|
||||
void Union(int x, int y) => parent[Find(x)] = Find(y);
|
||||
|
||||
int edgeCount = 0;
|
||||
foreach (var (a, b, _) in edges)
|
||||
{
|
||||
if (Find(a) != Find(b))
|
||||
{
|
||||
Union(a, b);
|
||||
AddConnection(a, b);
|
||||
edgeCount++;
|
||||
if (edgeCount == pointCount - 1) break;
|
||||
}
|
||||
}
|
||||
|
||||
// Step 3: Ensure every point has at least degree 2
|
||||
int[] degrees = new int[pointCount];
|
||||
foreach (var c in connections)
|
||||
{
|
||||
degrees[c.a.id]++;
|
||||
degrees[c.b.id]++;
|
||||
}
|
||||
|
||||
for (int i = 0; i < pointCount; i++)
|
||||
{
|
||||
while (degrees[i] < 2)
|
||||
{
|
||||
bool added = false;
|
||||
|
||||
// Try to add a non-crossing edge
|
||||
for (int j = 0; j < pointCount; j++)
|
||||
{
|
||||
if (i == j || IsConnected(i, j)) continue;
|
||||
|
||||
Connection temp = new Connection { a = points[i], b = points[j] };
|
||||
if (DoesIntersectAny(temp)) continue;
|
||||
|
||||
AddConnection(i, j);
|
||||
degrees[i]++;
|
||||
degrees[j]++;
|
||||
added = true;
|
||||
break;
|
||||
}
|
||||
|
||||
// If no valid non-crossing edge found, allow one forced connection (rare case)
|
||||
if (!added)
|
||||
{
|
||||
for (int j = 0; j < pointCount; j++)
|
||||
{
|
||||
if (i == j || IsConnected(i, j)) continue;
|
||||
|
||||
AddConnection(i, j);
|
||||
degrees[i]++;
|
||||
degrees[j]++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Step 4: Shuffle point positions to create the puzzle
|
||||
foreach (var p in points)
|
||||
p.transform.localPosition = Random.insideUnitCircle * 400f; // localPosition keeps them under spawnParent
|
||||
|
||||
foreach (var c in connections)
|
||||
c.UpdateLine();
|
||||
}
|
||||
private void AddConnection(int a, int b)
|
||||
{
|
||||
var c = new Connection { a = points[a], b = points[b] };
|
||||
var lr = Instantiate(linePrefab, spawnParent);
|
||||
c.line = lr;
|
||||
c.UpdateLine();
|
||||
connections.Add(c);
|
||||
}
|
||||
|
||||
private bool IsConnected(int a, int b)
|
||||
{
|
||||
return connections.Exists(c =>
|
||||
(c.a.id == a && c.b.id == b) ||
|
||||
(c.a.id == b && c.b.id == a));
|
||||
}
|
||||
|
||||
private bool DoesIntersectAny(Connection cand)
|
||||
{
|
||||
foreach (var c in connections)
|
||||
{
|
||||
if (cand.SharesPointWith(c)) continue;
|
||||
if (LinesIntersect(cand, c)) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool IsTooClose(Vector2 pos)
|
||||
{
|
||||
return points.Exists(p => Vector2.Distance(p.transform.position, pos) < 0.5f);
|
||||
}
|
||||
|
||||
private void ClearOldGame()
|
||||
{
|
||||
foreach (var p in points) Destroy(p.gameObject);
|
||||
foreach (var c in connections) Destroy(c.line.gameObject);
|
||||
}
|
||||
|
||||
public void CheckIfSolved()
|
||||
{
|
||||
if (gameState != UGameState.Playing) return;
|
||||
foreach (var c1 in connections)
|
||||
foreach (var c2 in connections)
|
||||
if (c1 != c2 && !c1.SharesPointWith(c2) && LinesIntersect(c1, c2))
|
||||
return;
|
||||
|
||||
// no intersections found!
|
||||
statusText.text = "Completed!";
|
||||
// if (loseUI != null)
|
||||
// loseUI.SetActive(false);
|
||||
// if (winUI != null)
|
||||
// winUI.SetActive(true);
|
||||
SetGameState(UGameState.Win);
|
||||
Debug.Log("Puzzle Untangle solved!");
|
||||
if (winSound != null) {
|
||||
SoundFXManager.instance.PlaySound(winSound, transform, 1f);
|
||||
}
|
||||
}
|
||||
|
||||
private void AutoSolve()
|
||||
{
|
||||
if (gameState != UGameState.Playing) return;
|
||||
for (int i = 0; i < points.Count; i++)
|
||||
points[i].transform.position = solutionPositions[i];
|
||||
connections.ForEach(c => c.UpdateLine());
|
||||
CheckIfSolved();
|
||||
}
|
||||
|
||||
#region Line‑intersection helpers
|
||||
private bool LinesIntersect(Connection c1, Connection c2)
|
||||
{
|
||||
Vector2 p1 = c1.a.transform.position;
|
||||
Vector2 q1 = c1.b.transform.position;
|
||||
Vector2 p2 = c2.a.transform.position;
|
||||
Vector2 q2 = c2.b.transform.position;
|
||||
return DoIntersect(p1, q1, p2, q2);
|
||||
}
|
||||
|
||||
private bool DoIntersect(Vector2 a, Vector2 b, Vector2 c, Vector2 d)
|
||||
{
|
||||
int o1 = Orientation(a, b, c);
|
||||
int o2 = Orientation(a, b, d);
|
||||
int o3 = Orientation(c, d, a);
|
||||
int o4 = Orientation(c, d, b);
|
||||
return o1 != o2 && o3 != o4;
|
||||
}
|
||||
|
||||
private int Orientation(Vector2 a, Vector2 b, Vector2 c)
|
||||
{
|
||||
float v = (b.y - a.y) * (c.x - b.x) - (b.x - a.x) * (c.y - b.y);
|
||||
if (Mathf.Abs(v) < 1e-4f) return 0;
|
||||
return (v > 0) ? 1 : 2;
|
||||
}
|
||||
#endregion
|
||||
}
|
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3b4d8850cd43cad4fbba7540819becaa
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
34231
Assets/Scenes/level5.unity
Normal file
34231
Assets/Scenes/level5.unity
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/Scenes/level5.unity.meta
Normal file
7
Assets/Scenes/level5.unity.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1e9103ecf3cab7c85ab78b5bf899fecc
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -19,6 +19,8 @@ public class DoorInteraction : MonoBehaviour
|
||||
[SerializeField] private string overrideWord = string.Empty;
|
||||
[SerializeField] private int simonSaysPuzzleIndex = 0;
|
||||
|
||||
[SerializeField] private int numPoints = 10;
|
||||
|
||||
[SerializeField] private TextMeshProUGUI targetDoorText = null;
|
||||
[SerializeField] private UnityEngine.UI.Image tabletIcon = null;
|
||||
[SerializeField] private GameObject closeTabletPrompt = null;
|
||||
@ -130,10 +132,10 @@ public class DoorInteraction : MonoBehaviour
|
||||
targetDoorText.text = "Target Door: " + sceneNumber + animationFile.Substring(animationFile.Length - 2);
|
||||
}
|
||||
|
||||
if (!tabletController.isOnMainMenu && controlScript.GameState == EGameState.Uninitialized && !startedPuzzle)
|
||||
if (!tabletController.isOnMainMenu && !startedPuzzle)
|
||||
{
|
||||
StartPuzzle(doorPuzzleType);
|
||||
startedPuzzle = true;
|
||||
StartPuzzle(doorPuzzleType);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -174,7 +176,7 @@ public class DoorInteraction : MonoBehaviour
|
||||
{
|
||||
if (interactionPrompt != null)
|
||||
{
|
||||
Debug.Log($"[TextPopUp] Request: '{text}', important={important}, currentImportant={isImportantPrompt}");
|
||||
// Debug.Log($"[TextPopUp] Request: '{text}', important={important}, currentImportant={isImportantPrompt}");
|
||||
|
||||
if (!isImportantPrompt || important)
|
||||
{
|
||||
@ -226,6 +228,9 @@ public class DoorInteraction : MonoBehaviour
|
||||
case TabletScreen.SimonSays:
|
||||
tabletScript.SetScreenSimonSays(simonSaysPuzzleIndex);
|
||||
break;
|
||||
case TabletScreen.Untangle:
|
||||
tabletScript.SetScreenUntangle(numPoints);
|
||||
break;
|
||||
}
|
||||
|
||||
StartCoroutine(WaitForPuzzleCompletion());
|
||||
|
@ -55,25 +55,32 @@ public class PickUpKeyCard : MonoBehaviour
|
||||
if (!Input.GetMouseButtonDown(0)) return;
|
||||
|
||||
bool hasSpace = false;
|
||||
foreach (var slot in playerInventory.slots)
|
||||
if (slot == null) { hasSpace = true; break; }
|
||||
|
||||
if (!hasSpace)
|
||||
if (playerInventory != null)
|
||||
{
|
||||
Debug.Log("Inventory is full!");
|
||||
if (interactionPrompt) interactionPrompt.text = "Inventory full!";
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
foreach (var slot in playerInventory.slots)
|
||||
if (slot == null) { hasSpace = true; break; }
|
||||
|
||||
if (!hasSpace)
|
||||
{
|
||||
Debug.Log("Inventory is full!");
|
||||
if (interactionPrompt) interactionPrompt.text = "Inventory full!";
|
||||
return;
|
||||
}
|
||||
}
|
||||
isPickedUp = true;
|
||||
if (isKeyCard && keyCardPlayer != null)
|
||||
keyCardPlayer.hasKeyCard = true;
|
||||
|
||||
playerInventory.AddItem(keyCardItem);
|
||||
FindObjectOfType<InventoryUI>()?.RefreshUI();
|
||||
Destroy(gameObject);
|
||||
|
||||
outline.enabled = false;
|
||||
|
||||
if (playerInventory != null)
|
||||
{
|
||||
playerInventory.AddItem(keyCardItem);
|
||||
FindObjectOfType<InventoryUI>()?.RefreshUI();
|
||||
Destroy(gameObject);
|
||||
}
|
||||
if (outline) outline.enabled = false;
|
||||
interactionPrompt.enabled = false;
|
||||
objectAnimator?.Play(animationName, 0, 0);
|
||||
if (pickupSound) SoundFXManager.instance.PlaySound(pickupSound, transform, 1.5f);
|
||||
|
@ -15,3 +15,4 @@ MonoBehaviour:
|
||||
itemName: Clickinorder
|
||||
itemIcon: {fileID: 21300000, guid: ae600fc3261ad214e8d0fea2e9814db5, type: 3}
|
||||
itemPrefab: {fileID: 8988288550564699726, guid: 56a57c82158b9874eb02de81af87fcb1, type: 3}
|
||||
isKeyCard: 0
|
||||
|
18
Assets/Scripts/ScriptableObjects/GuessTheWord.asset
Normal file
18
Assets/Scripts/ScriptableObjects/GuessTheWord.asset
Normal file
@ -0,0 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9d572cf34af0fc14981c6699e965994d, type: 3}
|
||||
m_Name: GuessTheWord
|
||||
m_EditorClassIdentifier:
|
||||
itemName: GuessTheWord
|
||||
itemIcon: {fileID: 21300000, guid: ae600fc3261ad214e8d0fea2e9814db5, type: 3}
|
||||
itemPrefab: {fileID: 8988288550564699726, guid: 56a57c82158b9874eb02de81af87fcb1, type: 3}
|
||||
isKeyCard: 0
|
8
Assets/Scripts/ScriptableObjects/GuessTheWord.asset.meta
Normal file
8
Assets/Scripts/ScriptableObjects/GuessTheWord.asset.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e782766c514fbcdbbbe17ef0dfd723e9
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
18
Assets/Scripts/ScriptableObjects/KeyCardItem_blue.asset
Normal file
18
Assets/Scripts/ScriptableObjects/KeyCardItem_blue.asset
Normal file
@ -0,0 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9d572cf34af0fc14981c6699e965994d, type: 3}
|
||||
m_Name: KeyCardItem_blue
|
||||
m_EditorClassIdentifier:
|
||||
itemName: Red Card
|
||||
itemIcon: {fileID: 21300000, guid: 9972f130bf5d27a53b2ce7051ac2d5be, type: 3}
|
||||
itemPrefab: {fileID: 8924941041106658507, guid: ebab6da28adb8feaabf325369258f46c, type: 3}
|
||||
isKeyCard: 1
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 42737e55c45f9b2e09928be6cd934406
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -15,3 +15,4 @@ MonoBehaviour:
|
||||
itemName: Red Card
|
||||
itemIcon: {fileID: 21300000, guid: e9d08f64433b30ff680fa90c316f4e5b, type: 3}
|
||||
itemPrefab: {fileID: 8924941041106658507, guid: 2f261fc6f440ae937ac1858cdc41b7ca, type: 3}
|
||||
isKeyCard: 1
|
||||
|
@ -15,3 +15,4 @@ MonoBehaviour:
|
||||
itemName: Red Card
|
||||
itemIcon: {fileID: 21300000, guid: 839d951c18cf6ae88aab372a39d87694, type: 3}
|
||||
itemPrefab: {fileID: 8924941041106658507, guid: 9978c9c43cf7bfb4ba426c30b5c569b2, type: 3}
|
||||
isKeyCard: 1
|
||||
|
@ -13,5 +13,6 @@ MonoBehaviour:
|
||||
m_Name: USBStickItem
|
||||
m_EditorClassIdentifier:
|
||||
itemName: USB Stick
|
||||
itemIcon: {fileID: 21300000, guid: 1d5d46cffb17f694987ced466c5888e3, type: 3}
|
||||
itemIcon: {fileID: 21300000, guid: ae600fc3261ad214e8d0fea2e9814db5, type: 3}
|
||||
itemPrefab: {fileID: 8988288550564699726, guid: 56a57c82158b9874eb02de81af87fcb1, type: 3}
|
||||
isKeyCard: 0
|
||||
|
18
Assets/Scripts/ScriptableObjects/Untangle Item.asset
Normal file
18
Assets/Scripts/ScriptableObjects/Untangle Item.asset
Normal file
@ -0,0 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9d572cf34af0fc14981c6699e965994d, type: 3}
|
||||
m_Name: Untangle Item
|
||||
m_EditorClassIdentifier:
|
||||
itemName: Untangle
|
||||
itemIcon: {fileID: 21300000, guid: ae600fc3261ad214e8d0fea2e9814db5, type: 3}
|
||||
itemPrefab: {fileID: 8988288550564699726, guid: 56a57c82158b9874eb02de81af87fcb1, type: 3}
|
||||
isKeyCard: 0
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a5b7278d6f24408f298ca2c581b95cc4
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/Sounds/Clips/01_04.wav
Normal file
BIN
Assets/Sounds/Clips/01_04.wav
Normal file
Binary file not shown.
23
Assets/Sounds/Clips/01_04.wav.meta
Normal file
23
Assets/Sounds/Clips/01_04.wav.meta
Normal file
@ -0,0 +1,23 @@
|
||||
fileFormatVersion: 2
|
||||
guid: df8cba3646a3088248e66c6359dfe64b
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 8
|
||||
defaultSettings:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
loadInBackground: 0
|
||||
ambisonic: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/Sounds/Clips/03_01.wav
Normal file
BIN
Assets/Sounds/Clips/03_01.wav
Normal file
Binary file not shown.
23
Assets/Sounds/Clips/03_01.wav.meta
Normal file
23
Assets/Sounds/Clips/03_01.wav.meta
Normal file
@ -0,0 +1,23 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f56781540b9eec0029bac3eb607cb7e3
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 8
|
||||
defaultSettings:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
loadInBackground: 0
|
||||
ambisonic: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/Sounds/Clips/05_01.wav
Normal file
BIN
Assets/Sounds/Clips/05_01.wav
Normal file
Binary file not shown.
23
Assets/Sounds/Clips/05_01.wav.meta
Normal file
23
Assets/Sounds/Clips/05_01.wav.meta
Normal file
@ -0,0 +1,23 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 814e758bbc913afc69d5e94943bfd347
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 8
|
||||
defaultSettings:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
loadInBackground: 0
|
||||
ambisonic: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/Sounds/Clips/05_02.wav
Normal file
BIN
Assets/Sounds/Clips/05_02.wav
Normal file
Binary file not shown.
23
Assets/Sounds/Clips/05_02.wav.meta
Normal file
23
Assets/Sounds/Clips/05_02.wav.meta
Normal file
@ -0,0 +1,23 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3d947d3ba6b55b2a495060b825d2dbd8
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 8
|
||||
defaultSettings:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
loadInBackground: 0
|
||||
ambisonic: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -61,7 +61,7 @@ Material:
|
||||
m_Ints: []
|
||||
m_Floats: []
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Color: {r: 0.38857278, g: 0.38857278, b: 0.38857278, a: 1}
|
||||
- _EmissionColor: {r: 128, g: 128, b: 128, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
|
@ -0,0 +1,70 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-3892100927087704966
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 9
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Card_model Variant Variant Variant 1 Variant
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 2100000, guid: 87ea55cdb53430d49966b7e3c2b6a88a, type: 2}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _METALLICSPECGLOSSMAP
|
||||
- _NORMALMAP
|
||||
- _PARALLAXMAP
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses:
|
||||
- MOTIONVECTORS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 2800000, guid: e1e5f117815af0728a020a2886730980, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 2800000, guid: e58d6a53b280c66df879148820f2458e, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: e1e5f117815af0728a020a2886730980, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 2800000, guid: 6fbd763fe3f00536f9e030649d413d8f, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 2800000, guid: e7e733be36e18ad56b305d9d13b00b09, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats: []
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.28235292, g: 0.7433272, b: 0.8666667, a: 1}
|
||||
- _Color: {r: 0.2823529, g: 0.7433272, b: 0.8666667, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3268b8b98fdcb3c62a1b624d5d5446a3
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
165
Assets/levels/level1/keycard1/Card_model_blue.prefab
Normal file
165
Assets/levels/level1/keycard1/Card_model_blue.prefab
Normal file
@ -0,0 +1,165 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &3839894878138069533
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2850537304662550584}
|
||||
- component: {fileID: 190948566412933862}
|
||||
- component: {fileID: 4691833975505319639}
|
||||
m_Layer: 0
|
||||
m_Name: Card_Mesh
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2850537304662550584
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3839894878138069533}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3101798197347461516}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &190948566412933862
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3839894878138069533}
|
||||
m_Mesh: {fileID: 4821974255002996250, guid: 6945c9e5b5bb56266b0c5b76ef62b8aa, type: 3}
|
||||
--- !u!23 &4691833975505319639
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3839894878138069533}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 3268b8b98fdcb3c62a1b624d5d5446a3, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1 &8924941041106658507
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3101798197347461516}
|
||||
- component: {fileID: 318389086690240487}
|
||||
- component: {fileID: 8402379286112444004}
|
||||
m_Layer: 0
|
||||
m_Name: Card_model_blue
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3101798197347461516
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8924941041106658507}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0.23144493, z: -0, w: 0.97284806}
|
||||
m_LocalPosition: {x: 2.29, y: 0.5528, z: -46.74}
|
||||
m_LocalScale: {x: 3, y: 3, z: 3}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children:
|
||||
- {fileID: 2850537304662550584}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: -26.764, z: 0}
|
||||
--- !u!65 &318389086690240487
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8924941041106658507}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 0.13, y: 0.1, z: 0.16}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!95 &8402379286112444004
|
||||
Animator:
|
||||
serializedVersion: 7
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8924941041106658507}
|
||||
m_Enabled: 1
|
||||
m_Avatar: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000, guid: b1d17488fd8ca5d36a535e9f1770c2eb, type: 2}
|
||||
m_CullingMode: 0
|
||||
m_UpdateMode: 0
|
||||
m_ApplyRootMotion: 0
|
||||
m_LinearVelocityBlending: 0
|
||||
m_StabilizeFeet: 0
|
||||
m_AnimatePhysics: 0
|
||||
m_WarningMessage:
|
||||
m_HasTransformHierarchy: 1
|
||||
m_AllowConstantClipSamplingOptimization: 1
|
||||
m_KeepAnimatorStateOnDisable: 0
|
||||
m_WriteDefaultValuesOnDisable: 0
|
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ebab6da28adb8feaabf325369258f46c
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -20,7 +20,7 @@ AnimationClip:
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: {x: 2.612, y: 0, z: -0.12000084}
|
||||
value: {x: 0.30417728, y: -3.849102, z: -20.569092}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
@ -29,7 +29,7 @@ AnimationClip:
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
- serializedVersion: 3
|
||||
time: 0.41666666
|
||||
value: {x: 2.612, y: 0, z: -0.12000084}
|
||||
value: {x: 0.30417728, y: -3.849102, z: -20.569092}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
@ -38,7 +38,7 @@ AnimationClip:
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
- serializedVersion: 3
|
||||
time: 1.1666666
|
||||
value: {x: 1.33, y: 0, z: -0.12000084}
|
||||
value: {x: -1.024, y: -3.849102, z: -20.569092}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
@ -138,123 +138,6 @@ AnimationClip:
|
||||
m_HeightFromFeet: 0
|
||||
m_Mirror: 0
|
||||
m_EditorCurves:
|
||||
- serializedVersion: 2
|
||||
curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 2.612
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.41666666
|
||||
value: 2.612
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1.1666666
|
||||
value: 1.33
|
||||
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_LocalPosition.x
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
flags: 0
|
||||
- serializedVersion: 2
|
||||
curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.41666666
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1.1666666
|
||||
value: 0
|
||||
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_LocalPosition.y
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
flags: 0
|
||||
- serializedVersion: 2
|
||||
curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: -0.12000084
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.41666666
|
||||
value: -0.12000084
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1.1666666
|
||||
value: -0.12000084
|
||||
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_LocalPosition.z
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
flags: 0
|
||||
- serializedVersion: 2
|
||||
curve:
|
||||
serializedVersion: 2
|
||||
@ -294,6 +177,123 @@ AnimationClip:
|
||||
classID: 64
|
||||
script: {fileID: 0}
|
||||
flags: 0
|
||||
- serializedVersion: 2
|
||||
curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0.30417728
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.41666666
|
||||
value: 0.30417728
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1.1666666
|
||||
value: -1.024
|
||||
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_LocalPosition.x
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
flags: 0
|
||||
- serializedVersion: 2
|
||||
curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: -3.849102
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.41666666
|
||||
value: -3.849102
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1.1666666
|
||||
value: -3.849102
|
||||
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_LocalPosition.y
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
flags: 0
|
||||
- serializedVersion: 2
|
||||
curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: -20.569092
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.41666666
|
||||
value: -20.569092
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1.1666666
|
||||
value: -20.569092
|
||||
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_LocalPosition.z
|
||||
path:
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
flags: 0
|
||||
m_EulerEditorCurves: []
|
||||
m_HasGenericRootTransform: 1
|
||||
m_HasMotionFloatCurves: 0
|
||||
|
47
Assets/levels/level3_4/mat/Material.008 Variant.mat
Normal file
47
Assets/levels/level3_4/mat/Material.008 Variant.mat
Normal file
@ -0,0 +1,47 @@
|
||||
%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: Material.008 Variant
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 2100000, guid: ddb92a2018191bb729b31ab15dd86ef3, type: 2}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses:
|
||||
- MOTIONVECTORS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs: []
|
||||
m_Ints: []
|
||||
m_Floats: []
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.15294118, g: 0.2, b: 0.61960787, a: 1}
|
||||
- _Color: {r: 0.15294114, g: 0.19999996, b: 0.61960775, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
--- !u!114 &339439147917784705
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 9
|
8
Assets/levels/level3_4/mat/Material.008 Variant.mat.meta
Normal file
8
Assets/levels/level3_4/mat/Material.008 Variant.mat.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d91804066ee9ae8478ced3704746b8e3
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
48
Assets/levels/level5/level5 Variant.mat
Normal file
48
Assets/levels/level5/level5 Variant.mat
Normal file
@ -0,0 +1,48 @@
|
||||
%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: level5 Variant
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 6091742677541092392, guid: 68cd2a13bfcfb43b68877182a967920a, type: 3}
|
||||
m_ModifiedSerializedProperties: 2
|
||||
m_ValidKeywords:
|
||||
- _EMISSION
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 2
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses:
|
||||
- MOTIONVECTORS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs: []
|
||||
m_Ints: []
|
||||
m_Floats: []
|
||||
m_Colors:
|
||||
- _Color: {r: 0.9063317, g: 0.9063317, b: 0.9063317, a: 1}
|
||||
- _EmissionColor: {r: 4, g: 4, b: 4, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
--- !u!114 &2504236729859406079
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 9
|
8
Assets/levels/level5/level5 Variant.mat.meta
Normal file
8
Assets/levels/level5/level5 Variant.mat.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1ab3d0c3e0c6f4390aaea7a9d5380882
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/pngs/3x3n.png
Normal file
BIN
Assets/pngs/3x3n.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1002 KiB |
117
Assets/pngs/3x3n.png.meta
Normal file
117
Assets/pngs/3x3n.png.meta
Normal file
@ -0,0 +1,117 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6ac935e7d78fa92e8a757662a4541e91
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 520, y: 110, z: 520, w: 100}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 1537655665
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/pngs/card_model_level3_icon.png
Normal file
BIN
Assets/pngs/card_model_level3_icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 56 KiB |
@ -1,10 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7f8715f19f59bd7e58dd1b69a741f94f
|
||||
guid: 9972f130bf5d27a53b2ce7051ac2d5be
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: 7482667652216324306
|
||||
second: Square
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
@ -42,21 +39,21 @@ TextureImporter:
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 256
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
@ -68,7 +65,7 @@ TextureImporter:
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 1
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
@ -96,64 +93,12 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: Square
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 256
|
||||
height: 256
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 2d009a6b596c7d760800000000000000
|
||||
internalID: 7482667652216324306
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape:
|
||||
- - {x: -128, y: 128}
|
||||
- {x: -128, y: -128}
|
||||
- {x: 128, y: -128}
|
||||
- {x: 128, y: 128}
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
@ -164,8 +109,7 @@ TextureImporter:
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable:
|
||||
Square: 7482667652216324306
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
@ -6,6 +6,7 @@ public enum TabletScreen {
|
||||
Word,
|
||||
Mines,
|
||||
SimonSays,
|
||||
Untangle,
|
||||
MainMenu,
|
||||
Clear
|
||||
}
|
||||
@ -34,6 +35,7 @@ public class TabletScript : MonoBehaviour
|
||||
[SerializeField] private GameObject minesPuzzleSheet = null;
|
||||
[SerializeField] private GameObject wordPuzzleSheet = null;
|
||||
[SerializeField] private GameObject simonSaysPuzzleSheet = null;
|
||||
[SerializeField] private GameObject untanglePuzzleSheet = null;
|
||||
[SerializeField] private GameObject mainMenuSheet = null;
|
||||
|
||||
|
||||
@ -58,6 +60,7 @@ public class TabletScript : MonoBehaviour
|
||||
[SerializeField] private ControlScript minesControlScript = null;
|
||||
[SerializeField] private WordPuzzle wordPuzzleScript = null;
|
||||
[SerializeField] private SimonSaysGameManager simonSaysGameManager = null;
|
||||
[SerializeField] private UntangleGameManager untangleGameManager = null;
|
||||
|
||||
|
||||
public void Start()
|
||||
@ -76,33 +79,46 @@ public class TabletScript : MonoBehaviour
|
||||
wordPuzzleSheet.SetActive(true);
|
||||
minesPuzzleSheet.SetActive(false);
|
||||
simonSaysPuzzleSheet.SetActive(false);
|
||||
untanglePuzzleSheet.SetActive(false);
|
||||
break;
|
||||
case TabletScreen.Mines:
|
||||
wordPuzzleSheet.SetActive(false);
|
||||
minesPuzzleSheet.SetActive(true);
|
||||
simonSaysPuzzleSheet.SetActive(false);
|
||||
break;
|
||||
case TabletScreen.MainMenu:
|
||||
wordPuzzleSheet.SetActive(false);
|
||||
minesPuzzleSheet.SetActive(false);
|
||||
simonSaysPuzzleSheet.SetActive(false);
|
||||
mainMenuSheet.SetActive(true);
|
||||
untanglePuzzleSheet.SetActive(false);
|
||||
break;
|
||||
case TabletScreen.SimonSays:
|
||||
wordPuzzleSheet.SetActive(false);
|
||||
minesPuzzleSheet.SetActive(false);
|
||||
simonSaysPuzzleSheet.SetActive(true);
|
||||
untanglePuzzleSheet.SetActive(false);
|
||||
break;
|
||||
case TabletScreen.Untangle:
|
||||
wordPuzzleSheet.SetActive(false);
|
||||
minesPuzzleSheet.SetActive(false);
|
||||
simonSaysPuzzleSheet.SetActive(false);
|
||||
untanglePuzzleSheet.SetActive(true);
|
||||
break;
|
||||
|
||||
case TabletScreen.MainMenu:
|
||||
wordPuzzleSheet.SetActive(false);
|
||||
minesPuzzleSheet.SetActive(false);
|
||||
simonSaysPuzzleSheet.SetActive(false);
|
||||
untanglePuzzleSheet.SetActive(false);
|
||||
mainMenuSheet.SetActive(true);
|
||||
break;
|
||||
case TabletScreen.Clear:
|
||||
wordPuzzleSheet.SetActive(false);
|
||||
minesPuzzleSheet.SetActive(false);
|
||||
simonSaysPuzzleSheet.SetActive(false);
|
||||
untanglePuzzleSheet.SetActive(false);
|
||||
mainMenuSheet.SetActive(false);
|
||||
break;
|
||||
default:
|
||||
wordPuzzleSheet.SetActive(false);
|
||||
minesPuzzleSheet.SetActive(false);
|
||||
simonSaysPuzzleSheet.SetActive(false);
|
||||
untanglePuzzleSheet.SetActive(false);
|
||||
mainMenuSheet.SetActive(false);
|
||||
break;
|
||||
|
||||
@ -114,6 +130,7 @@ public class TabletScript : MonoBehaviour
|
||||
mainMenuSheet.SetActive(false);
|
||||
wordPuzzleSheet.SetActive(false);
|
||||
simonSaysPuzzleSheet.SetActive(false);
|
||||
untanglePuzzleSheet.SetActive(false);
|
||||
minesPuzzleSheet.SetActive(true);
|
||||
|
||||
minesControlScript.GridSizeX = gridSize;
|
||||
@ -146,6 +163,7 @@ public class TabletScript : MonoBehaviour
|
||||
mainMenuSheet.SetActive(false);
|
||||
minesPuzzleSheet.SetActive(false);
|
||||
simonSaysPuzzleSheet.SetActive(false);
|
||||
untanglePuzzleSheet.SetActive(false);
|
||||
|
||||
StartCoroutine(WaitForPuzzleCompletionWord());
|
||||
}
|
||||
@ -171,6 +189,7 @@ public class TabletScript : MonoBehaviour
|
||||
mainMenuSheet.SetActive(false);
|
||||
minesPuzzleSheet.SetActive(false);
|
||||
wordPuzzleSheet.SetActive(false);
|
||||
untanglePuzzleSheet.SetActive(false);
|
||||
|
||||
StartCoroutine(WaitForPuzzleCompletionSimonSays());
|
||||
}
|
||||
@ -186,6 +205,30 @@ public class TabletScript : MonoBehaviour
|
||||
SetScreen(TabletScreen.MainMenu);
|
||||
}
|
||||
|
||||
public void SetScreenUntangle(int pointCount)
|
||||
{
|
||||
untanglePuzzleSheet.SetActive(true);
|
||||
untangleGameManager.pointCount = pointCount;
|
||||
untangleGameManager.StartGame();
|
||||
mainMenuSheet.SetActive(false);
|
||||
minesPuzzleSheet.SetActive(false);
|
||||
wordPuzzleSheet.SetActive(false);
|
||||
simonSaysPuzzleSheet.SetActive(false);
|
||||
|
||||
StartCoroutine(WaitForPuzzleCompletionUntangle());
|
||||
}
|
||||
|
||||
private IEnumerator WaitForPuzzleCompletionUntangle()
|
||||
{
|
||||
yield return new WaitUntil(() => untangleGameManager.gameState == UGameState.Win);
|
||||
|
||||
yield return new WaitForSeconds(1.0f);
|
||||
|
||||
untangleGameManager.gameState = UGameState.Uninitialized; // reset the game state to default state
|
||||
gameState = PuzzleGameState.Win;
|
||||
SetScreen(TabletScreen.MainMenu);
|
||||
}
|
||||
|
||||
public void SetGameState(PuzzleGameState state)
|
||||
{
|
||||
gameState = state;
|
||||
|
@ -23,6 +23,12 @@ EditorBuildSettings:
|
||||
- enabled: 1
|
||||
path: Assets/Scenes/level2.unity
|
||||
guid: 56f5b5e79d78ae45ca21a3db75b51391
|
||||
- enabled: 1
|
||||
path: Assets/Scenes/level3_A.unity
|
||||
guid: 0f6599ab9c095e8c5b89236d20a0ff45
|
||||
- enabled: 1
|
||||
path: Assets/Scenes/level5.unity
|
||||
guid: 1e9103ecf3cab7c85ab78b5bf899fecc
|
||||
m_configObjects:
|
||||
com.unity.input.settings.actions: {fileID: -944628639613478452, guid: 052faaac586de48259a63d0c4782560b, type: 3}
|
||||
m_UseUCBPForAssetBundles: 0
|
||||
|
Loading…
Reference in New Issue
Block a user