├── .gitattributes
├── .gitignore
├── Assets
├── Demigiant.meta
├── Demigiant
│ ├── DOTween.meta
│ └── DOTween
│ │ ├── DOTween.XML
│ │ ├── DOTween.XML.meta
│ │ ├── DOTween.dll
│ │ ├── DOTween.dll.meta
│ │ ├── Editor.meta
│ │ ├── Editor
│ │ ├── DOTweenEditor.XML
│ │ ├── DOTweenEditor.XML.meta
│ │ ├── DOTweenEditor.dll
│ │ ├── DOTweenEditor.dll.meta
│ │ ├── Imgs.meta
│ │ └── Imgs
│ │ │ ├── DOTweenIcon.png
│ │ │ ├── DOTweenIcon.png.meta
│ │ │ ├── Footer.png
│ │ │ ├── Footer.png.meta
│ │ │ ├── Footer_dark.png
│ │ │ ├── Footer_dark.png.meta
│ │ │ ├── Header.jpg
│ │ │ └── Header.jpg.meta
│ │ ├── Modules.meta
│ │ ├── Modules
│ │ ├── DOTweenModuleAudio.cs
│ │ ├── DOTweenModuleAudio.cs.meta
│ │ ├── DOTweenModulePhysics.cs
│ │ ├── DOTweenModulePhysics.cs.meta
│ │ ├── DOTweenModulePhysics2D.cs
│ │ ├── DOTweenModulePhysics2D.cs.meta
│ │ ├── DOTweenModuleSprite.cs
│ │ ├── DOTweenModuleSprite.cs.meta
│ │ ├── DOTweenModuleUI.cs
│ │ ├── DOTweenModuleUI.cs.meta
│ │ ├── DOTweenModuleUnityVersion.cs
│ │ ├── DOTweenModuleUnityVersion.cs.meta
│ │ ├── DOTweenModuleUtils.cs
│ │ └── DOTweenModuleUtils.cs.meta
│ │ ├── readme.txt
│ │ └── readme.txt.meta
├── Game.unity
├── Game.unity.meta
├── Resource.meta
├── Resource
│ ├── 2048
│ │ ├── board.png
│ │ ├── board.png.meta
│ │ ├── number-board.png
│ │ ├── number-board.png.meta
│ │ ├── number-empty.png
│ │ └── number-empty.png.meta
│ ├── 2048.meta
│ ├── Prefab.meta
│ └── Prefab
│ │ ├── EmptyNode.prefab
│ │ ├── EmptyNode.prefab.meta
│ │ ├── RealNode.prefab
│ │ └── RealNode.prefab.meta
├── Resources.meta
├── Resources
│ ├── DOTweenSettings.asset
│ └── DOTweenSettings.asset.meta
├── Scripts.meta
├── Scripts
│ ├── Board.cs
│ ├── Board.cs.meta
│ ├── Node.cs
│ ├── Node.cs.meta
│ ├── NodeObject.cs
│ └── NodeObject.cs.meta
└── TextMesh Pro.meta
├── LICENSE
├── Packages
└── manifest.json
├── ProjectSettings
├── AudioManager.asset
├── ClusterInputManager.asset
├── DynamicsManager.asset
├── EditorBuildSettings.asset
├── EditorSettings.asset
├── GraphicsSettings.asset
├── InputManager.asset
├── NavMeshAreas.asset
├── NetworkManager.asset
├── Physics2DSettings.asset
├── PresetManager.asset
├── ProjectSettings.asset
├── ProjectVersion.txt
├── QualitySettings.asset
├── TagManager.asset
├── TimeManager.asset
├── UnityConnectSettings.asset
├── VFXManager.asset
└── XRSettings.asset
├── README.md
└── app.gif
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /[Aa]ssets/TriggerEditor/[Ll]udiq
2 | /[Ll]ibrary/
3 | /[Tt]emp/
4 | /[Oo]bj/
5 | /[Bb]uild/
6 | /[Bb]uilds/
7 | /[Ll]ogs/
8 | /[Mm]emoryCaptures/
9 |
10 | # Never ignore Asset meta data
11 | !/[Aa]ssets/**/*.meta
12 |
13 | # Uncomment this line if you wish to ignore the asset store tools plugin
14 | # /[Aa]ssets/AssetStoreTools*
15 |
16 |
17 | # TextMesh Pro files
18 | [Aa]ssets/TextMesh*Pro/
19 |
20 | # Autogenerated Jetbrains Rider plugin
21 | [Aa]ssets/Plugins/Editor/JetBrains*
22 |
23 | # Visual Studio cache directory
24 | .vs/
25 |
26 | # Gradle cache directory
27 | .gradle/
28 |
29 | *.idea
30 | # Autogenerated VS/MD/Consulo solution and project files
31 | ExportedObj/
32 | .consulo/
33 | *.csproj
34 | *.unityproj
35 | *.sln
36 | *.suo
37 | *.tmp
38 | *.user
39 | *.userprefs
40 | *.pidb
41 | *.booproj
42 | *.svd
43 | *.pdb
44 | *.mdb
45 | *.opendb
46 | *.VC.db
47 |
48 | # Unity3D generated meta files
49 | *.pidb.meta
50 | *.pdb.meta
51 | *.mdb.meta
52 |
53 | # Unity3D generated file on crash reports
54 | sysinfo.txt
55 |
56 | # Builds
57 | *.apk
58 | *.unitypackage
59 |
60 | # Crashlytics generated file
61 | crashlytics-build.properties
62 |
63 |
64 |
--------------------------------------------------------------------------------
/Assets/Demigiant.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0b63151050ee1c94fb778329646e6b45
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9249140d5d6c9ad489658c9bbae35287
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/DOTween.XML.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 34192c5e0d14aee43a0e86cc4823268a
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/DOTween.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shlifedev/unity-2048/cc2a341026d88087af817363db6fa6de25f9c451/Assets/Demigiant/DOTween/DOTween.dll
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/DOTween.dll.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a811bde74b26b53498b4f6d872b09b6d
3 | PluginImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | iconMap: {}
7 | executionOrder: {}
8 | defineConstraints: []
9 | isPreloaded: 0
10 | isOverridable: 0
11 | isExplicitlyReferenced: 0
12 | validateReferences: 1
13 | platformData:
14 | - first:
15 | Any:
16 | second:
17 | enabled: 1
18 | settings: {}
19 | userData:
20 | assetBundleName:
21 | assetBundleVariant:
22 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b69a8116822548f4a9751ec4baa9eff3
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/DOTweenEditor.XML:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | DOTweenEditor
5 |
6 |
7 |
8 |
9 | Starts the update loop of tween in the editor. Has no effect during playMode.
10 |
11 | Eventual callback to call after every update
12 |
13 |
14 |
15 | Stops the update loop and clears the onPreviewUpdated callback.
16 |
17 | If TRUE also resets the tweened objects to their original state
18 |
19 |
20 |
21 | Readies the tween for editor preview by setting its UpdateType to Manual plus eventual extra settings.
22 |
23 | The tween to ready
24 | If TRUE (recommended) removes all callbacks (OnComplete/Rewind/etc)
25 | If TRUE prevents the tween from being auto-killed at completion
26 | If TRUE starts playing the tween immediately
27 |
28 |
29 |
30 | Checks that the given editor texture use the correct import settings,
31 | and applies them if they're incorrect.
32 |
33 |
34 |
35 |
36 | Returns TRUE if setup is required
37 |
38 |
39 |
40 |
41 | Returns TRUE if the file/directory at the given path exists.
42 |
43 | Path, relative to Unity's project folder
44 |
45 |
46 |
47 |
48 | Converts the given project-relative path to a full path,
49 | with backward (\) slashes).
50 |
51 |
52 |
53 |
54 | Converts the given full path to a path usable with AssetDatabase methods
55 | (relative to Unity's project folder, and with the correct Unity forward (/) slashes).
56 |
57 |
58 |
59 |
60 | Connects to a asset.
61 | If the asset already exists at the given path, loads it and returns it.
62 | Otherwise, either returns NULL or automatically creates it before loading and returning it
63 | (depending on the given parameters).
64 |
65 | Asset type
66 | File path (relative to Unity's project folder)
67 | If TRUE and the requested asset doesn't exist, forces its creation
68 |
69 |
70 |
71 | Full path for the given loaded assembly, assembly file included
72 |
73 |
74 |
75 |
76 | Adds the given global define if it's not already present
77 |
78 |
79 |
80 |
81 | Removes the given global define if it's present
82 |
83 |
84 |
85 |
86 | Returns TRUE if the given global define is present in all the
87 | or only in the given , depending on passed parameters.
88 |
89 |
90 | to use. Leave NULL to check in all of them.
91 |
92 |
93 |
94 | Not used as menu item anymore, but as a utiity function
95 |
96 |
97 |
98 |
99 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2e2c6224d345d9249acfa6e8ef40bb2d
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shlifedev/unity-2048/cc2a341026d88087af817363db6fa6de25f9c451/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 45d5034162d6cf04dbe46da84fc7d074
3 | PluginImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | iconMap: {}
7 | executionOrder: {}
8 | defineConstraints: []
9 | isPreloaded: 0
10 | isOverridable: 0
11 | isExplicitlyReferenced: 0
12 | validateReferences: 1
13 | platformData:
14 | - first:
15 | Any:
16 | second:
17 | enabled: 1
18 | settings: {}
19 | userData:
20 | assetBundleName:
21 | assetBundleVariant:
22 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/Imgs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 35b5fbcc5af7ef547a46285966c96d1b
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shlifedev/unity-2048/cc2a341026d88087af817363db6fa6de25f9c451/Assets/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8da095e39e9b4df488dfd436f81116d6
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 10
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 1
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: -3
31 | maxTextureSize: 128
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: 1
35 | aniso: 1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 0
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 2
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 3
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 128
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 0
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | forceMaximumCompressionQuality_BC6H_BC7: 0
73 | spriteSheet:
74 | serializedVersion: 2
75 | sprites: []
76 | outline: []
77 | physicsShape: []
78 | bones: []
79 | spriteID:
80 | internalID: 0
81 | vertices: []
82 | indices:
83 | edges: []
84 | weights: []
85 | secondaryTextures: []
86 | spritePackingTag:
87 | pSDRemoveMatte: 0
88 | pSDShowRemoveMatteOption: 0
89 | userData:
90 | assetBundleName:
91 | assetBundleVariant:
92 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/Imgs/Footer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shlifedev/unity-2048/cc2a341026d88087af817363db6fa6de25f9c451/Assets/Demigiant/DOTween/Editor/Imgs/Footer.png
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/Imgs/Footer.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7051dba417b3d53409f2918f1ea4938d
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 10
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 1
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: -3
31 | maxTextureSize: 256
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: 1
35 | aniso: 1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 0
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 2
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 3
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 256
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 0
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | forceMaximumCompressionQuality_BC6H_BC7: 0
73 | spriteSheet:
74 | serializedVersion: 2
75 | sprites: []
76 | outline: []
77 | physicsShape: []
78 | bones: []
79 | spriteID:
80 | internalID: 0
81 | vertices: []
82 | indices:
83 | edges: []
84 | weights: []
85 | secondaryTextures: []
86 | spritePackingTag:
87 | pSDRemoveMatte: 0
88 | pSDShowRemoveMatteOption: 0
89 | userData:
90 | assetBundleName:
91 | assetBundleVariant:
92 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/Imgs/Footer_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shlifedev/unity-2048/cc2a341026d88087af817363db6fa6de25f9c451/Assets/Demigiant/DOTween/Editor/Imgs/Footer_dark.png
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 519694efe2bb2914788b151fbd8c01f4
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 10
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: -1
31 | maxTextureSize: 1024
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: 1
35 | aniso: 1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 0
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 2
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 3
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 256
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 1
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | forceMaximumCompressionQuality_BC6H_BC7: 0
73 | spriteSheet:
74 | serializedVersion: 2
75 | sprites: []
76 | outline: []
77 | physicsShape: []
78 | bones: []
79 | spriteID:
80 | internalID: 0
81 | vertices: []
82 | indices:
83 | edges: []
84 | weights: []
85 | secondaryTextures: []
86 | spritePackingTag:
87 | pSDRemoveMatte: 0
88 | pSDShowRemoveMatteOption: 0
89 | userData:
90 | assetBundleName:
91 | assetBundleVariant:
92 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/Imgs/Header.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shlifedev/unity-2048/cc2a341026d88087af817363db6fa6de25f9c451/Assets/Demigiant/DOTween/Editor/Imgs/Header.jpg
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 78a59ca99f8987941adb61f9e14a06a7
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 10
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 1
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: -3
31 | maxTextureSize: 512
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: 1
35 | aniso: 1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 0
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 2
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 3
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 512
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 0
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | forceMaximumCompressionQuality_BC6H_BC7: 0
73 | spriteSheet:
74 | serializedVersion: 2
75 | sprites: []
76 | outline: []
77 | physicsShape: []
78 | bones: []
79 | spriteID:
80 | internalID: 0
81 | vertices: []
82 | indices:
83 | edges: []
84 | weights: []
85 | secondaryTextures: []
86 | spritePackingTag:
87 | pSDRemoveMatte: 0
88 | pSDShowRemoveMatteOption: 0
89 | userData:
90 | assetBundleName:
91 | assetBundleVariant:
92 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Modules.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d2b527e7ea3bef74999e9a7249e3c423
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs:
--------------------------------------------------------------------------------
1 | // Author: Daniele Giardini - http://www.demigiant.com
2 | // Created: 2018/07/13
3 |
4 | #if true // MODULE_MARKER
5 | using System;
6 | using DG.Tweening.Core;
7 | using DG.Tweening.Plugins.Options;
8 | using UnityEngine;
9 | #if UNITY_5 || UNITY_2017_1_OR_NEWER
10 | using UnityEngine.Audio; // Required for AudioMixer
11 | #endif
12 |
13 | #pragma warning disable 1591
14 | namespace DG.Tweening
15 | {
16 | public static class DOTweenModuleAudio
17 | {
18 | #region Shortcuts
19 |
20 | #region Audio
21 |
22 | /// Tweens an AudioSource's volume to the given value.
23 | /// Also stores the AudioSource as the tween's target so it can be used for filtered operations
24 | /// The end value to reach (0 to 1)The duration of the tween
25 | public static TweenerCore DOFade(this AudioSource target, float endValue, float duration)
26 | {
27 | if (endValue < 0) endValue = 0;
28 | else if (endValue > 1) endValue = 1;
29 | TweenerCore t = DOTween.To(() => target.volume, x => target.volume = x, endValue, duration);
30 | t.SetTarget(target);
31 | return t;
32 | }
33 |
34 | /// Tweens an AudioSource's pitch to the given value.
35 | /// Also stores the AudioSource as the tween's target so it can be used for filtered operations
36 | /// The end value to reachThe duration of the tween
37 | public static TweenerCore DOPitch(this AudioSource target, float endValue, float duration)
38 | {
39 | TweenerCore t = DOTween.To(() => target.pitch, x => target.pitch = x, endValue, duration);
40 | t.SetTarget(target);
41 | return t;
42 | }
43 |
44 | #endregion
45 |
46 | #if UNITY_5 || UNITY_2017_1_OR_NEWER
47 | #region AudioMixer (Unity 5 or Newer)
48 |
49 | /// Tweens an AudioMixer's exposed float to the given value.
50 | /// Also stores the AudioMixer as the tween's target so it can be used for filtered operations.
51 | /// Note that you need to manually expose a float in an AudioMixerGroup in order to be able to tween it from an AudioMixer.
52 | /// Name given to the exposed float to set
53 | /// The end value to reachThe duration of the tween
54 | public static TweenerCore DOSetFloat(this AudioMixer target, string floatName, float endValue, float duration)
55 | {
56 | TweenerCore t = DOTween.To(()=> {
57 | float currVal;
58 | target.GetFloat(floatName, out currVal);
59 | return currVal;
60 | }, x=> target.SetFloat(floatName, x), endValue, duration);
61 | t.SetTarget(target);
62 | return t;
63 | }
64 |
65 | #region Operation Shortcuts
66 |
67 | ///
68 | /// Completes all tweens that have this target as a reference
69 | /// (meaning tweens that were started from this target, or that had this target added as an Id)
70 | /// and returns the total number of tweens completed
71 | /// (meaning the tweens that don't have infinite loops and were not already complete)
72 | ///
73 | /// For Sequences only: if TRUE also internal Sequence callbacks will be fired,
74 | /// otherwise they will be ignored
75 | public static int DOComplete(this AudioMixer target, bool withCallbacks = false)
76 | {
77 | return DOTween.Complete(target, withCallbacks);
78 | }
79 |
80 | ///
81 | /// Kills all tweens that have this target as a reference
82 | /// (meaning tweens that were started from this target, or that had this target added as an Id)
83 | /// and returns the total number of tweens killed.
84 | ///
85 | /// If TRUE completes the tween before killing it
86 | public static int DOKill(this AudioMixer target, bool complete = false)
87 | {
88 | return DOTween.Kill(target, complete);
89 | }
90 |
91 | ///
92 | /// Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference
93 | /// (meaning tweens that were started from this target, or that had this target added as an Id)
94 | /// and returns the total number of tweens flipped.
95 | ///
96 | public static int DOFlip(this AudioMixer target)
97 | {
98 | return DOTween.Flip(target);
99 | }
100 |
101 | ///
102 | /// Sends to the given position all tweens that have this target as a reference
103 | /// (meaning tweens that were started from this target, or that had this target added as an Id)
104 | /// and returns the total number of tweens involved.
105 | ///
106 | /// Time position to reach
107 | /// (if higher than the whole tween duration the tween will simply reach its end)
108 | /// If TRUE will play the tween after reaching the given position, otherwise it will pause it
109 | public static int DOGoto(this AudioMixer target, float to, bool andPlay = false)
110 | {
111 | return DOTween.Goto(target, to, andPlay);
112 | }
113 |
114 | ///
115 | /// Pauses all tweens that have this target as a reference
116 | /// (meaning tweens that were started from this target, or that had this target added as an Id)
117 | /// and returns the total number of tweens paused.
118 | ///
119 | public static int DOPause(this AudioMixer target)
120 | {
121 | return DOTween.Pause(target);
122 | }
123 |
124 | ///
125 | /// Plays all tweens that have this target as a reference
126 | /// (meaning tweens that were started from this target, or that had this target added as an Id)
127 | /// and returns the total number of tweens played.
128 | ///
129 | public static int DOPlay(this AudioMixer target)
130 | {
131 | return DOTween.Play(target);
132 | }
133 |
134 | ///
135 | /// Plays backwards all tweens that have this target as a reference
136 | /// (meaning tweens that were started from this target, or that had this target added as an Id)
137 | /// and returns the total number of tweens played.
138 | ///
139 | public static int DOPlayBackwards(this AudioMixer target)
140 | {
141 | return DOTween.PlayBackwards(target);
142 | }
143 |
144 | ///
145 | /// Plays forward all tweens that have this target as a reference
146 | /// (meaning tweens that were started from this target, or that had this target added as an Id)
147 | /// and returns the total number of tweens played.
148 | ///
149 | public static int DOPlayForward(this AudioMixer target)
150 | {
151 | return DOTween.PlayForward(target);
152 | }
153 |
154 | ///
155 | /// Restarts all tweens that have this target as a reference
156 | /// (meaning tweens that were started from this target, or that had this target added as an Id)
157 | /// and returns the total number of tweens restarted.
158 | ///
159 | public static int DORestart(this AudioMixer target)
160 | {
161 | return DOTween.Restart(target);
162 | }
163 |
164 | ///
165 | /// Rewinds all tweens that have this target as a reference
166 | /// (meaning tweens that were started from this target, or that had this target added as an Id)
167 | /// and returns the total number of tweens rewinded.
168 | ///
169 | public static int DORewind(this AudioMixer target)
170 | {
171 | return DOTween.Rewind(target);
172 | }
173 |
174 | ///
175 | /// Smoothly rewinds all tweens that have this target as a reference
176 | /// (meaning tweens that were started from this target, or that had this target added as an Id)
177 | /// and returns the total number of tweens rewinded.
178 | ///
179 | public static int DOSmoothRewind(this AudioMixer target)
180 | {
181 | return DOTween.SmoothRewind(target);
182 | }
183 |
184 | ///
185 | /// Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference
186 | /// (meaning tweens that were started from this target, or that had this target added as an Id)
187 | /// and returns the total number of tweens involved.
188 | ///
189 | public static int DOTogglePause(this AudioMixer target)
190 | {
191 | return DOTween.TogglePause(target);
192 | }
193 |
194 | #endregion
195 |
196 | #endregion
197 | #endif
198 |
199 | #endregion
200 | }
201 | }
202 | #endif
203 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b766d08851589514b97afb23c6f30a70
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs:
--------------------------------------------------------------------------------
1 | // Author: Daniele Giardini - http://www.demigiant.com
2 | // Created: 2018/07/13
3 |
4 | #if true // MODULE_MARKER
5 | using System;
6 | using DG.Tweening.Core;
7 | using DG.Tweening.Core.Enums;
8 | using DG.Tweening.Plugins;
9 | using DG.Tweening.Plugins.Core.PathCore;
10 | using DG.Tweening.Plugins.Options;
11 | using UnityEngine;
12 |
13 | #pragma warning disable 1591
14 | namespace DG.Tweening
15 | {
16 | public static class DOTweenModulePhysics
17 | {
18 | #region Shortcuts
19 |
20 | #region Rigidbody
21 |
22 | /// Tweens a Rigidbody's position to the given value.
23 | /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
24 | /// The end value to reachThe duration of the tween
25 | /// If TRUE the tween will smoothly snap all values to integers
26 | public static TweenerCore DOMove(this Rigidbody target, Vector3 endValue, float duration, bool snapping = false)
27 | {
28 | TweenerCore t = DOTween.To(() => target.position, target.MovePosition, endValue, duration);
29 | t.SetOptions(snapping).SetTarget(target);
30 | return t;
31 | }
32 |
33 | /// Tweens a Rigidbody's X position to the given value.
34 | /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
35 | /// The end value to reachThe duration of the tween
36 | /// If TRUE the tween will smoothly snap all values to integers
37 | public static TweenerCore DOMoveX(this Rigidbody target, float endValue, float duration, bool snapping = false)
38 | {
39 | TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue, 0, 0), duration);
40 | t.SetOptions(AxisConstraint.X, snapping).SetTarget(target);
41 | return t;
42 | }
43 |
44 | /// Tweens a Rigidbody's Y position to the given value.
45 | /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
46 | /// The end value to reachThe duration of the tween
47 | /// If TRUE the tween will smoothly snap all values to integers
48 | public static TweenerCore DOMoveY(this Rigidbody target, float endValue, float duration, bool snapping = false)
49 | {
50 | TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, endValue, 0), duration);
51 | t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target);
52 | return t;
53 | }
54 |
55 | /// Tweens a Rigidbody's Z position to the given value.
56 | /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
57 | /// The end value to reachThe duration of the tween
58 | /// If TRUE the tween will smoothly snap all values to integers
59 | public static TweenerCore DOMoveZ(this Rigidbody target, float endValue, float duration, bool snapping = false)
60 | {
61 | TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue), duration);
62 | t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target);
63 | return t;
64 | }
65 |
66 | /// Tweens a Rigidbody's rotation to the given value.
67 | /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
68 | /// The end value to reachThe duration of the tween
69 | /// Rotation mode
70 | public static TweenerCore DORotate(this Rigidbody target, Vector3 endValue, float duration, RotateMode mode = RotateMode.Fast)
71 | {
72 | TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration);
73 | t.SetTarget(target);
74 | t.plugOptions.rotateMode = mode;
75 | return t;
76 | }
77 |
78 | /// Tweens a Rigidbody's rotation so that it will look towards the given position.
79 | /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
80 | /// The position to look atThe duration of the tween
81 | /// Eventual axis constraint for the rotation
82 | /// The vector that defines in which direction up is (default: Vector3.up)
83 | public static TweenerCore DOLookAt(this Rigidbody target, Vector3 towards, float duration, AxisConstraint axisConstraint = AxisConstraint.None, Vector3? up = null)
84 | {
85 | TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, towards, duration)
86 | .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetLookAt);
87 | t.plugOptions.axisConstraint = axisConstraint;
88 | t.plugOptions.up = (up == null) ? Vector3.up : (Vector3)up;
89 | return t;
90 | }
91 |
92 | #region Special
93 |
94 | /// Tweens a Rigidbody's position to the given value, while also applying a jump effect along the Y axis.
95 | /// Returns a Sequence instead of a Tweener.
96 | /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations
97 | /// The end value to reach
98 | /// Power of the jump (the max height of the jump is represented by this plus the final Y offset)
99 | /// Total number of jumps
100 | /// The duration of the tween
101 | /// If TRUE the tween will smoothly snap all values to integers
102 | public static Sequence DOJump(this Rigidbody target, Vector3 endValue, float jumpPower, int numJumps, float duration, bool snapping = false)
103 | {
104 | if (numJumps < 1) numJumps = 1;
105 | float startPosY = 0;
106 | float offsetY = -1;
107 | bool offsetYSet = false;
108 | Sequence s = DOTween.Sequence();
109 | Tween yTween = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, jumpPower, 0), duration / (numJumps * 2))
110 | .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative()
111 | .SetLoops(numJumps * 2, LoopType.Yoyo)
112 | .OnStart(() => startPosY = target.position.y);
113 | s.Append(DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue.x, 0, 0), duration)
114 | .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
115 | ).Join(DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue.z), duration)
116 | .SetOptions(AxisConstraint.Z, snapping).SetEase(Ease.Linear)
117 | ).Join(yTween)
118 | .SetTarget(target).SetEase(DOTween.defaultEaseType);
119 | yTween.OnUpdate(() => {
120 | if (!offsetYSet) {
121 | offsetYSet = true;
122 | offsetY = s.isRelative ? endValue.y : endValue.y - startPosY;
123 | }
124 | Vector3 pos = target.position;
125 | pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad);
126 | target.MovePosition(pos);
127 | });
128 | return s;
129 | }
130 |
131 | /// Tweens a Rigidbody's position through the given path waypoints, using the chosen path algorithm.
132 | /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations.
133 | /// NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened.
134 | /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
135 | /// If you plan to publish there you should use a regular transform.DOPath.
136 | /// The waypoints to go through
137 | /// The duration of the tween
138 | /// The type of path: Linear (straight path) or CatmullRom (curved CatmullRom path)
139 | /// The path mode: 3D, side-scroller 2D, top-down 2D
140 | /// The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive.
141 | /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints
142 | /// The color of the path (shown when gizmos are active in the Play panel and the tween is running)
143 | public static TweenerCore DOPath(
144 | this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear,
145 | PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
146 | )
147 | {
148 | if (resolution < 1) resolution = 1;
149 | TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, new Path(pathType, path, resolution, gizmoColor), duration)
150 | .SetTarget(target).SetUpdate(UpdateType.Fixed);
151 |
152 | t.plugOptions.isRigidbody = true;
153 | t.plugOptions.mode = pathMode;
154 | return t;
155 | }
156 | /// Tweens a Rigidbody's localPosition through the given path waypoints, using the chosen path algorithm.
157 | /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations
158 | /// NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened.
159 | /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
160 | /// If you plan to publish there you should use a regular transform.DOLocalPath.
161 | /// The waypoint to go through
162 | /// The duration of the tween
163 | /// The type of path: Linear (straight path) or CatmullRom (curved CatmullRom path)
164 | /// The path mode: 3D, side-scroller 2D, top-down 2D
165 | /// The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive.
166 | /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints
167 | /// The color of the path (shown when gizmos are active in the Play panel and the tween is running)
168 | public static TweenerCore DOLocalPath(
169 | this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear,
170 | PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
171 | )
172 | {
173 | if (resolution < 1) resolution = 1;
174 | Transform trans = target.transform;
175 | TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), new Path(pathType, path, resolution, gizmoColor), duration)
176 | .SetTarget(target).SetUpdate(UpdateType.Fixed);
177 |
178 | t.plugOptions.isRigidbody = true;
179 | t.plugOptions.mode = pathMode;
180 | t.plugOptions.useLocalPosition = true;
181 | return t;
182 | }
183 | // Used by path editor when creating the actual tween, so it can pass a pre-compiled path
184 | internal static TweenerCore DOPath(
185 | this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D
186 | )
187 | {
188 | TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, path, duration)
189 | .SetTarget(target);
190 |
191 | t.plugOptions.isRigidbody = true;
192 | t.plugOptions.mode = pathMode;
193 | return t;
194 | }
195 | internal static TweenerCore DOLocalPath(
196 | this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D
197 | )
198 | {
199 | Transform trans = target.transform;
200 | TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), path, duration)
201 | .SetTarget(target);
202 |
203 | t.plugOptions.isRigidbody = true;
204 | t.plugOptions.mode = pathMode;
205 | t.plugOptions.useLocalPosition = true;
206 | return t;
207 | }
208 |
209 | #endregion
210 |
211 | #endregion
212 |
213 | #endregion
214 | }
215 | }
216 | #endif
217 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: dae9aa560b4242648a3affa2bfabc365
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs:
--------------------------------------------------------------------------------
1 | // Author: Daniele Giardini - http://www.demigiant.com
2 | // Created: 2018/07/13
3 |
4 | #if true && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER
5 | using System;
6 | using DG.Tweening.Core;
7 | using DG.Tweening.Plugins.Options;
8 | using UnityEngine;
9 |
10 | #pragma warning disable 1591
11 | namespace DG.Tweening
12 | {
13 | public static class DOTweenModulePhysics2D
14 | {
15 | #region Shortcuts
16 |
17 | #region Rigidbody2D Shortcuts
18 |
19 | /// Tweens a Rigidbody2D's position to the given value.
20 | /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
21 | /// The end value to reachThe duration of the tween
22 | /// If TRUE the tween will smoothly snap all values to integers
23 | public static TweenerCore DOMove(this Rigidbody2D target, Vector2 endValue, float duration, bool snapping = false)
24 | {
25 | TweenerCore t = DOTween.To(() => target.position, target.MovePosition, endValue, duration);
26 | t.SetOptions(snapping).SetTarget(target);
27 | return t;
28 | }
29 |
30 | /// Tweens a Rigidbody2D's X position to the given value.
31 | /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
32 | /// The end value to reachThe duration of the tween
33 | /// If TRUE the tween will smoothly snap all values to integers
34 | public static TweenerCore DOMoveX(this Rigidbody2D target, float endValue, float duration, bool snapping = false)
35 | {
36 | TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector2(endValue, 0), duration);
37 | t.SetOptions(AxisConstraint.X, snapping).SetTarget(target);
38 | return t;
39 | }
40 |
41 | /// Tweens a Rigidbody2D's Y position to the given value.
42 | /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
43 | /// The end value to reachThe duration of the tween
44 | /// If TRUE the tween will smoothly snap all values to integers
45 | public static TweenerCore DOMoveY(this Rigidbody2D target, float endValue, float duration, bool snapping = false)
46 | {
47 | TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector2(0, endValue), duration);
48 | t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target);
49 | return t;
50 | }
51 |
52 | /// Tweens a Rigidbody2D's rotation to the given value.
53 | /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
54 | /// The end value to reachThe duration of the tween
55 | public static TweenerCore DORotate(this Rigidbody2D target, float endValue, float duration)
56 | {
57 | TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration);
58 | t.SetTarget(target);
59 | return t;
60 | }
61 |
62 | #region Special
63 |
64 | /// Tweens a Rigidbody2D's position to the given value, while also applying a jump effect along the Y axis.
65 | /// Returns a Sequence instead of a Tweener.
66 | /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations.
67 | /// IMPORTANT: a rigidbody2D can't be animated in a jump arc using MovePosition, so the tween will directly set the position
68 | /// The end value to reach
69 | /// Power of the jump (the max height of the jump is represented by this plus the final Y offset)
70 | /// Total number of jumps
71 | /// The duration of the tween
72 | /// If TRUE the tween will smoothly snap all values to integers
73 | public static Sequence DOJump(this Rigidbody2D target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false)
74 | {
75 | if (numJumps < 1) numJumps = 1;
76 | float startPosY = 0;
77 | float offsetY = -1;
78 | bool offsetYSet = false;
79 | Sequence s = DOTween.Sequence();
80 | Tween yTween = DOTween.To(() => target.position, x => target.position = x, new Vector2(0, jumpPower), duration / (numJumps * 2))
81 | .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative()
82 | .SetLoops(numJumps * 2, LoopType.Yoyo)
83 | .OnStart(() => startPosY = target.position.y);
84 | s.Append(DOTween.To(() => target.position, x => target.position = x, new Vector2(endValue.x, 0), duration)
85 | .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
86 | ).Join(yTween)
87 | .SetTarget(target).SetEase(DOTween.defaultEaseType);
88 | yTween.OnUpdate(() => {
89 | if (!offsetYSet) {
90 | offsetYSet = true;
91 | offsetY = s.isRelative ? endValue.y : endValue.y - startPosY;
92 | }
93 | Vector3 pos = target.position;
94 | pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad);
95 | target.MovePosition(pos);
96 | });
97 | return s;
98 | }
99 |
100 | #endregion
101 |
102 | #endregion
103 |
104 | #endregion
105 | }
106 | }
107 | #endif
108 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 230fe34542e175245ba74b4659dae700
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs:
--------------------------------------------------------------------------------
1 | // Author: Daniele Giardini - http://www.demigiant.com
2 | // Created: 2018/07/13
3 |
4 | #if true && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER
5 | using System;
6 | using UnityEngine;
7 | using DG.Tweening.Core;
8 | using DG.Tweening.Plugins.Options;
9 |
10 | #pragma warning disable 1591
11 | namespace DG.Tweening
12 | {
13 | public static class DOTweenModuleSprite
14 | {
15 | #region Shortcuts
16 |
17 | #region SpriteRenderer
18 |
19 | /// Tweens a SpriteRenderer's color to the given value.
20 | /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations
21 | /// The end value to reachThe duration of the tween
22 | public static TweenerCore DOColor(this SpriteRenderer target, Color endValue, float duration)
23 | {
24 | TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration);
25 | t.SetTarget(target);
26 | return t;
27 | }
28 |
29 | /// Tweens a Material's alpha color to the given value.
30 | /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations
31 | /// The end value to reachThe duration of the tween
32 | public static TweenerCore DOFade(this SpriteRenderer target, float endValue, float duration)
33 | {
34 | TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration);
35 | t.SetTarget(target);
36 | return t;
37 | }
38 |
39 | /// Tweens a SpriteRenderer's color using the given gradient
40 | /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
41 | /// Also stores the image as the tween's target so it can be used for filtered operations
42 | /// The gradient to useThe duration of the tween
43 | public static Sequence DOGradientColor(this SpriteRenderer target, Gradient gradient, float duration)
44 | {
45 | Sequence s = DOTween.Sequence();
46 | GradientColorKey[] colors = gradient.colorKeys;
47 | int len = colors.Length;
48 | for (int i = 0; i < len; ++i) {
49 | GradientColorKey c = colors[i];
50 | if (i == 0 && c.time <= 0) {
51 | target.color = c.color;
52 | continue;
53 | }
54 | float colorDuration = i == len - 1
55 | ? duration - s.Duration(false) // Verifies that total duration is correct
56 | : duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
57 | s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
58 | }
59 | s.SetTarget(target);
60 | return s;
61 | }
62 |
63 | #endregion
64 |
65 | #region Blendables
66 |
67 | #region SpriteRenderer
68 |
69 | /// Tweens a SpriteRenderer's color to the given value,
70 | /// in a way that allows other DOBlendableColor tweens to work together on the same target,
71 | /// instead than fight each other as multiple DOColor would do.
72 | /// Also stores the SpriteRenderer as the tween's target so it can be used for filtered operations
73 | /// The value to tween toThe duration of the tween
74 | public static Tweener DOBlendableColor(this SpriteRenderer target, Color endValue, float duration)
75 | {
76 | endValue = endValue - target.color;
77 | Color to = new Color(0, 0, 0, 0);
78 | return DOTween.To(() => to, x => {
79 | Color diff = x - to;
80 | to = x;
81 | target.color += diff;
82 | }, endValue, duration)
83 | .Blendable().SetTarget(target);
84 | }
85 |
86 | #endregion
87 |
88 | #endregion
89 |
90 | #endregion
91 | }
92 | }
93 | #endif
94 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 188918ab119d93148aa0de59ccf5286b
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a060394c03331a64392db53a10e7f2d1
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs:
--------------------------------------------------------------------------------
1 | // Author: Daniele Giardini - http://www.demigiant.com
2 | // Created: 2018/07/13
3 |
4 | using System;
5 | using UnityEngine;
6 | using DG.Tweening.Core;
7 | using DG.Tweening.Plugins.Options;
8 |
9 | #pragma warning disable 1591
10 | namespace DG.Tweening
11 | {
12 | ///
13 | /// Shortcuts/functions that are not strictly related to specific Modules
14 | /// but are available only on some Unity versions
15 | ///
16 | public static class DOTweenModuleUnityVersion
17 | {
18 | #if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER
19 | #region Unity 4.3 or Newer
20 |
21 | #region Material
22 |
23 | /// Tweens a Material's color using the given gradient
24 | /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
25 | /// Also stores the image as the tween's target so it can be used for filtered operations
26 | /// The gradient to useThe duration of the tween
27 | public static Sequence DOGradientColor(this Material target, Gradient gradient, float duration)
28 | {
29 | Sequence s = DOTween.Sequence();
30 | GradientColorKey[] colors = gradient.colorKeys;
31 | int len = colors.Length;
32 | for (int i = 0; i < len; ++i) {
33 | GradientColorKey c = colors[i];
34 | if (i == 0 && c.time <= 0) {
35 | target.color = c.color;
36 | continue;
37 | }
38 | float colorDuration = i == len - 1
39 | ? duration - s.Duration(false) // Verifies that total duration is correct
40 | : duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
41 | s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
42 | }
43 | s.SetTarget(target);
44 | return s;
45 | }
46 | /// Tweens a Material's named color property using the given gradient
47 | /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
48 | /// Also stores the image as the tween's target so it can be used for filtered operations
49 | /// The gradient to use
50 | /// The name of the material property to tween (like _Tint or _SpecColor)
51 | /// The duration of the tween
52 | public static Sequence DOGradientColor(this Material target, Gradient gradient, string property, float duration)
53 | {
54 | Sequence s = DOTween.Sequence();
55 | GradientColorKey[] colors = gradient.colorKeys;
56 | int len = colors.Length;
57 | for (int i = 0; i < len; ++i) {
58 | GradientColorKey c = colors[i];
59 | if (i == 0 && c.time <= 0) {
60 | target.SetColor(property, c.color);
61 | continue;
62 | }
63 | float colorDuration = i == len - 1
64 | ? duration - s.Duration(false) // Verifies that total duration is correct
65 | : duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
66 | s.Append(target.DOColor(c.color, property, colorDuration).SetEase(Ease.Linear));
67 | }
68 | s.SetTarget(target);
69 | return s;
70 | }
71 |
72 | #endregion
73 |
74 | #endregion
75 | #endif
76 |
77 | #if UNITY_5_3_OR_NEWER || UNITY_2017_1_OR_NEWER
78 | #region Unity 5.3 or Newer
79 |
80 | #region CustomYieldInstructions
81 |
82 | ///
83 | /// Returns a that waits until the tween is killed or complete.
84 | /// It can be used inside a coroutine as a yield.
85 | /// Example usage:yield return myTween.WaitForCompletion(true);
86 | ///
87 | public static CustomYieldInstruction WaitForCompletion(this Tween t, bool returnCustomYieldInstruction)
88 | {
89 | if (!t.active) {
90 | if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
91 | return null;
92 | }
93 | return new DOTweenCYInstruction.WaitForCompletion(t);
94 | }
95 |
96 | ///
97 | /// Returns a that waits until the tween is killed or rewinded.
98 | /// It can be used inside a coroutine as a yield.
99 | /// Example usage:yield return myTween.WaitForRewind();
100 | ///
101 | public static CustomYieldInstruction WaitForRewind(this Tween t, bool returnCustomYieldInstruction)
102 | {
103 | if (!t.active) {
104 | if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
105 | return null;
106 | }
107 | return new DOTweenCYInstruction.WaitForRewind(t);
108 | }
109 |
110 | ///
111 | /// Returns a that waits until the tween is killed.
112 | /// It can be used inside a coroutine as a yield.
113 | /// Example usage:yield return myTween.WaitForKill();
114 | ///
115 | public static CustomYieldInstruction WaitForKill(this Tween t, bool returnCustomYieldInstruction)
116 | {
117 | if (!t.active) {
118 | if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
119 | return null;
120 | }
121 | return new DOTweenCYInstruction.WaitForKill(t);
122 | }
123 |
124 | ///
125 | /// Returns a that waits until the tween is killed or has gone through the given amount of loops.
126 | /// It can be used inside a coroutine as a yield.
127 | /// Example usage:yield return myTween.WaitForElapsedLoops(2);
128 | ///
129 | /// Elapsed loops to wait for
130 | public static CustomYieldInstruction WaitForElapsedLoops(this Tween t, int elapsedLoops, bool returnCustomYieldInstruction)
131 | {
132 | if (!t.active) {
133 | if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
134 | return null;
135 | }
136 | return new DOTweenCYInstruction.WaitForElapsedLoops(t, elapsedLoops);
137 | }
138 |
139 | ///
140 | /// Returns a that waits until the tween is killed or has reached the given position (loops included, delays excluded).
141 | /// It can be used inside a coroutine as a yield.
142 | /// Example usage:yield return myTween.WaitForPosition(2.5f);
143 | ///
144 | /// Position (loops included, delays excluded) to wait for
145 | public static CustomYieldInstruction WaitForPosition(this Tween t, float position, bool returnCustomYieldInstruction)
146 | {
147 | if (!t.active) {
148 | if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
149 | return null;
150 | }
151 | return new DOTweenCYInstruction.WaitForPosition(t, position);
152 | }
153 |
154 | ///
155 | /// Returns a that waits until the tween is killed or started
156 | /// (meaning when the tween is set in a playing state the first time, after any eventual delay).
157 | /// It can be used inside a coroutine as a yield.
158 | /// Example usage:yield return myTween.WaitForStart();
159 | ///
160 | public static CustomYieldInstruction WaitForStart(this Tween t, bool returnCustomYieldInstruction)
161 | {
162 | if (!t.active) {
163 | if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
164 | return null;
165 | }
166 | return new DOTweenCYInstruction.WaitForStart(t);
167 | }
168 |
169 | #endregion
170 |
171 | #endregion
172 | #endif
173 |
174 | #if UNITY_2018_1_OR_NEWER
175 | #region Unity 2018.1 or Newer
176 |
177 | #region Material
178 |
179 | /// Tweens a Material's named texture offset property with the given ID to the given value.
180 | /// Also stores the material as the tween's target so it can be used for filtered operations
181 | /// The end value to reach
182 | /// The ID of the material property to tween (also called nameID in Unity's manual)
183 | /// The duration of the tween
184 | public static TweenerCore DOOffset(this Material target, Vector2 endValue, int propertyID, float duration)
185 | {
186 | if (!target.HasProperty(propertyID)) {
187 | if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID);
188 | return null;
189 | }
190 | TweenerCore t = DOTween.To(() => target.GetTextureOffset(propertyID), x => target.SetTextureOffset(propertyID, x), endValue, duration);
191 | t.SetTarget(target);
192 | return t;
193 | }
194 |
195 | /// Tweens a Material's named texture scale property with the given ID to the given value.
196 | /// Also stores the material as the tween's target so it can be used for filtered operations
197 | /// The end value to reach
198 | /// The ID of the material property to tween (also called nameID in Unity's manual)
199 | /// The duration of the tween
200 | public static TweenerCore DOTiling(this Material target, Vector2 endValue, int propertyID, float duration)
201 | {
202 | if (!target.HasProperty(propertyID)) {
203 | if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID);
204 | return null;
205 | }
206 | TweenerCore t = DOTween.To(() => target.GetTextureScale(propertyID), x => target.SetTextureScale(propertyID, x), endValue, duration);
207 | t.SetTarget(target);
208 | return t;
209 | }
210 |
211 | #endregion
212 |
213 | #endregion
214 | #endif
215 | }
216 |
217 | // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
218 | // ███ CLASSES █████████████████████████████████████████████████████████████████████████████████████████████████████████
219 | // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
220 |
221 | #if UNITY_5_3_OR_NEWER || UNITY_2017_1_OR_NEWER
222 | public static class DOTweenCYInstruction
223 | {
224 | public class WaitForCompletion : CustomYieldInstruction
225 | {
226 | public override bool keepWaiting { get {
227 | return t.active && !t.IsComplete();
228 | }}
229 | readonly Tween t;
230 | public WaitForCompletion(Tween tween)
231 | {
232 | t = tween;
233 | }
234 | }
235 |
236 | public class WaitForRewind : CustomYieldInstruction
237 | {
238 | public override bool keepWaiting { get {
239 | return t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0);
240 | }}
241 | readonly Tween t;
242 | public WaitForRewind(Tween tween)
243 | {
244 | t = tween;
245 | }
246 | }
247 |
248 | public class WaitForKill : CustomYieldInstruction
249 | {
250 | public override bool keepWaiting { get {
251 | return t.active;
252 | }}
253 | readonly Tween t;
254 | public WaitForKill(Tween tween)
255 | {
256 | t = tween;
257 | }
258 | }
259 |
260 | public class WaitForElapsedLoops : CustomYieldInstruction
261 | {
262 | public override bool keepWaiting { get {
263 | return t.active && t.CompletedLoops() < elapsedLoops;
264 | }}
265 | readonly Tween t;
266 | readonly int elapsedLoops;
267 | public WaitForElapsedLoops(Tween tween, int elapsedLoops)
268 | {
269 | t = tween;
270 | this.elapsedLoops = elapsedLoops;
271 | }
272 | }
273 |
274 | public class WaitForPosition : CustomYieldInstruction
275 | {
276 | public override bool keepWaiting { get {
277 | return t.active && t.position * (t.CompletedLoops() + 1) < position;
278 | }}
279 | readonly Tween t;
280 | readonly float position;
281 | public WaitForPosition(Tween tween, float position)
282 | {
283 | t = tween;
284 | this.position = position;
285 | }
286 | }
287 |
288 | public class WaitForStart : CustomYieldInstruction
289 | {
290 | public override bool keepWaiting { get {
291 | return t.active && !t.playedOnce;
292 | }}
293 | readonly Tween t;
294 | public WaitForStart(Tween tween)
295 | {
296 | t = tween;
297 | }
298 | }
299 | }
300 | #endif
301 | }
302 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 63c02322328255542995bd02b47b0457
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs:
--------------------------------------------------------------------------------
1 | // Author: Daniele Giardini - http://www.demigiant.com
2 | // Created: 2018/07/13
3 |
4 | using System;
5 | using System.Reflection;
6 | using UnityEngine;
7 | using DG.Tweening.Core;
8 | using DG.Tweening.Plugins.Core.PathCore;
9 | using DG.Tweening.Plugins.Options;
10 |
11 | #pragma warning disable 1591
12 | namespace DG.Tweening
13 | {
14 | ///
15 | /// Utility functions that deal with available Modules.
16 | /// Modules defines:
17 | /// - DOTAUDIO
18 | /// - DOTPHYSICS
19 | /// - DOTPHYSICS2D
20 | /// - DOTSPRITE
21 | /// - DOTUI
22 | /// Extra defines set and used for implementation of external assets:
23 | /// - DOTWEEN_TMP ► TextMesh Pro
24 | /// - DOTWEEN_TK2D ► 2D Toolkit
25 | ///
26 | public static class DOTweenModuleUtils
27 | {
28 | static bool _initialized;
29 |
30 | #region Reflection
31 |
32 | ///
33 | /// Called via Reflection by DOTweenComponent on Awake
34 | ///
35 | #if UNITY_2018_1_OR_NEWER
36 | [UnityEngine.Scripting.Preserve]
37 | #endif
38 | public static void Init()
39 | {
40 | if (_initialized) return;
41 |
42 | _initialized = true;
43 | DOTweenExternalCommand.SetOrientationOnPath += Physics.SetOrientationOnPath;
44 |
45 | #if UNITY_EDITOR
46 | #if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1
47 | UnityEditor.EditorApplication.playmodeStateChanged += PlaymodeStateChanged;
48 | #else
49 | UnityEditor.EditorApplication.playModeStateChanged += PlaymodeStateChanged;
50 | #endif
51 | #endif
52 | }
53 |
54 | #if UNITY_2018_1_OR_NEWER
55 | #pragma warning disable
56 | [UnityEngine.Scripting.Preserve]
57 | // Just used to preserve methods when building, never called
58 | static void Preserver()
59 | {
60 | Assembly[] loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();
61 | MethodInfo mi = typeof(MonoBehaviour).GetMethod("Stub");
62 | }
63 | #pragma warning restore
64 | #endif
65 |
66 | #endregion
67 |
68 | #if UNITY_EDITOR
69 | // Fires OnApplicationPause in DOTweenComponent even when Editor is paused (otherwise it's only fired at runtime)
70 | #if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1
71 | static void PlaymodeStateChanged()
72 | #else
73 | static void PlaymodeStateChanged(UnityEditor.PlayModeStateChange state)
74 | #endif
75 | {
76 | if (DOTween.instance == null) return;
77 | DOTween.instance.OnApplicationPause(UnityEditor.EditorApplication.isPaused);
78 | }
79 | #endif
80 |
81 | // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
82 | // ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████
83 | // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
84 |
85 | public static class Physics
86 | {
87 | // Called via DOTweenExternalCommand callback
88 | public static void SetOrientationOnPath(PathOptions options, Tween t, Quaternion newRot, Transform trans)
89 | {
90 | #if true // PHYSICS_MARKER
91 | if (options.isRigidbody) ((Rigidbody)t.target).rotation = newRot;
92 | else trans.rotation = newRot;
93 | #else
94 | trans.rotation = newRot;
95 | #endif
96 | }
97 |
98 | // Returns FALSE if the DOTween's Physics2D Module is disabled, or if there's no Rigidbody2D attached
99 | public static bool HasRigidbody2D(Component target)
100 | {
101 | #if true // PHYSICS2D_MARKER
102 | return target.GetComponent() != null;
103 | #else
104 | return false;
105 | #endif
106 | }
107 |
108 | #region Called via Reflection
109 |
110 |
111 | // Called via Reflection by DOTweenPathInspector
112 | // Returns FALSE if the DOTween's Physics Module is disabled, or if there's no rigidbody attached
113 | #if UNITY_2018_1_OR_NEWER
114 | [UnityEngine.Scripting.Preserve]
115 | #endif
116 | public static bool HasRigidbody(Component target)
117 | {
118 | #if true // PHYSICS_MARKER
119 | return target.GetComponent() != null;
120 | #else
121 | return false;
122 | #endif
123 | }
124 |
125 | // Called via Reflection by DOTweenPath
126 | #if UNITY_2018_1_OR_NEWER
127 | [UnityEngine.Scripting.Preserve]
128 | #endif
129 | public static TweenerCore CreateDOTweenPathTween(
130 | MonoBehaviour target, bool tweenRigidbody, bool isLocal, Path path, float duration, PathMode pathMode
131 | ){
132 | TweenerCore t;
133 | #if true // PHYSICS_MARKER
134 | Rigidbody rBody = tweenRigidbody ? target.GetComponent() : null;
135 | if (tweenRigidbody && rBody != null) {
136 | t = isLocal
137 | ? rBody.DOLocalPath(path, duration, pathMode)
138 | : rBody.DOPath(path, duration, pathMode);
139 | } else {
140 | t = isLocal
141 | ? target.transform.DOLocalPath(path, duration, pathMode)
142 | : target.transform.DOPath(path, duration, pathMode);
143 | }
144 | #else
145 | t = isLocal
146 | ? target.transform.DOLocalPath(path, duration, pathMode)
147 | : target.transform.DOPath(path, duration, pathMode);
148 | #endif
149 | return t;
150 | }
151 |
152 | #endregion
153 | }
154 | }
155 | }
156 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7bcaf917d9cf5b84090421a5a2abe42e
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/readme.txt:
--------------------------------------------------------------------------------
1 | DOTween and DOTween Pro are copyright (c) 2014-2018 Daniele Giardini - Demigiant
2 |
3 | // IMPORTANT!!! /////////////////////////////////////////////
4 | // Upgrading DOTween from versions older than 1.2.000 ///////
5 | // (or DOTween Pro older than 1.0.000) //////////////////////
6 | -------------------------------------------------------------
7 | If you're upgrading your project from a version of DOTween older than 1.2.000 (or DOTween Pro older than 1.0.000) please follow these instructions carefully.
8 | 1) Import the new version in the same folder as the previous one, overwriting old files. A lot of errors will appear but don't worry
9 | 2) Close and reopen Unity (and your project). This is fundamental: skipping this step will cause a bloodbath
10 | 3) Open DOTween's Utility Panel (Tools > Demigiant > DOTween Utility Panel) if it doesn't open automatically, then press "Setup DOTween...": this will run the upgrade setup
11 | 4) From the Add/Remove Modules panel that opens, activate/deactivate Modules for Unity systems and for external assets (Pro version only)
12 |
13 | // GET STARTED //////////////////////////////////////////////
14 |
15 | - After importing a new DOTween update, select DOTween's Utility Panel from the "Tools/Demigiant" menu (if it doesn't open automatically) and press the "Setup DOTween..." button to activate/deactivate Modules. You can also access a Preferences Tab from there to choose default settings for DOTween.
16 | - In your code, add "using DG.Tweening" to each class where you want to use DOTween.
17 | - You're ready to tween. Check out the links below for full documentation and license info.
18 |
19 |
20 | // LINKS ///////////////////////////////////////////////////////
21 |
22 | DOTween website (documentation, examples, etc): http://dotween.demigiant.com
23 | DOTween license: http://dotween.demigiant.com/license.php
24 | DOTween repository (Google Code): https://code.google.com/p/dotween/
25 | Demigiant website (documentation, examples, etc): http://www.demigiant.com
26 |
27 | // NOTES //////////////////////////////////////////////////////
28 |
29 | - DOTween's Utility Panel can be found under "Tools > Demigiant > DOTween Utility Panel" and also contains other useful options, plus a tab to set DOTween's preferences
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/readme.txt.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fccfc62abf2eb0a4db614853430894fd
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Game.unity:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!29 &1
4 | OcclusionCullingSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_OcclusionBakeSettings:
8 | smallestOccluder: 5
9 | smallestHole: 0.25
10 | backfaceThreshold: 100
11 | m_SceneGUID: 00000000000000000000000000000000
12 | m_OcclusionCullingData: {fileID: 0}
13 | --- !u!104 &2
14 | RenderSettings:
15 | m_ObjectHideFlags: 0
16 | serializedVersion: 9
17 | m_Fog: 0
18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
19 | m_FogMode: 3
20 | m_FogDensity: 0.01
21 | m_LinearFogStart: 0
22 | m_LinearFogEnd: 300
23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
26 | m_AmbientIntensity: 1
27 | m_AmbientMode: 3
28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
29 | m_SkyboxMaterial: {fileID: 0}
30 | m_HaloStrength: 0.5
31 | m_FlareStrength: 1
32 | m_FlareFadeSpeed: 3
33 | m_HaloTexture: {fileID: 0}
34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
35 | m_DefaultReflectionMode: 0
36 | m_DefaultReflectionResolution: 128
37 | m_ReflectionBounces: 1
38 | m_ReflectionIntensity: 1
39 | m_CustomReflection: {fileID: 0}
40 | m_Sun: {fileID: 0}
41 | m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
42 | m_UseRadianceAmbientProbe: 0
43 | --- !u!157 &3
44 | LightmapSettings:
45 | m_ObjectHideFlags: 0
46 | serializedVersion: 11
47 | m_GIWorkflowMode: 1
48 | m_GISettings:
49 | serializedVersion: 2
50 | m_BounceScale: 1
51 | m_IndirectOutputScale: 1
52 | m_AlbedoBoost: 1
53 | m_EnvironmentLightingMode: 0
54 | m_EnableBakedLightmaps: 0
55 | m_EnableRealtimeLightmaps: 0
56 | m_LightmapEditorSettings:
57 | serializedVersion: 12
58 | m_Resolution: 2
59 | m_BakeResolution: 40
60 | m_AtlasSize: 1024
61 | m_AO: 0
62 | m_AOMaxDistance: 1
63 | m_CompAOExponent: 1
64 | m_CompAOExponentDirect: 0
65 | m_ExtractAmbientOcclusion: 0
66 | m_Padding: 2
67 | m_LightmapParameters: {fileID: 0}
68 | m_LightmapsBakeMode: 1
69 | m_TextureCompression: 1
70 | m_FinalGather: 0
71 | m_FinalGatherFiltering: 1
72 | m_FinalGatherRayCount: 256
73 | m_ReflectionCompression: 2
74 | m_MixedBakeMode: 2
75 | m_BakeBackend: 1
76 | m_PVRSampling: 1
77 | m_PVRDirectSampleCount: 32
78 | m_PVRSampleCount: 512
79 | m_PVRBounces: 2
80 | m_PVREnvironmentSampleCount: 256
81 | m_PVREnvironmentReferencePointCount: 2048
82 | m_PVRFilteringMode: 1
83 | m_PVRDenoiserTypeDirect: 1
84 | m_PVRDenoiserTypeIndirect: 1
85 | m_PVRDenoiserTypeAO: 1
86 | m_PVRFilterTypeDirect: 0
87 | m_PVRFilterTypeIndirect: 0
88 | m_PVRFilterTypeAO: 0
89 | m_PVREnvironmentMIS: 1
90 | m_PVRCulling: 1
91 | m_PVRFilteringGaussRadiusDirect: 1
92 | m_PVRFilteringGaussRadiusIndirect: 5
93 | m_PVRFilteringGaussRadiusAO: 2
94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
96 | m_PVRFilteringAtrousPositionSigmaAO: 1
97 | m_ExportTrainingData: 0
98 | m_TrainingDataDestination: TrainingData
99 | m_LightProbeSampleCountMultiplier: 4
100 | m_LightingDataAsset: {fileID: 0}
101 | m_UseShadowmask: 1
102 | --- !u!196 &4
103 | NavMeshSettings:
104 | serializedVersion: 2
105 | m_ObjectHideFlags: 0
106 | m_BuildSettings:
107 | serializedVersion: 2
108 | agentTypeID: 0
109 | agentRadius: 0.5
110 | agentHeight: 2
111 | agentSlope: 45
112 | agentClimb: 0.4
113 | ledgeDropHeight: 0
114 | maxJumpAcrossDistance: 0
115 | minRegionArea: 2
116 | manualCellSize: 0
117 | cellSize: 0.16666667
118 | manualTileSize: 0
119 | tileSize: 256
120 | accuratePlacement: 0
121 | debug:
122 | m_Flags: 0
123 | m_NavMeshData: {fileID: 0}
124 | --- !u!1 &68728251
125 | GameObject:
126 | m_ObjectHideFlags: 0
127 | m_CorrespondingSourceObject: {fileID: 0}
128 | m_PrefabInstance: {fileID: 0}
129 | m_PrefabAsset: {fileID: 0}
130 | serializedVersion: 6
131 | m_Component:
132 | - component: {fileID: 68728252}
133 | - component: {fileID: 68728253}
134 | m_Layer: 5
135 | m_Name: EmptyNode
136 | m_TagString: Untagged
137 | m_Icon: {fileID: 0}
138 | m_NavMeshLayer: 0
139 | m_StaticEditorFlags: 0
140 | m_IsActive: 1
141 | --- !u!224 &68728252
142 | RectTransform:
143 | m_ObjectHideFlags: 0
144 | m_CorrespondingSourceObject: {fileID: 0}
145 | m_PrefabInstance: {fileID: 0}
146 | m_PrefabAsset: {fileID: 0}
147 | m_GameObject: {fileID: 68728251}
148 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
149 | m_LocalPosition: {x: 0, y: 0, z: 0}
150 | m_LocalScale: {x: 1, y: 1, z: 1}
151 | m_Children: []
152 | m_Father: {fileID: 740392722}
153 | m_RootOrder: 0
154 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
155 | m_AnchorMin: {x: 0, y: 0}
156 | m_AnchorMax: {x: 1, y: 1}
157 | m_AnchoredPosition: {x: 0, y: 0}
158 | m_SizeDelta: {x: 0, y: 0}
159 | m_Pivot: {x: 0.5, y: 0.5}
160 | --- !u!114 &68728253
161 | MonoBehaviour:
162 | m_ObjectHideFlags: 0
163 | m_CorrespondingSourceObject: {fileID: 0}
164 | m_PrefabInstance: {fileID: 0}
165 | m_PrefabAsset: {fileID: 0}
166 | m_GameObject: {fileID: 68728251}
167 | m_Enabled: 1
168 | m_EditorHideFlags: 0
169 | m_Script: {fileID: 11500000, guid: 8a8695521f0d02e499659fee002a26c2, type: 3}
170 | m_Name:
171 | m_EditorClassIdentifier:
172 | m_Padding:
173 | m_Left: 0
174 | m_Right: 0
175 | m_Top: 0
176 | m_Bottom: 0
177 | m_ChildAlignment: 4
178 | m_StartCorner: 2
179 | m_StartAxis: 0
180 | m_CellSize: {x: 218, y: 218}
181 | m_Spacing: {x: 25, y: 25}
182 | m_Constraint: 0
183 | m_ConstraintCount: 2
184 | --- !u!1 &132821454
185 | GameObject:
186 | m_ObjectHideFlags: 0
187 | m_CorrespondingSourceObject: {fileID: 0}
188 | m_PrefabInstance: {fileID: 0}
189 | m_PrefabAsset: {fileID: 0}
190 | serializedVersion: 6
191 | m_Component:
192 | - component: {fileID: 132821455}
193 | - component: {fileID: 132821457}
194 | - component: {fileID: 132821456}
195 | m_Layer: 5
196 | m_Name: Image
197 | m_TagString: Untagged
198 | m_Icon: {fileID: 0}
199 | m_NavMeshLayer: 0
200 | m_StaticEditorFlags: 0
201 | m_IsActive: 1
202 | --- !u!224 &132821455
203 | RectTransform:
204 | m_ObjectHideFlags: 0
205 | m_CorrespondingSourceObject: {fileID: 0}
206 | m_PrefabInstance: {fileID: 0}
207 | m_PrefabAsset: {fileID: 0}
208 | m_GameObject: {fileID: 132821454}
209 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
210 | m_LocalPosition: {x: 0, y: 0, z: 0}
211 | m_LocalScale: {x: 1, y: 1, z: 1}
212 | m_Children: []
213 | m_Father: {fileID: 913224413}
214 | m_RootOrder: 0
215 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
216 | m_AnchorMin: {x: 0, y: 0}
217 | m_AnchorMax: {x: 1, y: 1}
218 | m_AnchoredPosition: {x: 0, y: 0}
219 | m_SizeDelta: {x: 0, y: 0}
220 | m_Pivot: {x: 0.5, y: 0.5}
221 | --- !u!114 &132821456
222 | MonoBehaviour:
223 | m_ObjectHideFlags: 0
224 | m_CorrespondingSourceObject: {fileID: 0}
225 | m_PrefabInstance: {fileID: 0}
226 | m_PrefabAsset: {fileID: 0}
227 | m_GameObject: {fileID: 132821454}
228 | m_Enabled: 1
229 | m_EditorHideFlags: 0
230 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
231 | m_Name:
232 | m_EditorClassIdentifier:
233 | m_Material: {fileID: 0}
234 | m_Color: {r: 0.99820465, g: 1, b: 0.9575472, a: 1}
235 | m_RaycastTarget: 1
236 | m_OnCullStateChanged:
237 | m_PersistentCalls:
238 | m_Calls: []
239 | m_Sprite: {fileID: 0}
240 | m_Type: 0
241 | m_PreserveAspect: 0
242 | m_FillCenter: 1
243 | m_FillMethod: 4
244 | m_FillAmount: 1
245 | m_FillClockwise: 1
246 | m_FillOrigin: 0
247 | m_UseSpriteMesh: 0
248 | m_PixelsPerUnitMultiplier: 1
249 | --- !u!222 &132821457
250 | CanvasRenderer:
251 | m_ObjectHideFlags: 0
252 | m_CorrespondingSourceObject: {fileID: 0}
253 | m_PrefabInstance: {fileID: 0}
254 | m_PrefabAsset: {fileID: 0}
255 | m_GameObject: {fileID: 132821454}
256 | m_CullTransparentMesh: 0
257 | --- !u!1 &353672121
258 | GameObject:
259 | m_ObjectHideFlags: 0
260 | m_CorrespondingSourceObject: {fileID: 0}
261 | m_PrefabInstance: {fileID: 0}
262 | m_PrefabAsset: {fileID: 0}
263 | serializedVersion: 6
264 | m_Component:
265 | - component: {fileID: 353672124}
266 | - component: {fileID: 353672123}
267 | - component: {fileID: 353672122}
268 | m_Layer: 0
269 | m_Name: Main Camera
270 | m_TagString: MainCamera
271 | m_Icon: {fileID: 0}
272 | m_NavMeshLayer: 0
273 | m_StaticEditorFlags: 0
274 | m_IsActive: 1
275 | --- !u!81 &353672122
276 | AudioListener:
277 | m_ObjectHideFlags: 0
278 | m_CorrespondingSourceObject: {fileID: 0}
279 | m_PrefabInstance: {fileID: 0}
280 | m_PrefabAsset: {fileID: 0}
281 | m_GameObject: {fileID: 353672121}
282 | m_Enabled: 1
283 | --- !u!20 &353672123
284 | Camera:
285 | m_ObjectHideFlags: 0
286 | m_CorrespondingSourceObject: {fileID: 0}
287 | m_PrefabInstance: {fileID: 0}
288 | m_PrefabAsset: {fileID: 0}
289 | m_GameObject: {fileID: 353672121}
290 | m_Enabled: 1
291 | serializedVersion: 2
292 | m_ClearFlags: 2
293 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
294 | m_projectionMatrixMode: 1
295 | m_GateFitMode: 2
296 | m_FOVAxisMode: 0
297 | m_SensorSize: {x: 36, y: 24}
298 | m_LensShift: {x: 0, y: 0}
299 | m_FocalLength: 50
300 | m_NormalizedViewPortRect:
301 | serializedVersion: 2
302 | x: 0
303 | y: 0
304 | width: 1
305 | height: 1
306 | near clip plane: 0.3
307 | far clip plane: 1000
308 | field of view: 60
309 | orthographic: 1
310 | orthographic size: 5
311 | m_Depth: -1
312 | m_CullingMask:
313 | serializedVersion: 2
314 | m_Bits: 4294967295
315 | m_RenderingPath: -1
316 | m_TargetTexture: {fileID: 0}
317 | m_TargetDisplay: 0
318 | m_TargetEye: 3
319 | m_HDR: 1
320 | m_AllowMSAA: 1
321 | m_AllowDynamicResolution: 0
322 | m_ForceIntoRT: 0
323 | m_OcclusionCulling: 1
324 | m_StereoConvergence: 10
325 | m_StereoSeparation: 0.022
326 | --- !u!4 &353672124
327 | Transform:
328 | m_ObjectHideFlags: 0
329 | m_CorrespondingSourceObject: {fileID: 0}
330 | m_PrefabInstance: {fileID: 0}
331 | m_PrefabAsset: {fileID: 0}
332 | m_GameObject: {fileID: 353672121}
333 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
334 | m_LocalPosition: {x: 0, y: 0, z: -10}
335 | m_LocalScale: {x: 1, y: 1, z: 1}
336 | m_Children: []
337 | m_Father: {fileID: 0}
338 | m_RootOrder: 0
339 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
340 | --- !u!1 &740392721
341 | GameObject:
342 | m_ObjectHideFlags: 0
343 | m_CorrespondingSourceObject: {fileID: 0}
344 | m_PrefabInstance: {fileID: 0}
345 | m_PrefabAsset: {fileID: 0}
346 | serializedVersion: 6
347 | m_Component:
348 | - component: {fileID: 740392722}
349 | - component: {fileID: 740392724}
350 | - component: {fileID: 740392723}
351 | - component: {fileID: 740392725}
352 | m_Layer: 5
353 | m_Name: NodeBoard
354 | m_TagString: Untagged
355 | m_Icon: {fileID: 0}
356 | m_NavMeshLayer: 0
357 | m_StaticEditorFlags: 0
358 | m_IsActive: 1
359 | --- !u!224 &740392722
360 | RectTransform:
361 | m_ObjectHideFlags: 0
362 | m_CorrespondingSourceObject: {fileID: 0}
363 | m_PrefabInstance: {fileID: 0}
364 | m_PrefabAsset: {fileID: 0}
365 | m_GameObject: {fileID: 740392721}
366 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
367 | m_LocalPosition: {x: 0, y: 0, z: 0}
368 | m_LocalScale: {x: 1, y: 1, z: 1}
369 | m_Children:
370 | - {fileID: 68728252}
371 | - {fileID: 1103381382}
372 | m_Father: {fileID: 913224413}
373 | m_RootOrder: 1
374 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
375 | m_AnchorMin: {x: 0.5, y: 0.5}
376 | m_AnchorMax: {x: 0.5, y: 0.5}
377 | m_AnchoredPosition: {x: 0, y: -355}
378 | m_SizeDelta: {x: 1080, y: 1080}
379 | m_Pivot: {x: 0.5, y: 0.5}
380 | --- !u!114 &740392723
381 | MonoBehaviour:
382 | m_ObjectHideFlags: 0
383 | m_CorrespondingSourceObject: {fileID: 0}
384 | m_PrefabInstance: {fileID: 0}
385 | m_PrefabAsset: {fileID: 0}
386 | m_GameObject: {fileID: 740392721}
387 | m_Enabled: 1
388 | m_EditorHideFlags: 0
389 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
390 | m_Name:
391 | m_EditorClassIdentifier:
392 | m_Material: {fileID: 0}
393 | m_Color: {r: 1, g: 1, b: 1, a: 1}
394 | m_RaycastTarget: 1
395 | m_OnCullStateChanged:
396 | m_PersistentCalls:
397 | m_Calls: []
398 | m_Sprite: {fileID: 21300000, guid: afc030ddddbc78a4f9df7d2cea4cde46, type: 3}
399 | m_Type: 1
400 | m_PreserveAspect: 0
401 | m_FillCenter: 1
402 | m_FillMethod: 4
403 | m_FillAmount: 1
404 | m_FillClockwise: 1
405 | m_FillOrigin: 0
406 | m_UseSpriteMesh: 0
407 | m_PixelsPerUnitMultiplier: 1
408 | --- !u!222 &740392724
409 | CanvasRenderer:
410 | m_ObjectHideFlags: 0
411 | m_CorrespondingSourceObject: {fileID: 0}
412 | m_PrefabInstance: {fileID: 0}
413 | m_PrefabAsset: {fileID: 0}
414 | m_GameObject: {fileID: 740392721}
415 | m_CullTransparentMesh: 0
416 | --- !u!114 &740392725
417 | MonoBehaviour:
418 | m_ObjectHideFlags: 0
419 | m_CorrespondingSourceObject: {fileID: 0}
420 | m_PrefabInstance: {fileID: 0}
421 | m_PrefabAsset: {fileID: 0}
422 | m_GameObject: {fileID: 740392721}
423 | m_Enabled: 1
424 | m_EditorHideFlags: 0
425 | m_Script: {fileID: 11500000, guid: 8ad27aa0605419a4f869a99bafe3b229, type: 3}
426 | m_Name:
427 | m_EditorClassIdentifier:
428 | realNodeList: []
429 | nodeData: []
430 | col: 4
431 | row: 4
432 | emptyNodePrefab: {fileID: 1654187571721417778, guid: 20a1c4f0c1a2b0d4eb5e1e19e4cb3b76,
433 | type: 3}
434 | nodePrefab: {fileID: 490343179275367117, guid: 5bcee01cf3291c2498cf5bd7be2fd0af,
435 | type: 3}
436 | emptyNodeRect: {fileID: 68728252}
437 | realNodeRect: {fileID: 1103381382}
438 | --- !u!1 &913224409
439 | GameObject:
440 | m_ObjectHideFlags: 0
441 | m_CorrespondingSourceObject: {fileID: 0}
442 | m_PrefabInstance: {fileID: 0}
443 | m_PrefabAsset: {fileID: 0}
444 | serializedVersion: 6
445 | m_Component:
446 | - component: {fileID: 913224413}
447 | - component: {fileID: 913224412}
448 | - component: {fileID: 913224411}
449 | - component: {fileID: 913224410}
450 | m_Layer: 5
451 | m_Name: Canvas
452 | m_TagString: Untagged
453 | m_Icon: {fileID: 0}
454 | m_NavMeshLayer: 0
455 | m_StaticEditorFlags: 0
456 | m_IsActive: 1
457 | --- !u!114 &913224410
458 | MonoBehaviour:
459 | m_ObjectHideFlags: 0
460 | m_CorrespondingSourceObject: {fileID: 0}
461 | m_PrefabInstance: {fileID: 0}
462 | m_PrefabAsset: {fileID: 0}
463 | m_GameObject: {fileID: 913224409}
464 | m_Enabled: 1
465 | m_EditorHideFlags: 0
466 | m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
467 | m_Name:
468 | m_EditorClassIdentifier:
469 | m_IgnoreReversedGraphics: 1
470 | m_BlockingObjects: 0
471 | m_BlockingMask:
472 | serializedVersion: 2
473 | m_Bits: 55
474 | --- !u!114 &913224411
475 | MonoBehaviour:
476 | m_ObjectHideFlags: 0
477 | m_CorrespondingSourceObject: {fileID: 0}
478 | m_PrefabInstance: {fileID: 0}
479 | m_PrefabAsset: {fileID: 0}
480 | m_GameObject: {fileID: 913224409}
481 | m_Enabled: 1
482 | m_EditorHideFlags: 0
483 | m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
484 | m_Name:
485 | m_EditorClassIdentifier:
486 | m_UiScaleMode: 1
487 | m_ReferencePixelsPerUnit: 100
488 | m_ScaleFactor: 1
489 | m_ReferenceResolution: {x: 1080, y: 1920}
490 | m_ScreenMatchMode: 0
491 | m_MatchWidthOrHeight: 0
492 | m_PhysicalUnit: 3
493 | m_FallbackScreenDPI: 96
494 | m_DefaultSpriteDPI: 96
495 | m_DynamicPixelsPerUnit: 1
496 | --- !u!223 &913224412
497 | Canvas:
498 | m_ObjectHideFlags: 0
499 | m_CorrespondingSourceObject: {fileID: 0}
500 | m_PrefabInstance: {fileID: 0}
501 | m_PrefabAsset: {fileID: 0}
502 | m_GameObject: {fileID: 913224409}
503 | m_Enabled: 1
504 | serializedVersion: 3
505 | m_RenderMode: 0
506 | m_Camera: {fileID: 0}
507 | m_PlaneDistance: 100
508 | m_PixelPerfect: 0
509 | m_ReceivesEvents: 1
510 | m_OverrideSorting: 0
511 | m_OverridePixelPerfect: 0
512 | m_SortingBucketNormalizedSize: 0
513 | m_AdditionalShaderChannelsFlag: 25
514 | m_SortingLayerID: 0
515 | m_SortingOrder: 0
516 | m_TargetDisplay: 0
517 | --- !u!224 &913224413
518 | RectTransform:
519 | m_ObjectHideFlags: 0
520 | m_CorrespondingSourceObject: {fileID: 0}
521 | m_PrefabInstance: {fileID: 0}
522 | m_PrefabAsset: {fileID: 0}
523 | m_GameObject: {fileID: 913224409}
524 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
525 | m_LocalPosition: {x: 0, y: 0, z: 0}
526 | m_LocalScale: {x: 0, y: 0, z: 0}
527 | m_Children:
528 | - {fileID: 132821455}
529 | - {fileID: 740392722}
530 | m_Father: {fileID: 0}
531 | m_RootOrder: 1
532 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
533 | m_AnchorMin: {x: 0, y: 0}
534 | m_AnchorMax: {x: 0, y: 0}
535 | m_AnchoredPosition: {x: 0, y: 0}
536 | m_SizeDelta: {x: 0, y: 0}
537 | m_Pivot: {x: 0, y: 0}
538 | --- !u!1 &975902387
539 | GameObject:
540 | m_ObjectHideFlags: 0
541 | m_CorrespondingSourceObject: {fileID: 0}
542 | m_PrefabInstance: {fileID: 0}
543 | m_PrefabAsset: {fileID: 0}
544 | serializedVersion: 6
545 | m_Component:
546 | - component: {fileID: 975902390}
547 | - component: {fileID: 975902389}
548 | - component: {fileID: 975902388}
549 | m_Layer: 0
550 | m_Name: EventSystem
551 | m_TagString: Untagged
552 | m_Icon: {fileID: 0}
553 | m_NavMeshLayer: 0
554 | m_StaticEditorFlags: 0
555 | m_IsActive: 1
556 | --- !u!114 &975902388
557 | MonoBehaviour:
558 | m_ObjectHideFlags: 0
559 | m_CorrespondingSourceObject: {fileID: 0}
560 | m_PrefabInstance: {fileID: 0}
561 | m_PrefabAsset: {fileID: 0}
562 | m_GameObject: {fileID: 975902387}
563 | m_Enabled: 1
564 | m_EditorHideFlags: 0
565 | m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
566 | m_Name:
567 | m_EditorClassIdentifier:
568 | m_HorizontalAxis: Horizontal
569 | m_VerticalAxis: Vertical
570 | m_SubmitButton: Submit
571 | m_CancelButton: Cancel
572 | m_InputActionsPerSecond: 10
573 | m_RepeatDelay: 0.5
574 | m_ForceModuleActive: 0
575 | --- !u!114 &975902389
576 | MonoBehaviour:
577 | m_ObjectHideFlags: 0
578 | m_CorrespondingSourceObject: {fileID: 0}
579 | m_PrefabInstance: {fileID: 0}
580 | m_PrefabAsset: {fileID: 0}
581 | m_GameObject: {fileID: 975902387}
582 | m_Enabled: 1
583 | m_EditorHideFlags: 0
584 | m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
585 | m_Name:
586 | m_EditorClassIdentifier:
587 | m_FirstSelected: {fileID: 0}
588 | m_sendNavigationEvents: 1
589 | m_DragThreshold: 10
590 | --- !u!4 &975902390
591 | Transform:
592 | m_ObjectHideFlags: 0
593 | m_CorrespondingSourceObject: {fileID: 0}
594 | m_PrefabInstance: {fileID: 0}
595 | m_PrefabAsset: {fileID: 0}
596 | m_GameObject: {fileID: 975902387}
597 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
598 | m_LocalPosition: {x: 0, y: 0, z: 0}
599 | m_LocalScale: {x: 1, y: 1, z: 1}
600 | m_Children: []
601 | m_Father: {fileID: 0}
602 | m_RootOrder: 2
603 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
604 | --- !u!1 &1103381381
605 | GameObject:
606 | m_ObjectHideFlags: 0
607 | m_CorrespondingSourceObject: {fileID: 0}
608 | m_PrefabInstance: {fileID: 0}
609 | m_PrefabAsset: {fileID: 0}
610 | serializedVersion: 6
611 | m_Component:
612 | - component: {fileID: 1103381382}
613 | m_Layer: 5
614 | m_Name: RealNode
615 | m_TagString: Untagged
616 | m_Icon: {fileID: 0}
617 | m_NavMeshLayer: 0
618 | m_StaticEditorFlags: 0
619 | m_IsActive: 1
620 | --- !u!224 &1103381382
621 | RectTransform:
622 | m_ObjectHideFlags: 0
623 | m_CorrespondingSourceObject: {fileID: 0}
624 | m_PrefabInstance: {fileID: 0}
625 | m_PrefabAsset: {fileID: 0}
626 | m_GameObject: {fileID: 1103381381}
627 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
628 | m_LocalPosition: {x: 0, y: 0, z: 0}
629 | m_LocalScale: {x: 1, y: 1, z: 1}
630 | m_Children: []
631 | m_Father: {fileID: 740392722}
632 | m_RootOrder: 1
633 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
634 | m_AnchorMin: {x: 0, y: 0}
635 | m_AnchorMax: {x: 1, y: 1}
636 | m_AnchoredPosition: {x: 0, y: 0}
637 | m_SizeDelta: {x: 0, y: 0}
638 | m_Pivot: {x: 0.5, y: 0.5}
639 |
--------------------------------------------------------------------------------
/Assets/Game.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: db56e3fe50b715d46be1c8e8bb4bceff
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Resource.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5eeef03e682fc684e8c397aca2c3a275
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Resource/2048.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ee217ce7b52e24c48b209be79e225255
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Resource/2048/board.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shlifedev/unity-2048/cc2a341026d88087af817363db6fa6de25f9c451/Assets/Resource/2048/board.png
--------------------------------------------------------------------------------
/Assets/Resource/2048/board.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: afc030ddddbc78a4f9df7d2cea4cde46
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 10
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: 1
31 | maxTextureSize: 2048
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: -1
35 | aniso: -1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 1
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 120, y: 120, z: 120, w: 120}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 8
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 3
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 2048
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 1
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | forceMaximumCompressionQuality_BC6H_BC7: 0
73 | spriteSheet:
74 | serializedVersion: 2
75 | sprites: []
76 | outline: []
77 | physicsShape: []
78 | bones: []
79 | spriteID: 5e97eb03825dee720800000000000000
80 | internalID: 0
81 | vertices: []
82 | indices:
83 | edges: []
84 | weights: []
85 | secondaryTextures: []
86 | spritePackingTag:
87 | pSDRemoveMatte: 0
88 | pSDShowRemoveMatteOption: 0
89 | userData:
90 | assetBundleName:
91 | assetBundleVariant:
92 |
--------------------------------------------------------------------------------
/Assets/Resource/2048/number-board.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shlifedev/unity-2048/cc2a341026d88087af817363db6fa6de25f9c451/Assets/Resource/2048/number-board.png
--------------------------------------------------------------------------------
/Assets/Resource/2048/number-board.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b7b4cf011d8ccca46a5ddf4a34bd922f
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 10
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: 1
31 | maxTextureSize: 2048
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: -1
35 | aniso: -1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 1
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 8
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 3
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 2048
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 1
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | forceMaximumCompressionQuality_BC6H_BC7: 0
73 | spriteSheet:
74 | serializedVersion: 2
75 | sprites: []
76 | outline: []
77 | physicsShape: []
78 | bones: []
79 | spriteID: 5e97eb03825dee720800000000000000
80 | internalID: 0
81 | vertices: []
82 | indices:
83 | edges: []
84 | weights: []
85 | secondaryTextures: []
86 | spritePackingTag:
87 | pSDRemoveMatte: 0
88 | pSDShowRemoveMatteOption: 0
89 | userData:
90 | assetBundleName:
91 | assetBundleVariant:
92 |
--------------------------------------------------------------------------------
/Assets/Resource/2048/number-empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shlifedev/unity-2048/cc2a341026d88087af817363db6fa6de25f9c451/Assets/Resource/2048/number-empty.png
--------------------------------------------------------------------------------
/Assets/Resource/2048/number-empty.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3ca84b079f2447f4385b71add070f62d
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 10
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: 1
31 | maxTextureSize: 2048
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: -1
35 | aniso: -1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 1
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 100
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 8
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 3
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 2048
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 1
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | forceMaximumCompressionQuality_BC6H_BC7: 0
73 | spriteSheet:
74 | serializedVersion: 2
75 | sprites: []
76 | outline: []
77 | physicsShape: []
78 | bones: []
79 | spriteID: 5e97eb03825dee720800000000000000
80 | internalID: 0
81 | vertices: []
82 | indices:
83 | edges: []
84 | weights: []
85 | secondaryTextures: []
86 | spritePackingTag:
87 | pSDRemoveMatte: 0
88 | pSDShowRemoveMatteOption: 0
89 | userData:
90 | assetBundleName:
91 | assetBundleVariant:
92 |
--------------------------------------------------------------------------------
/Assets/Resource/Prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7c6ceb0dab8d1a34abe749b0d588060e
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Resource/Prefab/EmptyNode.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1 &1654187571721417778
4 | GameObject:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | serializedVersion: 6
10 | m_Component:
11 | - component: {fileID: 1654187571721417779}
12 | - component: {fileID: 1654187571721417777}
13 | - component: {fileID: 1654187571721417776}
14 | m_Layer: 5
15 | m_Name: EmptyNode
16 | m_TagString: Untagged
17 | m_Icon: {fileID: 0}
18 | m_NavMeshLayer: 0
19 | m_StaticEditorFlags: 0
20 | m_IsActive: 1
21 | --- !u!224 &1654187571721417779
22 | RectTransform:
23 | m_ObjectHideFlags: 0
24 | m_CorrespondingSourceObject: {fileID: 0}
25 | m_PrefabInstance: {fileID: 0}
26 | m_PrefabAsset: {fileID: 0}
27 | m_GameObject: {fileID: 1654187571721417778}
28 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
29 | m_LocalPosition: {x: 0, y: 0, z: 0}
30 | m_LocalScale: {x: 1, y: 1, z: 1}
31 | m_Children: []
32 | m_Father: {fileID: 0}
33 | m_RootOrder: 0
34 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
35 | m_AnchorMin: {x: 0, y: 0}
36 | m_AnchorMax: {x: 0, y: 0}
37 | m_AnchoredPosition: {x: 0, y: 0}
38 | m_SizeDelta: {x: 0, y: 0}
39 | m_Pivot: {x: 0.5, y: 0.5}
40 | --- !u!222 &1654187571721417777
41 | CanvasRenderer:
42 | m_ObjectHideFlags: 0
43 | m_CorrespondingSourceObject: {fileID: 0}
44 | m_PrefabInstance: {fileID: 0}
45 | m_PrefabAsset: {fileID: 0}
46 | m_GameObject: {fileID: 1654187571721417778}
47 | m_CullTransparentMesh: 0
48 | --- !u!114 &1654187571721417776
49 | MonoBehaviour:
50 | m_ObjectHideFlags: 0
51 | m_CorrespondingSourceObject: {fileID: 0}
52 | m_PrefabInstance: {fileID: 0}
53 | m_PrefabAsset: {fileID: 0}
54 | m_GameObject: {fileID: 1654187571721417778}
55 | m_Enabled: 1
56 | m_EditorHideFlags: 0
57 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
58 | m_Name:
59 | m_EditorClassIdentifier:
60 | m_Material: {fileID: 0}
61 | m_Color: {r: 1, g: 1, b: 1, a: 1}
62 | m_RaycastTarget: 1
63 | m_OnCullStateChanged:
64 | m_PersistentCalls:
65 | m_Calls: []
66 | m_Sprite: {fileID: 21300000, guid: 3ca84b079f2447f4385b71add070f62d, type: 3}
67 | m_Type: 0
68 | m_PreserveAspect: 0
69 | m_FillCenter: 1
70 | m_FillMethod: 4
71 | m_FillAmount: 1
72 | m_FillClockwise: 1
73 | m_FillOrigin: 0
74 | m_UseSpriteMesh: 0
75 | m_PixelsPerUnitMultiplier: 1
76 |
--------------------------------------------------------------------------------
/Assets/Resource/Prefab/EmptyNode.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 20a1c4f0c1a2b0d4eb5e1e19e4cb3b76
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Resource/Prefab/RealNode.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1 &597214139
4 | GameObject:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | serializedVersion: 6
10 | m_Component:
11 | - component: {fileID: 597214140}
12 | - component: {fileID: 597214142}
13 | - component: {fileID: 597214141}
14 | m_Layer: 5
15 | m_Name: power
16 | m_TagString: Untagged
17 | m_Icon: {fileID: 0}
18 | m_NavMeshLayer: 0
19 | m_StaticEditorFlags: 0
20 | m_IsActive: 1
21 | --- !u!224 &597214140
22 | RectTransform:
23 | m_ObjectHideFlags: 0
24 | m_CorrespondingSourceObject: {fileID: 0}
25 | m_PrefabInstance: {fileID: 0}
26 | m_PrefabAsset: {fileID: 0}
27 | m_GameObject: {fileID: 597214139}
28 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
29 | m_LocalPosition: {x: 0, y: 0, z: 0}
30 | m_LocalScale: {x: 1, y: 1, z: 1}
31 | m_Children: []
32 | m_Father: {fileID: 490343179275367106}
33 | m_RootOrder: 0
34 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
35 | m_AnchorMin: {x: 0, y: 0}
36 | m_AnchorMax: {x: 1, y: 1}
37 | m_AnchoredPosition: {x: 0, y: 0}
38 | m_SizeDelta: {x: 0, y: 0}
39 | m_Pivot: {x: 0.5, y: 0.5}
40 | --- !u!222 &597214142
41 | CanvasRenderer:
42 | m_ObjectHideFlags: 0
43 | m_CorrespondingSourceObject: {fileID: 0}
44 | m_PrefabInstance: {fileID: 0}
45 | m_PrefabAsset: {fileID: 0}
46 | m_GameObject: {fileID: 597214139}
47 | m_CullTransparentMesh: 0
48 | --- !u!114 &597214141
49 | MonoBehaviour:
50 | m_ObjectHideFlags: 0
51 | m_CorrespondingSourceObject: {fileID: 0}
52 | m_PrefabInstance: {fileID: 0}
53 | m_PrefabAsset: {fileID: 0}
54 | m_GameObject: {fileID: 597214139}
55 | m_Enabled: 1
56 | m_EditorHideFlags: 0
57 | m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
58 | m_Name:
59 | m_EditorClassIdentifier:
60 | m_Material: {fileID: 0}
61 | m_Color: {r: 1, g: 1, b: 1, a: 1}
62 | m_RaycastTarget: 1
63 | m_OnCullStateChanged:
64 | m_PersistentCalls:
65 | m_Calls: []
66 | m_text: 0
67 | m_isRightToLeft: 0
68 | m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
69 | m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
70 | m_fontSharedMaterials: []
71 | m_fontMaterial: {fileID: 0}
72 | m_fontMaterials: []
73 | m_fontColor32:
74 | serializedVersion: 2
75 | rgba: 4294967295
76 | m_fontColor: {r: 1, g: 1, b: 1, a: 1}
77 | m_enableVertexGradient: 0
78 | m_colorMode: 3
79 | m_fontColorGradient:
80 | topLeft: {r: 1, g: 1, b: 1, a: 1}
81 | topRight: {r: 1, g: 1, b: 1, a: 1}
82 | bottomLeft: {r: 1, g: 1, b: 1, a: 1}
83 | bottomRight: {r: 1, g: 1, b: 1, a: 1}
84 | m_fontColorGradientPreset: {fileID: 0}
85 | m_spriteAsset: {fileID: 0}
86 | m_tintAllSprites: 0
87 | m_overrideHtmlColors: 0
88 | m_faceColor:
89 | serializedVersion: 2
90 | rgba: 4294967295
91 | m_outlineColor:
92 | serializedVersion: 2
93 | rgba: 4278190080
94 | m_fontSize: 128
95 | m_fontSizeBase: 125
96 | m_fontWeight: 400
97 | m_enableAutoSizing: 1
98 | m_fontSizeMin: 48
99 | m_fontSizeMax: 128
100 | m_fontStyle: 1
101 | m_textAlignment: 514
102 | m_characterSpacing: 0
103 | m_wordSpacing: 0
104 | m_lineSpacing: 0
105 | m_lineSpacingMax: 0
106 | m_paragraphSpacing: 0
107 | m_charWidthMaxAdj: 0
108 | m_enableWordWrapping: 1
109 | m_wordWrappingRatios: 0.4
110 | m_overflowMode: 0
111 | m_firstOverflowCharacterIndex: -1
112 | m_linkedTextComponent: {fileID: 0}
113 | m_isLinkedTextComponent: 0
114 | m_isTextTruncated: 0
115 | m_enableKerning: 1
116 | m_enableExtraPadding: 0
117 | checkPaddingRequired: 0
118 | m_isRichText: 1
119 | m_parseCtrlCharacters: 1
120 | m_isOrthographic: 1
121 | m_isCullingEnabled: 0
122 | m_ignoreRectMaskCulling: 0
123 | m_ignoreCulling: 1
124 | m_horizontalMapping: 0
125 | m_verticalMapping: 0
126 | m_uvLineOffset: 0
127 | m_geometrySortingOrder: 0
128 | m_VertexBufferAutoSizeReduction: 1
129 | m_firstVisibleCharacter: 0
130 | m_useMaxVisibleDescender: 1
131 | m_pageToDisplay: 1
132 | m_margin: {x: 21.510193, y: 0, z: 14.340179, w: 0}
133 | m_textInfo:
134 | textComponent: {fileID: 597214141}
135 | characterCount: 1
136 | spriteCount: 0
137 | spaceCount: 0
138 | wordCount: 1
139 | linkCount: 0
140 | lineCount: 1
141 | pageCount: 1
142 | materialCount: 1
143 | m_isUsingLegacyAnimationComponent: 0
144 | m_isVolumetricText: 0
145 | m_spriteAnimator: {fileID: 0}
146 | m_hasFontAssetChanged: 0
147 | m_subTextObjects:
148 | - {fileID: 0}
149 | - {fileID: 0}
150 | - {fileID: 0}
151 | - {fileID: 0}
152 | - {fileID: 0}
153 | - {fileID: 0}
154 | - {fileID: 0}
155 | - {fileID: 0}
156 | m_baseMaterial: {fileID: 0}
157 | m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
158 | --- !u!1 &490343179275367117
159 | GameObject:
160 | m_ObjectHideFlags: 0
161 | m_CorrespondingSourceObject: {fileID: 0}
162 | m_PrefabInstance: {fileID: 0}
163 | m_PrefabAsset: {fileID: 0}
164 | serializedVersion: 6
165 | m_Component:
166 | - component: {fileID: 490343179275367106}
167 | - component: {fileID: 490343179275367104}
168 | - component: {fileID: 490343179275367107}
169 | - component: {fileID: -4667488916963988623}
170 | m_Layer: 5
171 | m_Name: RealNode
172 | m_TagString: Untagged
173 | m_Icon: {fileID: 0}
174 | m_NavMeshLayer: 0
175 | m_StaticEditorFlags: 0
176 | m_IsActive: 1
177 | --- !u!224 &490343179275367106
178 | RectTransform:
179 | m_ObjectHideFlags: 0
180 | m_CorrespondingSourceObject: {fileID: 0}
181 | m_PrefabInstance: {fileID: 0}
182 | m_PrefabAsset: {fileID: 0}
183 | m_GameObject: {fileID: 490343179275367117}
184 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
185 | m_LocalPosition: {x: 0, y: 0, z: 0}
186 | m_LocalScale: {x: 1, y: 1, z: 1}
187 | m_Children:
188 | - {fileID: 597214140}
189 | m_Father: {fileID: 0}
190 | m_RootOrder: 0
191 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
192 | m_AnchorMin: {x: 0.5, y: 0.5}
193 | m_AnchorMax: {x: 0.5, y: 0.5}
194 | m_AnchoredPosition: {x: -127, y: 370}
195 | m_SizeDelta: {x: 218, y: 218}
196 | m_Pivot: {x: 0.5, y: 0.5}
197 | --- !u!222 &490343179275367104
198 | CanvasRenderer:
199 | m_ObjectHideFlags: 0
200 | m_CorrespondingSourceObject: {fileID: 0}
201 | m_PrefabInstance: {fileID: 0}
202 | m_PrefabAsset: {fileID: 0}
203 | m_GameObject: {fileID: 490343179275367117}
204 | m_CullTransparentMesh: 0
205 | --- !u!114 &490343179275367107
206 | MonoBehaviour:
207 | m_ObjectHideFlags: 0
208 | m_CorrespondingSourceObject: {fileID: 0}
209 | m_PrefabInstance: {fileID: 0}
210 | m_PrefabAsset: {fileID: 0}
211 | m_GameObject: {fileID: 490343179275367117}
212 | m_Enabled: 1
213 | m_EditorHideFlags: 0
214 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
215 | m_Name:
216 | m_EditorClassIdentifier:
217 | m_Material: {fileID: 0}
218 | m_Color: {r: 1, g: 0.4198113, b: 0.4198113, a: 1}
219 | m_RaycastTarget: 1
220 | m_OnCullStateChanged:
221 | m_PersistentCalls:
222 | m_Calls: []
223 | m_Sprite: {fileID: 21300000, guid: 3ca84b079f2447f4385b71add070f62d, type: 3}
224 | m_Type: 0
225 | m_PreserveAspect: 0
226 | m_FillCenter: 1
227 | m_FillMethod: 4
228 | m_FillAmount: 1
229 | m_FillClockwise: 1
230 | m_FillOrigin: 0
231 | m_UseSpriteMesh: 0
232 | m_PixelsPerUnitMultiplier: 1
233 | --- !u!114 &-4667488916963988623
234 | MonoBehaviour:
235 | m_ObjectHideFlags: 0
236 | m_CorrespondingSourceObject: {fileID: 0}
237 | m_PrefabInstance: {fileID: 0}
238 | m_PrefabAsset: {fileID: 0}
239 | m_GameObject: {fileID: 490343179275367117}
240 | m_Enabled: 1
241 | m_EditorHideFlags: 0
242 | m_Script: {fileID: 11500000, guid: db55ea86c83a8b24b8726fa3e67147ed, type: 3}
243 | m_Name:
244 | m_EditorClassIdentifier:
245 | combine: 0
246 | blockImage: {fileID: 490343179275367107}
247 | valueText: {fileID: 597214141}
248 | needDestroy: 0
249 |
--------------------------------------------------------------------------------
/Assets/Resource/Prefab/RealNode.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5bcee01cf3291c2498cf5bd7be2fd0af
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Resources.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 41774338717ced244b879dc24aaba957
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Resources/DOTweenSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &11400000
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_GameObject: {fileID: 0}
10 | m_Enabled: 1
11 | m_EditorHideFlags: 0
12 | m_Script: {fileID: 16995157, guid: a811bde74b26b53498b4f6d872b09b6d, type: 3}
13 | m_Name: DOTweenSettings
14 | m_EditorClassIdentifier:
15 | useSafeMode: 1
16 | safeModeOptions:
17 | nestedTweenFailureBehaviour: 0
18 | timeScale: 1
19 | useSmoothDeltaTime: 0
20 | maxSmoothUnscaledTime: 0.15
21 | rewindCallbackMode: 0
22 | showUnityEditorReport: 0
23 | logBehaviour: 0
24 | drawGizmos: 1
25 | defaultRecyclable: 0
26 | defaultAutoPlay: 3
27 | defaultUpdateType: 0
28 | defaultTimeScaleIndependent: 0
29 | defaultEaseType: 6
30 | defaultEaseOvershootOrAmplitude: 1.70158
31 | defaultEasePeriod: 0
32 | defaultAutoKill: 1
33 | defaultLoopType: 0
34 | debugMode: 0
35 | debugStoreTargetId: 0
36 | showPreviewPanel: 1
37 | storeSettingsLocation: 0
38 | modules:
39 | showPanel: 0
40 | audioEnabled: 1
41 | physicsEnabled: 1
42 | physics2DEnabled: 1
43 | spriteEnabled: 1
44 | uiEnabled: 1
45 | textMeshProEnabled: 0
46 | tk2DEnabled: 0
47 | showPlayingTweens: 0
48 | showPausedTweens: 0
49 |
--------------------------------------------------------------------------------
/Assets/Resources/DOTweenSettings.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d4512a42b40cd254da4ef5588c37610a
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 0
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: afe5ea4a717cdb1468256a51d1df92d3
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Scripts/Board.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections;
3 | using System.Collections.Generic;
4 | using System.Net.Mime;
5 | using DG.Tweening;
6 | using UnityEngine;
7 | using UnityEngine.Serialization;
8 | using UnityEngine.UI;
9 | using Random = System.Random;
10 |
11 | ///
12 | /// coder by shlifedev(zero is black)
13 | ///
14 | public class Board : MonoBehaviour
15 | {
16 | public enum State
17 | {
18 | WAIT, PROCESSING, END
19 | }
20 |
21 | public State state = State.WAIT;
22 | public static Board Instance
23 | {
24 | get
25 | {
26 | if (_inst == null) _inst = FindObjectOfType();
27 | return _inst;
28 | }
29 | }
30 | private static Board _inst;
31 | public List realNodeList = new List();
32 | public List nodeData = new List();
33 | public Dictionary nodeMap = new Dictionary();
34 | public int col = 4;
35 | public int row = 4;
36 | public GameObject emptyNodePrefab;
37 | public GameObject nodePrefab;
38 | public RectTransform emptyNodeRect;
39 | public RectTransform realNodeRect;
40 |
41 | public void OnGameOver()
42 | {
43 | Debug.Log("Game Over!!!!");
44 | }
45 | private void CreateBoard()
46 | {
47 | /* first initialize empty Node rect*/
48 | realNodeList.Clear();
49 | nodeMap.Clear();
50 | nodeData.Clear();
51 | var emptyChildCount = emptyNodeRect.transform.childCount;
52 | for (int i = 0; i < emptyChildCount; i++)
53 | {
54 | var child = emptyNodeRect.GetChild(i);
55 | }
56 |
57 | /* and, empty node create for get grid point*/
58 | for (int i = 0; i < col; i++)
59 | {
60 | for (int j = 0; j < row; j++)
61 | {
62 | var instantiatePrefab = GameObject.Instantiate(emptyNodePrefab, emptyNodeRect.transform, false);
63 | var point = new Vector2Int(j, i);
64 | //r-d-l-u
65 | Vector2Int left = point - new Vector2Int(1, 0);
66 | Vector2Int down = point - new Vector2Int(0, 1);
67 | Vector2Int right = point + new Vector2Int(1, 0);
68 | Vector2Int up = point + new Vector2Int(0, 1);
69 | Vector2Int?[] v = new Vector2Int?[4];
70 | if (IsValid(right)) v[0] = right;
71 | if (IsValid(down)) v[1] = down;
72 | if (IsValid(left)) v[2] = left;
73 | if (IsValid(up)) v[3] = up;
74 | Node node = new Node(v);
75 | node.point = point;
76 | node.nodeRectObj = instantiatePrefab;
77 | nodeData.Add(node);
78 | instantiatePrefab.name = node.point.ToString();
79 | this.nodeMap.Add(point, node);
80 | }
81 | }
82 | /* grid 정렬 */
83 | LayoutRebuilder.ForceRebuildLayoutImmediate(emptyNodeRect);
84 | foreach (var data in nodeData)
85 | data.position = data.nodeRectObj.GetComponent().localPosition;
86 |
87 |
88 | }
89 |
90 | private bool IsValid(Vector2Int point)
91 | {
92 | if (point.x == -1 || point.x == row || point.y == col || point.y == -1)
93 | return false;
94 |
95 | return true;
96 | }
97 | private void CreateBlock(int x, int y)
98 | {
99 | if (nodeMap[new Vector2Int(x, y)].realNodeObj != null) return;
100 |
101 | GameObject realNodeObj = Instantiate(nodePrefab, realNodeRect.transform, false);
102 | var node = nodeMap[new Vector2Int(x, y)];
103 | var pos = node.position;
104 | realNodeObj.GetComponent().localPosition = pos;
105 | realNodeObj.transform.DOPunchScale(new Vector3(.32f, .32f, .32f), 0.15f, 3);
106 | var nodeObj = realNodeObj.GetComponent();
107 | this.realNodeList.Add(nodeObj);
108 | nodeObj.InitializeFirstValue();
109 | node.value = nodeObj.value;
110 | node.realNodeObj = nodeObj;
111 | }
112 |
113 | public void Combine(Node from, Node to)
114 | {
115 | // Debug.Log($"TRY COMBINE {from.point} , {to.point}");
116 | to.value = to.value * 2;
117 | from.value = null;
118 | if (from.realNodeObj != null)
119 | {
120 | from.realNodeObj.CombineToNode(from, to);
121 | from.realNodeObj = null;
122 | to.combined = true;
123 | }
124 | }
125 |
126 | public void Move(Node from, Node to)
127 | {
128 | // Debug.Log($"TRY MOVE {from.point} , {to.point}");
129 | to.value = from.value;
130 | from.value = null;
131 | if (from.realNodeObj != null)
132 | {
133 | from.realNodeObj.MoveToNode(from, to);
134 | if (from.realNodeObj != null)
135 | {
136 | to.realNodeObj = from.realNodeObj;
137 | from.realNodeObj = null;
138 | Debug.Log(to.realNodeObj != null);
139 | }
140 | }
141 | }
142 |
143 | ///
144 | /// Move Blocks by User Input.
145 | ///
146 | ///
147 | public void MoveTo(Node.Direction dir)
148 | {
149 | if (dir == Node.Direction.RIGHT)
150 | {
151 | for (int j = 0; j < col; j++)
152 | {
153 | for (int i = (row - 2); i >= 0; i--)
154 | {
155 | var node = nodeMap[new Vector2Int(i, j)];
156 | if (node.value == null)
157 | continue;
158 | var right = node.FindTarget(node, Node.Direction.RIGHT);
159 | if (right != null)
160 | {
161 | if (node.value.HasValue && right.value.HasValue)
162 | {
163 | if (node.value == right.value)
164 | {
165 | Combine(node, right);
166 | }
167 | }
168 | else if (right != null && right.value.HasValue == false)
169 | {
170 | Move(node, right);
171 | }
172 | else if (right == null)
173 | return;
174 | }
175 | }
176 | }
177 |
178 | }
179 | if (dir == Node.Direction.LEFT)
180 | {
181 | for (int j = 0; j< col; j ++)
182 | {
183 | for (int i = 1; i < row; i++)
184 | {
185 | var node = nodeMap[new Vector2Int(i, j)];
186 | if (node.value == null)
187 | continue;
188 |
189 | var left = node.FindTarget(node, Node.Direction.LEFT);
190 | if (left != null)
191 | {
192 | if (node.value.HasValue && left.value.HasValue)
193 | {
194 | if (node.value == left.value)
195 | {
196 | Combine(node, left);
197 | }
198 | }
199 | else if (left != null && left.value.HasValue == false)
200 | {
201 | Move(node, left);
202 | }
203 | }
204 | }
205 | }
206 |
207 | }
208 | if (dir == Node.Direction.UP)
209 | {
210 | for (int j = col-2; j >= 0; j --)
211 | {
212 | for (int i = 0; i
280 | /// if can't combine anymore then game over!!!!
281 | ///
282 | ///
283 | public bool IsGameOver()
284 | {
285 | bool gameOver = true;
286 | nodeData.ForEach(x =>
287 | {
288 | for (int i = 0; i < x.linkedNode.Length; i++)
289 | {
290 | if (x.realNodeObj == null) gameOver = false;
291 | if (x.linkedNode[i] == null)
292 | continue;
293 |
294 | var nearNode = nodeMap[x.linkedNode[i].Value];
295 | if(x.value != null && nearNode.value != null)
296 | if (x.value == nearNode.value)
297 | {
298 | gameOver = false;
299 | }
300 | }
301 | });
302 |
303 | return gameOver;
304 | }
305 | private void CreateRandom()
306 | {
307 | var emptys = nodeData.FindAll(x => x.realNodeObj == null);
308 | if (emptys.Count == 0)
309 | {
310 | if (IsGameOver())
311 | {
312 | OnGameOver();;
313 | }
314 | }
315 | else
316 | {
317 | var rand = UnityEngine.Random.Range(0, emptys.Count);
318 | var pt = emptys[rand].point;
319 | CreateBlock(pt.x, pt.y);
320 | }
321 | }
322 | private void Awake()
323 | {
324 | CreateBoard();
325 | }
326 |
327 | public void UpdateState()
328 | {
329 | bool targetAllNull = true;
330 | foreach (var data in realNodeList)
331 | {
332 | if (data.target != null)
333 | {
334 | targetAllNull = false;
335 | break;
336 | }
337 | }
338 |
339 | if (targetAllNull)
340 | {
341 | if (state == State.PROCESSING)
342 | {
343 | var removed = new List();
344 | List removeTarget = new List();
345 | foreach (var data in realNodeList)
346 | if (data.needDestroy)
347 | removeTarget.Add(data);
348 |
349 | removeTarget.ForEach(x =>
350 | {
351 | realNodeList.Remove(x);
352 | GameObject.Destroy(x.gameObject);
353 | });
354 | state = State.END;
355 | }
356 | }
357 |
358 | if (state == State.END)
359 | {
360 | nodeData.ForEach(x => x.combined = false);
361 | // Debug.Log("init nodes, try move!");
362 | state = State.WAIT;
363 | CreateRandom();
364 | }
365 | }
366 |
367 | private void Show()
368 | {
369 | string v = null;
370 | for (int i = col-1; i >= 0; i--)
371 | {
372 | for (int j = 0; j < row; j++)
373 | {
374 | var p = nodeMap[new Vector2Int(j, i)].value;
375 | string t = p.ToString();
376 | if (p.HasValue == false)
377 | {
378 | t = "N";
379 | }
380 | if (p == 0) t = "0";
381 |
382 | v += t + " ";
383 | }
384 | v += "\n";
385 | }
386 | Debug.Log(v);
387 | }
388 | private void Update()
389 | {
390 | UpdateState();
391 | if (state == State.WAIT)
392 | {
393 | if (Input.GetKeyUp(KeyCode.RightArrow)) MoveTo(Node.Direction.RIGHT);
394 | if (Input.GetKeyUp(KeyCode.LeftArrow)) MoveTo(Node.Direction.LEFT);
395 | if (Input.GetKeyUp(KeyCode.UpArrow)) MoveTo(Node.Direction.UP);
396 | if (Input.GetKeyUp(KeyCode.DownArrow)) MoveTo(Node.Direction.DOWN);
397 | }
398 |
399 | if (Input.GetKeyUp(KeyCode.Space))
400 | {
401 | Show();
402 | }
403 | }
404 |
405 | private void Start()
406 | {
407 | CreateRandom();
408 | }
409 | }
410 |
411 |
412 |
--------------------------------------------------------------------------------
/Assets/Scripts/Board.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8ad27aa0605419a4f869a99bafe3b229
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Scripts/Node.cs:
--------------------------------------------------------------------------------
1 |
2 | using System;
3 | using UnityEngine;
4 | using UnityEngine.UI;
5 |
6 | [System.Serializable]
7 | public class Node
8 | {
9 | ///
10 | /// initialize node data, array size must be set '4'
11 | ///
12 | public Node(Vector2Int?[] foundedLinkedNode)
13 | {
14 | linkedNode = foundedLinkedNode;
15 | }
16 | [NonSerialized] public GameObject nodeRectObj;
17 | [NonSerialized] public NodeObject realNodeObj;
18 | public enum Direction
19 | {
20 | RIGHT = 0,
21 | DOWN = 1,
22 | LEFT = 2,
23 | UP = 3
24 | }
25 | public int? value = null;
26 | public Vector2Int point;
27 | public Vector2 position;
28 | public bool combined = false;
29 | public Vector2Int?[] linkedNode = null;
30 | public Node FindTarget(Node originalNode, Direction dir, Node farNode = null)
31 | {
32 | if (linkedNode[(int)dir].HasValue == true)
33 | {
34 | var dirNode = Board.Instance.nodeMap[linkedNode[(int)dir].Value];
35 | // if already combined, return prev block
36 | if (dirNode != null && dirNode.combined)
37 | return this;
38 | // if two value equal return latest finded value.
39 | if (dirNode.value != null && originalNode.value != null)
40 | {
41 | if (dirNode.value == originalNode.value)
42 | return dirNode;
43 |
44 | if (dirNode.value != originalNode.value)
45 | return farNode;
46 | }
47 | return dirNode.FindTarget(originalNode, dir, dirNode);
48 | }
49 | return farNode;
50 | }
51 | }
--------------------------------------------------------------------------------
/Assets/Scripts/Node.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d76ecae4e9ea00b4f9f759d4649bf573
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Scripts/NodeObject.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections;
3 | using System.Collections.Generic;
4 | using DG.Tweening;
5 | using TMPro;
6 | using UnityEngine;
7 | using UnityEngine.Serialization;
8 | using UnityEngine.UI;
9 | using Random = UnityEngine.Random;
10 |
11 | public class NodeObject : MonoBehaviour
12 | {
13 | [NonSerialized] public Node from = null;
14 | [NonSerialized] public Node target = null;
15 | public bool combine = false;
16 | private int m_value;
17 | public int value
18 | {
19 | get => m_value;
20 | set
21 | {
22 | this.m_value = value;
23 | this.valueText.text = value.ToString();
24 | SetColor(value);
25 | }
26 | }
27 |
28 | public Image blockImage;
29 | public TextMeshProUGUI valueText;
30 |
31 | private void SetColor(int value)
32 | {
33 | Color color = new Color(1f, 0.42f, 0.42f);
34 |
35 |
36 | switch (value)
37 | {
38 | case 2:
39 | color = new Color(0.14f, 0.62f, 1f);
40 | break;
41 | case 4:
42 | color = new Color(0.14f, 0.62f, 1f);
43 |
44 | break;
45 | case 8:
46 | color = new Color(1f, 0.45f, 0f);
47 | break;
48 | case 16:
49 | color = new Color(1f, 0.45f, 0f);
50 | break;
51 | case 32:
52 | color = new Color(1f, 0.42f, 0.42f);
53 | break;
54 | case 64:
55 | color = new Color(1f, 0.42f, 0.42f);
56 | break;
57 | case 128:
58 | color = new Color(1f,0.35f, 0.35f);
59 | break;
60 | case 256:
61 | color = new Color(1f,0.35f, 0.35f);
62 | break;
63 | case 512:
64 | color = new Color(1f, 0.15f, 0.15f);
65 | break;
66 | case 1024:
67 | color = new Color(1f, 0.15f, 0.15f);
68 | break;
69 | case 2048:
70 | color = new Color(1f, 0, 0);
71 | break;
72 | case 4096:
73 | color = new Color(1f, 0, 0);
74 | break;
75 | color = Color.black;
76 | break;
77 | }
78 |
79 | blockImage.color = color;
80 | }
81 | public void InitializeFirstValue()
82 | {
83 | int[] v = new int[] {2, 4};
84 | this.value = v[Random.Range(0, v.Length)];
85 | }
86 | public void MoveToNode(Node from, Node to)
87 | {
88 | combine = false;
89 | this.from = from;
90 | this.target = to;
91 | }
92 |
93 | public void CombineToNode(Node from, Node to)
94 | {
95 | combine = true;
96 | this.from = from;
97 | this.target = to;
98 | }
99 | public void OnEndMove()
100 | {
101 | if (target != null)
102 | {
103 | if (combine)
104 | {
105 | target.realNodeObj.value = value * 2;
106 | var t = target.realNodeObj.transform.DOPunchScale(new Vector3(.25f, .25f, .25f), 0.15f, 3);
107 | this.gameObject.SetActive(false);
108 | t.onComplete += () =>
109 | {
110 | this.needDestroy = true;
111 | this.target = null;
112 | this.from = null;
113 | };
114 | }
115 | else
116 | {
117 | this.from = null;
118 | this.target = null;
119 | }
120 | }
121 | }
122 | public bool needDestroy= false;
123 |
124 | public void StartMoveAnimation()
125 | {
126 | if (target != null)
127 | {
128 | this.name = target.point.ToString();
129 | var tween = this.blockImage.rectTransform.DOLocalMove(target.position, 0.1f);
130 | tween.onComplete += () =>
131 | {
132 | OnEndMove();
133 | };
134 | }
135 |
136 | }
137 | public void UpdateMoveAnimation()
138 | {
139 | if (target != null)
140 | {
141 | this.name = target.point.ToString();
142 | var p = Vector2.Lerp(this.transform.localPosition, target.position, 0.35f);
143 | this.transform.localPosition = p;
144 | if (Vector2.Distance(this.transform.localPosition, target.position) < 0.25f)
145 | {
146 | OnEndMove();
147 | }
148 | }
149 | }
150 | }
151 |
--------------------------------------------------------------------------------
/Assets/Scripts/NodeObject.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: db55ea86c83a8b24b8726fa3e67147ed
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/TextMesh Pro.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f54d1bd14bd3ca042bd867b519fee8cc
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Zero is Black
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Packages/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "com.unity.collab-proxy": "1.2.16",
4 | "com.unity.ide.rider": "1.1.4",
5 | "com.unity.ide.vscode": "1.1.4",
6 | "com.unity.test-framework": "1.1.9",
7 | "com.unity.textmeshpro": "2.0.1",
8 | "com.unity.timeline": "1.2.10",
9 | "com.unity.ugui": "1.0.0",
10 | "com.unity.modules.ai": "1.0.0",
11 | "com.unity.modules.androidjni": "1.0.0",
12 | "com.unity.modules.animation": "1.0.0",
13 | "com.unity.modules.assetbundle": "1.0.0",
14 | "com.unity.modules.audio": "1.0.0",
15 | "com.unity.modules.cloth": "1.0.0",
16 | "com.unity.modules.director": "1.0.0",
17 | "com.unity.modules.imageconversion": "1.0.0",
18 | "com.unity.modules.imgui": "1.0.0",
19 | "com.unity.modules.jsonserialize": "1.0.0",
20 | "com.unity.modules.particlesystem": "1.0.0",
21 | "com.unity.modules.physics": "1.0.0",
22 | "com.unity.modules.physics2d": "1.0.0",
23 | "com.unity.modules.screencapture": "1.0.0",
24 | "com.unity.modules.terrain": "1.0.0",
25 | "com.unity.modules.terrainphysics": "1.0.0",
26 | "com.unity.modules.tilemap": "1.0.0",
27 | "com.unity.modules.ui": "1.0.0",
28 | "com.unity.modules.uielements": "1.0.0",
29 | "com.unity.modules.umbra": "1.0.0",
30 | "com.unity.modules.unityanalytics": "1.0.0",
31 | "com.unity.modules.unitywebrequest": "1.0.0",
32 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
33 | "com.unity.modules.unitywebrequestaudio": "1.0.0",
34 | "com.unity.modules.unitywebrequesttexture": "1.0.0",
35 | "com.unity.modules.unitywebrequestwww": "1.0.0",
36 | "com.unity.modules.vehicles": "1.0.0",
37 | "com.unity.modules.video": "1.0.0",
38 | "com.unity.modules.vr": "1.0.0",
39 | "com.unity.modules.wind": "1.0.0",
40 | "com.unity.modules.xr": "1.0.0"
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/ProjectSettings/AudioManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!11 &1
4 | AudioManager:
5 | m_ObjectHideFlags: 0
6 | m_Volume: 1
7 | Rolloff Scale: 1
8 | Doppler Factor: 1
9 | Default Speaker Mode: 2
10 | m_SampleRate: 0
11 | m_DSPBufferSize: 1024
12 | m_VirtualVoiceCount: 512
13 | m_RealVoiceCount: 32
14 | m_SpatializerPlugin:
15 | m_AmbisonicDecoderPlugin:
16 | m_DisableAudio: 0
17 | m_VirtualizeEffects: 1
18 |
--------------------------------------------------------------------------------
/ProjectSettings/ClusterInputManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!236 &1
4 | ClusterInputManager:
5 | m_ObjectHideFlags: 0
6 | m_Inputs: []
7 |
--------------------------------------------------------------------------------
/ProjectSettings/DynamicsManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!55 &1
4 | PhysicsManager:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 7
7 | m_Gravity: {x: 0, y: -9.81, z: 0}
8 | m_DefaultMaterial: {fileID: 0}
9 | m_BounceThreshold: 2
10 | m_SleepThreshold: 0.005
11 | m_DefaultContactOffset: 0.01
12 | m_DefaultSolverIterations: 6
13 | m_DefaultSolverVelocityIterations: 1
14 | m_QueriesHitBackfaces: 0
15 | m_QueriesHitTriggers: 1
16 | m_EnableAdaptiveForce: 0
17 | m_ClothInterCollisionDistance: 0
18 | m_ClothInterCollisionStiffness: 0
19 | m_ContactsGeneration: 1
20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
21 | m_AutoSimulation: 1
22 | m_AutoSyncTransforms: 0
23 | m_ReuseCollisionCallbacks: 1
24 | m_ClothInterCollisionSettingsToggle: 0
25 | m_ContactPairsMode: 0
26 | m_BroadphaseType: 0
27 | m_WorldBounds:
28 | m_Center: {x: 0, y: 0, z: 0}
29 | m_Extent: {x: 250, y: 250, z: 250}
30 | m_WorldSubdivisions: 8
31 |
--------------------------------------------------------------------------------
/ProjectSettings/EditorBuildSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1045 &1
4 | EditorBuildSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_Scenes:
8 | - enabled: 1
9 | path: Assets/Scenes/SampleScene.unity
10 | guid: 2cda990e2423bbf4892e6590ba056729
11 | m_configObjects: {}
12 |
--------------------------------------------------------------------------------
/ProjectSettings/EditorSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!159 &1
4 | EditorSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 9
7 | m_ExternalVersionControlSupport: Visible Meta Files
8 | m_SerializationMode: 2
9 | m_LineEndingsForNewScripts: 0
10 | m_DefaultBehaviorMode: 1
11 | m_PrefabRegularEnvironment: {fileID: 0}
12 | m_PrefabUIEnvironment: {fileID: 0}
13 | m_SpritePackerMode: 4
14 | m_SpritePackerPaddingPower: 1
15 | m_EtcTextureCompressorBehavior: 1
16 | m_EtcTextureFastCompressor: 1
17 | m_EtcTextureNormalCompressor: 2
18 | m_EtcTextureBestCompressor: 4
19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmref
20 | m_ProjectGenerationRootNamespace:
21 | m_CollabEditorSettings:
22 | inProgressEnabled: 1
23 | m_EnableTextureStreamingInEditMode: 1
24 | m_EnableTextureStreamingInPlayMode: 1
25 | m_AsyncShaderCompilation: 1
26 | m_EnterPlayModeOptionsEnabled: 0
27 | m_EnterPlayModeOptions: 3
28 | m_ShowLightmapResolutionOverlay: 1
29 | m_UseLegacyProbeSampleCount: 1
30 | m_AssetPipelineMode: 1
31 | m_CacheServerMode: 0
32 | m_CacheServerEndpoint:
33 | m_CacheServerNamespacePrefix: default
34 | m_CacheServerEnableDownload: 1
35 | m_CacheServerEnableUpload: 1
36 |
--------------------------------------------------------------------------------
/ProjectSettings/GraphicsSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!30 &1
4 | GraphicsSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 12
7 | m_Deferred:
8 | m_Mode: 1
9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
10 | m_DeferredReflections:
11 | m_Mode: 1
12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0}
13 | m_ScreenSpaceShadows:
14 | m_Mode: 1
15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
16 | m_LegacyDeferred:
17 | m_Mode: 1
18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}
19 | m_DepthNormals:
20 | m_Mode: 1
21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
22 | m_MotionVectors:
23 | m_Mode: 1
24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}
25 | m_LightHalo:
26 | m_Mode: 1
27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}
28 | m_LensFlare:
29 | m_Mode: 1
30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}
31 | m_AlwaysIncludedShaders:
32 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
33 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
34 | m_PreloadedShaders: []
35 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
36 | type: 0}
37 | m_CustomRenderPipeline: {fileID: 0}
38 | m_TransparencySortMode: 0
39 | m_TransparencySortAxis: {x: 0, y: 0, z: 1}
40 | m_DefaultRenderingPath: 1
41 | m_DefaultMobileRenderingPath: 1
42 | m_TierSettings: []
43 | m_LightmapStripping: 0
44 | m_FogStripping: 0
45 | m_InstancingStripping: 0
46 | m_LightmapKeepPlain: 1
47 | m_LightmapKeepDirCombined: 1
48 | m_LightmapKeepDynamicPlain: 1
49 | m_LightmapKeepDynamicDirCombined: 1
50 | m_LightmapKeepShadowMask: 1
51 | m_LightmapKeepSubtractive: 1
52 | m_FogKeepLinear: 1
53 | m_FogKeepExp: 1
54 | m_FogKeepExp2: 1
55 | m_AlbedoSwatchInfos: []
56 | m_LightsUseLinearIntensity: 0
57 | m_LightsUseColorTemperature: 0
58 |
--------------------------------------------------------------------------------
/ProjectSettings/InputManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!13 &1
4 | InputManager:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_Axes:
8 | - serializedVersion: 3
9 | m_Name: Horizontal
10 | descriptiveName:
11 | descriptiveNegativeName:
12 | negativeButton: left
13 | positiveButton: right
14 | altNegativeButton: a
15 | altPositiveButton: d
16 | gravity: 3
17 | dead: 0.001
18 | sensitivity: 3
19 | snap: 1
20 | invert: 0
21 | type: 0
22 | axis: 0
23 | joyNum: 0
24 | - serializedVersion: 3
25 | m_Name: Vertical
26 | descriptiveName:
27 | descriptiveNegativeName:
28 | negativeButton: down
29 | positiveButton: up
30 | altNegativeButton: s
31 | altPositiveButton: w
32 | gravity: 3
33 | dead: 0.001
34 | sensitivity: 3
35 | snap: 1
36 | invert: 0
37 | type: 0
38 | axis: 0
39 | joyNum: 0
40 | - serializedVersion: 3
41 | m_Name: Fire1
42 | descriptiveName:
43 | descriptiveNegativeName:
44 | negativeButton:
45 | positiveButton: left ctrl
46 | altNegativeButton:
47 | altPositiveButton: mouse 0
48 | gravity: 1000
49 | dead: 0.001
50 | sensitivity: 1000
51 | snap: 0
52 | invert: 0
53 | type: 0
54 | axis: 0
55 | joyNum: 0
56 | - serializedVersion: 3
57 | m_Name: Fire2
58 | descriptiveName:
59 | descriptiveNegativeName:
60 | negativeButton:
61 | positiveButton: left alt
62 | altNegativeButton:
63 | altPositiveButton: mouse 1
64 | gravity: 1000
65 | dead: 0.001
66 | sensitivity: 1000
67 | snap: 0
68 | invert: 0
69 | type: 0
70 | axis: 0
71 | joyNum: 0
72 | - serializedVersion: 3
73 | m_Name: Fire3
74 | descriptiveName:
75 | descriptiveNegativeName:
76 | negativeButton:
77 | positiveButton: left shift
78 | altNegativeButton:
79 | altPositiveButton: mouse 2
80 | gravity: 1000
81 | dead: 0.001
82 | sensitivity: 1000
83 | snap: 0
84 | invert: 0
85 | type: 0
86 | axis: 0
87 | joyNum: 0
88 | - serializedVersion: 3
89 | m_Name: Jump
90 | descriptiveName:
91 | descriptiveNegativeName:
92 | negativeButton:
93 | positiveButton: space
94 | altNegativeButton:
95 | altPositiveButton:
96 | gravity: 1000
97 | dead: 0.001
98 | sensitivity: 1000
99 | snap: 0
100 | invert: 0
101 | type: 0
102 | axis: 0
103 | joyNum: 0
104 | - serializedVersion: 3
105 | m_Name: Mouse X
106 | descriptiveName:
107 | descriptiveNegativeName:
108 | negativeButton:
109 | positiveButton:
110 | altNegativeButton:
111 | altPositiveButton:
112 | gravity: 0
113 | dead: 0
114 | sensitivity: 0.1
115 | snap: 0
116 | invert: 0
117 | type: 1
118 | axis: 0
119 | joyNum: 0
120 | - serializedVersion: 3
121 | m_Name: Mouse Y
122 | descriptiveName:
123 | descriptiveNegativeName:
124 | negativeButton:
125 | positiveButton:
126 | altNegativeButton:
127 | altPositiveButton:
128 | gravity: 0
129 | dead: 0
130 | sensitivity: 0.1
131 | snap: 0
132 | invert: 0
133 | type: 1
134 | axis: 1
135 | joyNum: 0
136 | - serializedVersion: 3
137 | m_Name: Mouse ScrollWheel
138 | descriptiveName:
139 | descriptiveNegativeName:
140 | negativeButton:
141 | positiveButton:
142 | altNegativeButton:
143 | altPositiveButton:
144 | gravity: 0
145 | dead: 0
146 | sensitivity: 0.1
147 | snap: 0
148 | invert: 0
149 | type: 1
150 | axis: 2
151 | joyNum: 0
152 | - serializedVersion: 3
153 | m_Name: Horizontal
154 | descriptiveName:
155 | descriptiveNegativeName:
156 | negativeButton:
157 | positiveButton:
158 | altNegativeButton:
159 | altPositiveButton:
160 | gravity: 0
161 | dead: 0.19
162 | sensitivity: 1
163 | snap: 0
164 | invert: 0
165 | type: 2
166 | axis: 0
167 | joyNum: 0
168 | - serializedVersion: 3
169 | m_Name: Vertical
170 | descriptiveName:
171 | descriptiveNegativeName:
172 | negativeButton:
173 | positiveButton:
174 | altNegativeButton:
175 | altPositiveButton:
176 | gravity: 0
177 | dead: 0.19
178 | sensitivity: 1
179 | snap: 0
180 | invert: 1
181 | type: 2
182 | axis: 1
183 | joyNum: 0
184 | - serializedVersion: 3
185 | m_Name: Fire1
186 | descriptiveName:
187 | descriptiveNegativeName:
188 | negativeButton:
189 | positiveButton: joystick button 0
190 | altNegativeButton:
191 | altPositiveButton:
192 | gravity: 1000
193 | dead: 0.001
194 | sensitivity: 1000
195 | snap: 0
196 | invert: 0
197 | type: 0
198 | axis: 0
199 | joyNum: 0
200 | - serializedVersion: 3
201 | m_Name: Fire2
202 | descriptiveName:
203 | descriptiveNegativeName:
204 | negativeButton:
205 | positiveButton: joystick button 1
206 | altNegativeButton:
207 | altPositiveButton:
208 | gravity: 1000
209 | dead: 0.001
210 | sensitivity: 1000
211 | snap: 0
212 | invert: 0
213 | type: 0
214 | axis: 0
215 | joyNum: 0
216 | - serializedVersion: 3
217 | m_Name: Fire3
218 | descriptiveName:
219 | descriptiveNegativeName:
220 | negativeButton:
221 | positiveButton: joystick button 2
222 | altNegativeButton:
223 | altPositiveButton:
224 | gravity: 1000
225 | dead: 0.001
226 | sensitivity: 1000
227 | snap: 0
228 | invert: 0
229 | type: 0
230 | axis: 0
231 | joyNum: 0
232 | - serializedVersion: 3
233 | m_Name: Jump
234 | descriptiveName:
235 | descriptiveNegativeName:
236 | negativeButton:
237 | positiveButton: joystick button 3
238 | altNegativeButton:
239 | altPositiveButton:
240 | gravity: 1000
241 | dead: 0.001
242 | sensitivity: 1000
243 | snap: 0
244 | invert: 0
245 | type: 0
246 | axis: 0
247 | joyNum: 0
248 | - serializedVersion: 3
249 | m_Name: Submit
250 | descriptiveName:
251 | descriptiveNegativeName:
252 | negativeButton:
253 | positiveButton: return
254 | altNegativeButton:
255 | altPositiveButton: joystick button 0
256 | gravity: 1000
257 | dead: 0.001
258 | sensitivity: 1000
259 | snap: 0
260 | invert: 0
261 | type: 0
262 | axis: 0
263 | joyNum: 0
264 | - serializedVersion: 3
265 | m_Name: Submit
266 | descriptiveName:
267 | descriptiveNegativeName:
268 | negativeButton:
269 | positiveButton: enter
270 | altNegativeButton:
271 | altPositiveButton: space
272 | gravity: 1000
273 | dead: 0.001
274 | sensitivity: 1000
275 | snap: 0
276 | invert: 0
277 | type: 0
278 | axis: 0
279 | joyNum: 0
280 | - serializedVersion: 3
281 | m_Name: Cancel
282 | descriptiveName:
283 | descriptiveNegativeName:
284 | negativeButton:
285 | positiveButton: escape
286 | altNegativeButton:
287 | altPositiveButton: joystick button 1
288 | gravity: 1000
289 | dead: 0.001
290 | sensitivity: 1000
291 | snap: 0
292 | invert: 0
293 | type: 0
294 | axis: 0
295 | joyNum: 0
296 |
--------------------------------------------------------------------------------
/ProjectSettings/NavMeshAreas.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!126 &1
4 | NavMeshProjectSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | areas:
8 | - name: Walkable
9 | cost: 1
10 | - name: Not Walkable
11 | cost: 1
12 | - name: Jump
13 | cost: 2
14 | - name:
15 | cost: 1
16 | - name:
17 | cost: 1
18 | - name:
19 | cost: 1
20 | - name:
21 | cost: 1
22 | - name:
23 | cost: 1
24 | - name:
25 | cost: 1
26 | - name:
27 | cost: 1
28 | - name:
29 | cost: 1
30 | - name:
31 | cost: 1
32 | - name:
33 | cost: 1
34 | - name:
35 | cost: 1
36 | - name:
37 | cost: 1
38 | - name:
39 | cost: 1
40 | - name:
41 | cost: 1
42 | - name:
43 | cost: 1
44 | - name:
45 | cost: 1
46 | - name:
47 | cost: 1
48 | - name:
49 | cost: 1
50 | - name:
51 | cost: 1
52 | - name:
53 | cost: 1
54 | - name:
55 | cost: 1
56 | - name:
57 | cost: 1
58 | - name:
59 | cost: 1
60 | - name:
61 | cost: 1
62 | - name:
63 | cost: 1
64 | - name:
65 | cost: 1
66 | - name:
67 | cost: 1
68 | - name:
69 | cost: 1
70 | - name:
71 | cost: 1
72 | m_LastAgentTypeID: -887442657
73 | m_Settings:
74 | - serializedVersion: 2
75 | agentTypeID: 0
76 | agentRadius: 0.5
77 | agentHeight: 2
78 | agentSlope: 45
79 | agentClimb: 0.75
80 | ledgeDropHeight: 0
81 | maxJumpAcrossDistance: 0
82 | minRegionArea: 2
83 | manualCellSize: 0
84 | cellSize: 0.16666667
85 | manualTileSize: 0
86 | tileSize: 256
87 | accuratePlacement: 0
88 | debug:
89 | m_Flags: 0
90 | m_SettingNames:
91 | - Humanoid
92 |
--------------------------------------------------------------------------------
/ProjectSettings/NetworkManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!149 &1
4 | NetworkManager:
5 | m_ObjectHideFlags: 0
6 | m_DebugLevel: 0
7 | m_Sendrate: 15
8 | m_AssetToPrefab: {}
9 |
--------------------------------------------------------------------------------
/ProjectSettings/Physics2DSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!19 &1
4 | Physics2DSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 4
7 | m_Gravity: {x: 0, y: -9.81}
8 | m_DefaultMaterial: {fileID: 0}
9 | m_VelocityIterations: 8
10 | m_PositionIterations: 3
11 | m_VelocityThreshold: 1
12 | m_MaxLinearCorrection: 0.2
13 | m_MaxAngularCorrection: 8
14 | m_MaxTranslationSpeed: 100
15 | m_MaxRotationSpeed: 360
16 | m_BaumgarteScale: 0.2
17 | m_BaumgarteTimeOfImpactScale: 0.75
18 | m_TimeToSleep: 0.5
19 | m_LinearSleepTolerance: 0.01
20 | m_AngularSleepTolerance: 2
21 | m_DefaultContactOffset: 0.01
22 | m_JobOptions:
23 | serializedVersion: 2
24 | useMultithreading: 0
25 | useConsistencySorting: 0
26 | m_InterpolationPosesPerJob: 100
27 | m_NewContactsPerJob: 30
28 | m_CollideContactsPerJob: 100
29 | m_ClearFlagsPerJob: 200
30 | m_ClearBodyForcesPerJob: 200
31 | m_SyncDiscreteFixturesPerJob: 50
32 | m_SyncContinuousFixturesPerJob: 50
33 | m_FindNearestContactsPerJob: 100
34 | m_UpdateTriggerContactsPerJob: 100
35 | m_IslandSolverCostThreshold: 100
36 | m_IslandSolverBodyCostScale: 1
37 | m_IslandSolverContactCostScale: 10
38 | m_IslandSolverJointCostScale: 10
39 | m_IslandSolverBodiesPerJob: 50
40 | m_IslandSolverContactsPerJob: 50
41 | m_AutoSimulation: 1
42 | m_QueriesHitTriggers: 1
43 | m_QueriesStartInColliders: 1
44 | m_CallbacksOnDisable: 1
45 | m_ReuseCollisionCallbacks: 1
46 | m_AutoSyncTransforms: 0
47 | m_AlwaysShowColliders: 0
48 | m_ShowColliderSleep: 1
49 | m_ShowColliderContacts: 0
50 | m_ShowColliderAABB: 0
51 | m_ContactArrowScale: 0.2
52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
57 |
--------------------------------------------------------------------------------
/ProjectSettings/PresetManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1386491679 &1
4 | PresetManager:
5 | m_ObjectHideFlags: 0
6 | m_DefaultList: []
7 |
--------------------------------------------------------------------------------
/ProjectSettings/ProjectSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!129 &1
4 | PlayerSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 20
7 | productGUID: 5c25e9e8c0ef4eb42875e0dc8022bb34
8 | AndroidProfiler: 0
9 | AndroidFilterTouchesWhenObscured: 0
10 | AndroidEnableSustainedPerformanceMode: 0
11 | defaultScreenOrientation: 4
12 | targetDevice: 2
13 | useOnDemandResources: 0
14 | accelerometerFrequency: 60
15 | companyName: DefaultCompany
16 | productName: Proto
17 | defaultCursor: {fileID: 0}
18 | cursorHotspot: {x: 0, y: 0}
19 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1}
20 | m_ShowUnitySplashScreen: 1
21 | m_ShowUnitySplashLogo: 1
22 | m_SplashScreenOverlayOpacity: 1
23 | m_SplashScreenAnimation: 1
24 | m_SplashScreenLogoStyle: 1
25 | m_SplashScreenDrawMode: 0
26 | m_SplashScreenBackgroundAnimationZoom: 1
27 | m_SplashScreenLogoAnimationZoom: 1
28 | m_SplashScreenBackgroundLandscapeAspect: 1
29 | m_SplashScreenBackgroundPortraitAspect: 1
30 | m_SplashScreenBackgroundLandscapeUvs:
31 | serializedVersion: 2
32 | x: 0
33 | y: 0
34 | width: 1
35 | height: 1
36 | m_SplashScreenBackgroundPortraitUvs:
37 | serializedVersion: 2
38 | x: 0
39 | y: 0
40 | width: 1
41 | height: 1
42 | m_SplashScreenLogos: []
43 | m_VirtualRealitySplashScreen: {fileID: 0}
44 | m_HolographicTrackingLossScreen: {fileID: 0}
45 | defaultScreenWidth: 1024
46 | defaultScreenHeight: 768
47 | defaultScreenWidthWeb: 960
48 | defaultScreenHeightWeb: 600
49 | m_StereoRenderingPath: 0
50 | m_ActiveColorSpace: 0
51 | m_MTRendering: 1
52 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000
53 | iosShowActivityIndicatorOnLoading: -1
54 | androidShowActivityIndicatorOnLoading: -1
55 | iosUseCustomAppBackgroundBehavior: 0
56 | iosAllowHTTPDownload: 1
57 | allowedAutorotateToPortrait: 1
58 | allowedAutorotateToPortraitUpsideDown: 1
59 | allowedAutorotateToLandscapeRight: 1
60 | allowedAutorotateToLandscapeLeft: 1
61 | useOSAutorotation: 1
62 | use32BitDisplayBuffer: 1
63 | preserveFramebufferAlpha: 0
64 | disableDepthAndStencilBuffers: 0
65 | androidStartInFullscreen: 1
66 | androidRenderOutsideSafeArea: 1
67 | androidUseSwappy: 0
68 | androidBlitType: 0
69 | defaultIsNativeResolution: 1
70 | macRetinaSupport: 1
71 | runInBackground: 1
72 | captureSingleScreen: 0
73 | muteOtherAudioSources: 0
74 | Prepare IOS For Recording: 0
75 | Force IOS Speakers When Recording: 0
76 | deferSystemGesturesMode: 0
77 | hideHomeButton: 0
78 | submitAnalytics: 1
79 | usePlayerLog: 1
80 | bakeCollisionMeshes: 0
81 | forceSingleInstance: 0
82 | useFlipModelSwapchain: 1
83 | resizableWindow: 0
84 | useMacAppStoreValidation: 0
85 | macAppStoreCategory: public.app-category.games
86 | gpuSkinning: 0
87 | xboxPIXTextureCapture: 0
88 | xboxEnableAvatar: 0
89 | xboxEnableKinect: 0
90 | xboxEnableKinectAutoTracking: 0
91 | xboxEnableFitness: 0
92 | visibleInBackground: 1
93 | allowFullscreenSwitch: 1
94 | fullscreenMode: 1
95 | xboxSpeechDB: 0
96 | xboxEnableHeadOrientation: 0
97 | xboxEnableGuest: 0
98 | xboxEnablePIXSampling: 0
99 | metalFramebufferOnly: 0
100 | xboxOneResolution: 0
101 | xboxOneSResolution: 0
102 | xboxOneXResolution: 3
103 | xboxOneMonoLoggingLevel: 0
104 | xboxOneLoggingLevel: 1
105 | xboxOneDisableEsram: 0
106 | xboxOnePresentImmediateThreshold: 0
107 | switchQueueCommandMemory: 0
108 | switchQueueControlMemory: 16384
109 | switchQueueComputeMemory: 262144
110 | switchNVNShaderPoolsGranularity: 33554432
111 | switchNVNDefaultPoolsGranularity: 16777216
112 | switchNVNOtherPoolsGranularity: 16777216
113 | vulkanNumSwapchainBuffers: 3
114 | vulkanEnableSetSRGBWrite: 0
115 | m_SupportedAspectRatios:
116 | 4:3: 1
117 | 5:4: 1
118 | 16:10: 1
119 | 16:9: 1
120 | Others: 1
121 | bundleVersion: 0.1
122 | preloadedAssets: []
123 | metroInputSource: 0
124 | wsaTransparentSwapchain: 0
125 | m_HolographicPauseOnTrackingLoss: 1
126 | xboxOneDisableKinectGpuReservation: 1
127 | xboxOneEnable7thCore: 1
128 | vrSettings:
129 | cardboard:
130 | depthFormat: 0
131 | enableTransitionView: 0
132 | daydream:
133 | depthFormat: 0
134 | useSustainedPerformanceMode: 0
135 | enableVideoLayer: 0
136 | useProtectedVideoMemory: 0
137 | minimumSupportedHeadTracking: 0
138 | maximumSupportedHeadTracking: 1
139 | hololens:
140 | depthFormat: 1
141 | depthBufferSharingEnabled: 1
142 | lumin:
143 | depthFormat: 0
144 | frameTiming: 2
145 | enableGLCache: 0
146 | glCacheMaxBlobSize: 524288
147 | glCacheMaxFileSize: 8388608
148 | oculus:
149 | sharedDepthBuffer: 1
150 | dashSupport: 1
151 | lowOverheadMode: 0
152 | protectedContext: 0
153 | v2Signing: 1
154 | enable360StereoCapture: 0
155 | isWsaHolographicRemotingEnabled: 0
156 | enableFrameTimingStats: 0
157 | useHDRDisplay: 0
158 | D3DHDRBitDepth: 0
159 | m_ColorGamuts: 00000000
160 | targetPixelDensity: 30
161 | resolutionScalingMode: 0
162 | androidSupportedAspectRatio: 1
163 | androidMaxAspectRatio: 2.1
164 | applicationIdentifier:
165 | Standalone: com.Company.ProductName
166 | buildNumber: {}
167 | AndroidBundleVersionCode: 1
168 | AndroidMinSdkVersion: 19
169 | AndroidTargetSdkVersion: 0
170 | AndroidPreferredInstallLocation: 1
171 | aotOptions:
172 | stripEngineCode: 1
173 | iPhoneStrippingLevel: 0
174 | iPhoneScriptCallOptimization: 0
175 | ForceInternetPermission: 0
176 | ForceSDCardPermission: 0
177 | CreateWallpaper: 0
178 | APKExpansionFiles: 0
179 | keepLoadedShadersAlive: 0
180 | StripUnusedMeshComponents: 1
181 | VertexChannelCompressionMask: 4054
182 | iPhoneSdkVersion: 988
183 | iOSTargetOSVersionString: 10.0
184 | tvOSSdkVersion: 0
185 | tvOSRequireExtendedGameController: 0
186 | tvOSTargetOSVersionString: 10.0
187 | uIPrerenderedIcon: 0
188 | uIRequiresPersistentWiFi: 0
189 | uIRequiresFullScreen: 1
190 | uIStatusBarHidden: 1
191 | uIExitOnSuspend: 0
192 | uIStatusBarStyle: 0
193 | iPhoneSplashScreen: {fileID: 0}
194 | iPhoneHighResSplashScreen: {fileID: 0}
195 | iPhoneTallHighResSplashScreen: {fileID: 0}
196 | iPhone47inSplashScreen: {fileID: 0}
197 | iPhone55inPortraitSplashScreen: {fileID: 0}
198 | iPhone55inLandscapeSplashScreen: {fileID: 0}
199 | iPhone58inPortraitSplashScreen: {fileID: 0}
200 | iPhone58inLandscapeSplashScreen: {fileID: 0}
201 | iPadPortraitSplashScreen: {fileID: 0}
202 | iPadHighResPortraitSplashScreen: {fileID: 0}
203 | iPadLandscapeSplashScreen: {fileID: 0}
204 | iPadHighResLandscapeSplashScreen: {fileID: 0}
205 | iPhone65inPortraitSplashScreen: {fileID: 0}
206 | iPhone65inLandscapeSplashScreen: {fileID: 0}
207 | iPhone61inPortraitSplashScreen: {fileID: 0}
208 | iPhone61inLandscapeSplashScreen: {fileID: 0}
209 | appleTVSplashScreen: {fileID: 0}
210 | appleTVSplashScreen2x: {fileID: 0}
211 | tvOSSmallIconLayers: []
212 | tvOSSmallIconLayers2x: []
213 | tvOSLargeIconLayers: []
214 | tvOSLargeIconLayers2x: []
215 | tvOSTopShelfImageLayers: []
216 | tvOSTopShelfImageLayers2x: []
217 | tvOSTopShelfImageWideLayers: []
218 | tvOSTopShelfImageWideLayers2x: []
219 | iOSLaunchScreenType: 0
220 | iOSLaunchScreenPortrait: {fileID: 0}
221 | iOSLaunchScreenLandscape: {fileID: 0}
222 | iOSLaunchScreenBackgroundColor:
223 | serializedVersion: 2
224 | rgba: 0
225 | iOSLaunchScreenFillPct: 100
226 | iOSLaunchScreenSize: 100
227 | iOSLaunchScreenCustomXibPath:
228 | iOSLaunchScreeniPadType: 0
229 | iOSLaunchScreeniPadImage: {fileID: 0}
230 | iOSLaunchScreeniPadBackgroundColor:
231 | serializedVersion: 2
232 | rgba: 0
233 | iOSLaunchScreeniPadFillPct: 100
234 | iOSLaunchScreeniPadSize: 100
235 | iOSLaunchScreeniPadCustomXibPath:
236 | iOSUseLaunchScreenStoryboard: 0
237 | iOSLaunchScreenCustomStoryboardPath:
238 | iOSDeviceRequirements: []
239 | iOSURLSchemes: []
240 | iOSBackgroundModes: 0
241 | iOSMetalForceHardShadows: 0
242 | metalEditorSupport: 1
243 | metalAPIValidation: 1
244 | iOSRenderExtraFrameOnPause: 0
245 | appleDeveloperTeamID:
246 | iOSManualSigningProvisioningProfileID:
247 | tvOSManualSigningProvisioningProfileID:
248 | iOSManualSigningProvisioningProfileType: 0
249 | tvOSManualSigningProvisioningProfileType: 0
250 | appleEnableAutomaticSigning: 0
251 | iOSRequireARKit: 0
252 | iOSAutomaticallyDetectAndAddCapabilities: 1
253 | appleEnableProMotion: 0
254 | clonedFromGUID: 5f34be1353de5cf4398729fda238591b
255 | templatePackageId: com.unity.template.2d@3.2.5
256 | templateDefaultScene: Assets/Scenes/SampleScene.unity
257 | AndroidTargetArchitectures: 1
258 | AndroidSplashScreenScale: 0
259 | androidSplashScreen: {fileID: 0}
260 | AndroidKeystoreName:
261 | AndroidKeyaliasName:
262 | AndroidBuildApkPerCpuArchitecture: 0
263 | AndroidTVCompatibility: 0
264 | AndroidIsGame: 1
265 | AndroidEnableTango: 0
266 | androidEnableBanner: 1
267 | androidUseLowAccuracyLocation: 0
268 | androidUseCustomKeystore: 0
269 | m_AndroidBanners:
270 | - width: 320
271 | height: 180
272 | banner: {fileID: 0}
273 | androidGamepadSupportLevel: 0
274 | AndroidValidateAppBundleSize: 1
275 | AndroidAppBundleSizeToValidate: 150
276 | m_BuildTargetIcons: []
277 | m_BuildTargetPlatformIcons: []
278 | m_BuildTargetBatching: []
279 | m_BuildTargetGraphicsJobs:
280 | - m_BuildTarget: MacStandaloneSupport
281 | m_GraphicsJobs: 0
282 | - m_BuildTarget: Switch
283 | m_GraphicsJobs: 0
284 | - m_BuildTarget: MetroSupport
285 | m_GraphicsJobs: 0
286 | - m_BuildTarget: AppleTVSupport
287 | m_GraphicsJobs: 0
288 | - m_BuildTarget: BJMSupport
289 | m_GraphicsJobs: 0
290 | - m_BuildTarget: LinuxStandaloneSupport
291 | m_GraphicsJobs: 0
292 | - m_BuildTarget: PS4Player
293 | m_GraphicsJobs: 0
294 | - m_BuildTarget: iOSSupport
295 | m_GraphicsJobs: 0
296 | - m_BuildTarget: WindowsStandaloneSupport
297 | m_GraphicsJobs: 0
298 | - m_BuildTarget: XboxOnePlayer
299 | m_GraphicsJobs: 0
300 | - m_BuildTarget: LuminSupport
301 | m_GraphicsJobs: 0
302 | - m_BuildTarget: AndroidPlayer
303 | m_GraphicsJobs: 0
304 | - m_BuildTarget: WebGLSupport
305 | m_GraphicsJobs: 0
306 | m_BuildTargetGraphicsJobMode:
307 | - m_BuildTarget: PS4Player
308 | m_GraphicsJobMode: 0
309 | - m_BuildTarget: XboxOnePlayer
310 | m_GraphicsJobMode: 0
311 | m_BuildTargetGraphicsAPIs:
312 | - m_BuildTarget: AndroidPlayer
313 | m_APIs: 150000000b000000
314 | m_Automatic: 0
315 | m_BuildTargetVRSettings: []
316 | openGLRequireES31: 0
317 | openGLRequireES31AEP: 0
318 | openGLRequireES32: 0
319 | m_TemplateCustomTags: {}
320 | mobileMTRendering:
321 | Android: 1
322 | iPhone: 1
323 | tvOS: 1
324 | m_BuildTargetGroupLightmapEncodingQuality: []
325 | m_BuildTargetGroupLightmapSettings: []
326 | playModeTestRunnerEnabled: 0
327 | runPlayModeTestAsEditModeTest: 0
328 | actionOnDotNetUnhandledException: 1
329 | enableInternalProfiler: 0
330 | logObjCUncaughtExceptions: 1
331 | enableCrashReportAPI: 0
332 | cameraUsageDescription:
333 | locationUsageDescription:
334 | microphoneUsageDescription:
335 | switchNetLibKey:
336 | switchSocketMemoryPoolSize: 6144
337 | switchSocketAllocatorPoolSize: 128
338 | switchSocketConcurrencyLimit: 14
339 | switchScreenResolutionBehavior: 2
340 | switchUseCPUProfiler: 0
341 | switchApplicationID: 0x01004b9000490000
342 | switchNSODependencies:
343 | switchTitleNames_0:
344 | switchTitleNames_1:
345 | switchTitleNames_2:
346 | switchTitleNames_3:
347 | switchTitleNames_4:
348 | switchTitleNames_5:
349 | switchTitleNames_6:
350 | switchTitleNames_7:
351 | switchTitleNames_8:
352 | switchTitleNames_9:
353 | switchTitleNames_10:
354 | switchTitleNames_11:
355 | switchTitleNames_12:
356 | switchTitleNames_13:
357 | switchTitleNames_14:
358 | switchPublisherNames_0:
359 | switchPublisherNames_1:
360 | switchPublisherNames_2:
361 | switchPublisherNames_3:
362 | switchPublisherNames_4:
363 | switchPublisherNames_5:
364 | switchPublisherNames_6:
365 | switchPublisherNames_7:
366 | switchPublisherNames_8:
367 | switchPublisherNames_9:
368 | switchPublisherNames_10:
369 | switchPublisherNames_11:
370 | switchPublisherNames_12:
371 | switchPublisherNames_13:
372 | switchPublisherNames_14:
373 | switchIcons_0: {fileID: 0}
374 | switchIcons_1: {fileID: 0}
375 | switchIcons_2: {fileID: 0}
376 | switchIcons_3: {fileID: 0}
377 | switchIcons_4: {fileID: 0}
378 | switchIcons_5: {fileID: 0}
379 | switchIcons_6: {fileID: 0}
380 | switchIcons_7: {fileID: 0}
381 | switchIcons_8: {fileID: 0}
382 | switchIcons_9: {fileID: 0}
383 | switchIcons_10: {fileID: 0}
384 | switchIcons_11: {fileID: 0}
385 | switchIcons_12: {fileID: 0}
386 | switchIcons_13: {fileID: 0}
387 | switchIcons_14: {fileID: 0}
388 | switchSmallIcons_0: {fileID: 0}
389 | switchSmallIcons_1: {fileID: 0}
390 | switchSmallIcons_2: {fileID: 0}
391 | switchSmallIcons_3: {fileID: 0}
392 | switchSmallIcons_4: {fileID: 0}
393 | switchSmallIcons_5: {fileID: 0}
394 | switchSmallIcons_6: {fileID: 0}
395 | switchSmallIcons_7: {fileID: 0}
396 | switchSmallIcons_8: {fileID: 0}
397 | switchSmallIcons_9: {fileID: 0}
398 | switchSmallIcons_10: {fileID: 0}
399 | switchSmallIcons_11: {fileID: 0}
400 | switchSmallIcons_12: {fileID: 0}
401 | switchSmallIcons_13: {fileID: 0}
402 | switchSmallIcons_14: {fileID: 0}
403 | switchManualHTML:
404 | switchAccessibleURLs:
405 | switchLegalInformation:
406 | switchMainThreadStackSize: 1048576
407 | switchPresenceGroupId:
408 | switchLogoHandling: 0
409 | switchReleaseVersion: 0
410 | switchDisplayVersion: 1.0.0
411 | switchStartupUserAccount: 0
412 | switchTouchScreenUsage: 0
413 | switchSupportedLanguagesMask: 0
414 | switchLogoType: 0
415 | switchApplicationErrorCodeCategory:
416 | switchUserAccountSaveDataSize: 0
417 | switchUserAccountSaveDataJournalSize: 0
418 | switchApplicationAttribute: 0
419 | switchCardSpecSize: -1
420 | switchCardSpecClock: -1
421 | switchRatingsMask: 0
422 | switchRatingsInt_0: 0
423 | switchRatingsInt_1: 0
424 | switchRatingsInt_2: 0
425 | switchRatingsInt_3: 0
426 | switchRatingsInt_4: 0
427 | switchRatingsInt_5: 0
428 | switchRatingsInt_6: 0
429 | switchRatingsInt_7: 0
430 | switchRatingsInt_8: 0
431 | switchRatingsInt_9: 0
432 | switchRatingsInt_10: 0
433 | switchRatingsInt_11: 0
434 | switchRatingsInt_12: 0
435 | switchLocalCommunicationIds_0:
436 | switchLocalCommunicationIds_1:
437 | switchLocalCommunicationIds_2:
438 | switchLocalCommunicationIds_3:
439 | switchLocalCommunicationIds_4:
440 | switchLocalCommunicationIds_5:
441 | switchLocalCommunicationIds_6:
442 | switchLocalCommunicationIds_7:
443 | switchParentalControl: 0
444 | switchAllowsScreenshot: 1
445 | switchAllowsVideoCapturing: 1
446 | switchAllowsRuntimeAddOnContentInstall: 0
447 | switchDataLossConfirmation: 0
448 | switchUserAccountLockEnabled: 0
449 | switchSystemResourceMemory: 16777216
450 | switchSupportedNpadStyles: 22
451 | switchNativeFsCacheSize: 32
452 | switchIsHoldTypeHorizontal: 0
453 | switchSupportedNpadCount: 8
454 | switchSocketConfigEnabled: 0
455 | switchTcpInitialSendBufferSize: 32
456 | switchTcpInitialReceiveBufferSize: 64
457 | switchTcpAutoSendBufferSizeMax: 256
458 | switchTcpAutoReceiveBufferSizeMax: 256
459 | switchUdpSendBufferSize: 9
460 | switchUdpReceiveBufferSize: 42
461 | switchSocketBufferEfficiency: 4
462 | switchSocketInitializeEnabled: 1
463 | switchNetworkInterfaceManagerInitializeEnabled: 1
464 | switchPlayerConnectionEnabled: 1
465 | ps4NPAgeRating: 12
466 | ps4NPTitleSecret:
467 | ps4NPTrophyPackPath:
468 | ps4ParentalLevel: 11
469 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000
470 | ps4Category: 0
471 | ps4MasterVersion: 01.00
472 | ps4AppVersion: 01.00
473 | ps4AppType: 0
474 | ps4ParamSfxPath:
475 | ps4VideoOutPixelFormat: 0
476 | ps4VideoOutInitialWidth: 1920
477 | ps4VideoOutBaseModeInitialWidth: 1920
478 | ps4VideoOutReprojectionRate: 60
479 | ps4PronunciationXMLPath:
480 | ps4PronunciationSIGPath:
481 | ps4BackgroundImagePath:
482 | ps4StartupImagePath:
483 | ps4StartupImagesFolder:
484 | ps4IconImagesFolder:
485 | ps4SaveDataImagePath:
486 | ps4SdkOverride:
487 | ps4BGMPath:
488 | ps4ShareFilePath:
489 | ps4ShareOverlayImagePath:
490 | ps4PrivacyGuardImagePath:
491 | ps4NPtitleDatPath:
492 | ps4RemotePlayKeyAssignment: -1
493 | ps4RemotePlayKeyMappingDir:
494 | ps4PlayTogetherPlayerCount: 0
495 | ps4EnterButtonAssignment: 1
496 | ps4ApplicationParam1: 0
497 | ps4ApplicationParam2: 0
498 | ps4ApplicationParam3: 0
499 | ps4ApplicationParam4: 0
500 | ps4DownloadDataSize: 0
501 | ps4GarlicHeapSize: 2048
502 | ps4ProGarlicHeapSize: 2560
503 | playerPrefsMaxSize: 32768
504 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ
505 | ps4pnSessions: 1
506 | ps4pnPresence: 1
507 | ps4pnFriends: 1
508 | ps4pnGameCustomData: 1
509 | playerPrefsSupport: 0
510 | enableApplicationExit: 0
511 | resetTempFolder: 1
512 | restrictedAudioUsageRights: 0
513 | ps4UseResolutionFallback: 0
514 | ps4ReprojectionSupport: 0
515 | ps4UseAudio3dBackend: 0
516 | ps4SocialScreenEnabled: 0
517 | ps4ScriptOptimizationLevel: 0
518 | ps4Audio3dVirtualSpeakerCount: 14
519 | ps4attribCpuUsage: 0
520 | ps4PatchPkgPath:
521 | ps4PatchLatestPkgPath:
522 | ps4PatchChangeinfoPath:
523 | ps4PatchDayOne: 0
524 | ps4attribUserManagement: 0
525 | ps4attribMoveSupport: 0
526 | ps4attrib3DSupport: 0
527 | ps4attribShareSupport: 0
528 | ps4attribExclusiveVR: 0
529 | ps4disableAutoHideSplash: 0
530 | ps4videoRecordingFeaturesUsed: 0
531 | ps4contentSearchFeaturesUsed: 0
532 | ps4attribEyeToEyeDistanceSettingVR: 0
533 | ps4IncludedModules: []
534 | ps4attribVROutputEnabled: 0
535 | monoEnv:
536 | splashScreenBackgroundSourceLandscape: {fileID: 0}
537 | splashScreenBackgroundSourcePortrait: {fileID: 0}
538 | blurSplashScreenBackground: 1
539 | spritePackerPolicy:
540 | webGLMemorySize: 16
541 | webGLExceptionSupport: 1
542 | webGLNameFilesAsHashes: 0
543 | webGLDataCaching: 1
544 | webGLDebugSymbols: 0
545 | webGLEmscriptenArgs:
546 | webGLModulesDirectory:
547 | webGLTemplate: APPLICATION:Default
548 | webGLAnalyzeBuildSize: 0
549 | webGLUseEmbeddedResources: 0
550 | webGLCompressionFormat: 1
551 | webGLLinkerTarget: 1
552 | webGLThreadsSupport: 0
553 | webGLWasmStreaming: 0
554 | scriptingDefineSymbols:
555 | 1: ODIN_INSPECTOR
556 | platformArchitecture: {}
557 | scriptingBackend: {}
558 | il2cppCompilerConfiguration: {}
559 | managedStrippingLevel: {}
560 | incrementalIl2cppBuild: {}
561 | allowUnsafeCode: 0
562 | additionalIl2CppArgs:
563 | scriptingRuntimeVersion: 1
564 | gcIncremental: 0
565 | gcWBarrierValidation: 0
566 | apiCompatibilityLevelPerPlatform: {}
567 | m_RenderingPath: 1
568 | m_MobileRenderingPath: 1
569 | metroPackageName: Template_2D
570 | metroPackageVersion:
571 | metroCertificatePath:
572 | metroCertificatePassword:
573 | metroCertificateSubject:
574 | metroCertificateIssuer:
575 | metroCertificateNotAfter: 0000000000000000
576 | metroApplicationDescription: Template_2D
577 | wsaImages: {}
578 | metroTileShortName:
579 | metroTileShowName: 0
580 | metroMediumTileShowName: 0
581 | metroLargeTileShowName: 0
582 | metroWideTileShowName: 0
583 | metroSupportStreamingInstall: 0
584 | metroLastRequiredScene: 0
585 | metroDefaultTileSize: 1
586 | metroTileForegroundText: 2
587 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
588 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628,
589 | a: 1}
590 | metroSplashScreenUseBackgroundColor: 0
591 | platformCapabilities: {}
592 | metroTargetDeviceFamilies: {}
593 | metroFTAName:
594 | metroFTAFileTypes: []
595 | metroProtocolName:
596 | XboxOneProductId:
597 | XboxOneUpdateKey:
598 | XboxOneSandboxId:
599 | XboxOneContentId:
600 | XboxOneTitleId:
601 | XboxOneSCId:
602 | XboxOneGameOsOverridePath:
603 | XboxOnePackagingOverridePath:
604 | XboxOneAppManifestOverridePath:
605 | XboxOneVersion: 1.0.0.0
606 | XboxOnePackageEncryption: 0
607 | XboxOnePackageUpdateGranularity: 2
608 | XboxOneDescription:
609 | XboxOneLanguage:
610 | - enus
611 | XboxOneCapability: []
612 | XboxOneGameRating: {}
613 | XboxOneIsContentPackage: 0
614 | XboxOneEnableGPUVariability: 1
615 | XboxOneSockets: {}
616 | XboxOneSplashScreen: {fileID: 0}
617 | XboxOneAllowedProductIds: []
618 | XboxOnePersistentLocalStorageSize: 0
619 | XboxOneXTitleMemory: 8
620 | XboxOneOverrideIdentityName:
621 | vrEditorSettings:
622 | daydream:
623 | daydreamIconForeground: {fileID: 0}
624 | daydreamIconBackground: {fileID: 0}
625 | cloudServicesEnabled:
626 | Build: 0
627 | Collab: 0
628 | ErrorHub: 0
629 | Hub: 0
630 | UNet: 0
631 | luminIcon:
632 | m_Name:
633 | m_ModelFolderPath:
634 | m_PortalFolderPath:
635 | luminCert:
636 | m_CertPath:
637 | m_SignPackage: 1
638 | luminIsChannelApp: 0
639 | luminVersion:
640 | m_VersionCode: 1
641 | m_VersionName:
642 | apiCompatibilityLevel: 6
643 | cloudProjectId:
644 | framebufferDepthMemorylessMode: 0
645 | projectName:
646 | organizationId:
647 | cloudEnabled: 0
648 | enableNativePlatformBackendsForNewInputSystem: 0
649 | disableOldInputManagerSupport: 0
650 | legacyClampBlendShapeWeights: 0
651 |
--------------------------------------------------------------------------------
/ProjectSettings/ProjectVersion.txt:
--------------------------------------------------------------------------------
1 | m_EditorVersion: 2019.3.0f6
2 | m_EditorVersionWithRevision: 2019.3.0f6 (27ab2135bccf)
3 |
--------------------------------------------------------------------------------
/ProjectSettings/QualitySettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!47 &1
4 | QualitySettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 5
7 | m_CurrentQuality: 5
8 | m_QualitySettings:
9 | - serializedVersion: 2
10 | name: Very Low
11 | pixelLightCount: 0
12 | shadows: 0
13 | shadowResolution: 0
14 | shadowProjection: 1
15 | shadowCascades: 1
16 | shadowDistance: 15
17 | shadowNearPlaneOffset: 3
18 | shadowCascade2Split: 0.33333334
19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
20 | shadowmaskMode: 0
21 | skinWeights: 1
22 | textureQuality: 1
23 | anisotropicTextures: 0
24 | antiAliasing: 0
25 | softParticles: 0
26 | softVegetation: 0
27 | realtimeReflectionProbes: 0
28 | billboardsFaceCameraPosition: 0
29 | vSyncCount: 0
30 | lodBias: 0.3
31 | maximumLODLevel: 0
32 | streamingMipmapsActive: 0
33 | streamingMipmapsAddAllCameras: 1
34 | streamingMipmapsMemoryBudget: 512
35 | streamingMipmapsRenderersPerFrame: 512
36 | streamingMipmapsMaxLevelReduction: 2
37 | streamingMipmapsMaxFileIORequests: 1024
38 | particleRaycastBudget: 4
39 | asyncUploadTimeSlice: 2
40 | asyncUploadBufferSize: 16
41 | asyncUploadPersistentBuffer: 1
42 | resolutionScalingFixedDPIFactor: 1
43 | customRenderPipeline: {fileID: 0}
44 | excludedTargetPlatforms: []
45 | - serializedVersion: 2
46 | name: Low
47 | pixelLightCount: 0
48 | shadows: 0
49 | shadowResolution: 0
50 | shadowProjection: 1
51 | shadowCascades: 1
52 | shadowDistance: 20
53 | shadowNearPlaneOffset: 3
54 | shadowCascade2Split: 0.33333334
55 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
56 | shadowmaskMode: 0
57 | skinWeights: 2
58 | textureQuality: 0
59 | anisotropicTextures: 0
60 | antiAliasing: 0
61 | softParticles: 0
62 | softVegetation: 0
63 | realtimeReflectionProbes: 0
64 | billboardsFaceCameraPosition: 0
65 | vSyncCount: 0
66 | lodBias: 0.4
67 | maximumLODLevel: 0
68 | streamingMipmapsActive: 0
69 | streamingMipmapsAddAllCameras: 1
70 | streamingMipmapsMemoryBudget: 512
71 | streamingMipmapsRenderersPerFrame: 512
72 | streamingMipmapsMaxLevelReduction: 2
73 | streamingMipmapsMaxFileIORequests: 1024
74 | particleRaycastBudget: 16
75 | asyncUploadTimeSlice: 2
76 | asyncUploadBufferSize: 16
77 | asyncUploadPersistentBuffer: 1
78 | resolutionScalingFixedDPIFactor: 1
79 | customRenderPipeline: {fileID: 0}
80 | excludedTargetPlatforms: []
81 | - serializedVersion: 2
82 | name: Medium
83 | pixelLightCount: 1
84 | shadows: 0
85 | shadowResolution: 0
86 | shadowProjection: 1
87 | shadowCascades: 1
88 | shadowDistance: 20
89 | shadowNearPlaneOffset: 3
90 | shadowCascade2Split: 0.33333334
91 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
92 | shadowmaskMode: 0
93 | skinWeights: 2
94 | textureQuality: 0
95 | anisotropicTextures: 0
96 | antiAliasing: 0
97 | softParticles: 0
98 | softVegetation: 0
99 | realtimeReflectionProbes: 0
100 | billboardsFaceCameraPosition: 0
101 | vSyncCount: 1
102 | lodBias: 0.7
103 | maximumLODLevel: 0
104 | streamingMipmapsActive: 0
105 | streamingMipmapsAddAllCameras: 1
106 | streamingMipmapsMemoryBudget: 512
107 | streamingMipmapsRenderersPerFrame: 512
108 | streamingMipmapsMaxLevelReduction: 2
109 | streamingMipmapsMaxFileIORequests: 1024
110 | particleRaycastBudget: 64
111 | asyncUploadTimeSlice: 2
112 | asyncUploadBufferSize: 16
113 | asyncUploadPersistentBuffer: 1
114 | resolutionScalingFixedDPIFactor: 1
115 | customRenderPipeline: {fileID: 0}
116 | excludedTargetPlatforms: []
117 | - serializedVersion: 2
118 | name: High
119 | pixelLightCount: 2
120 | shadows: 0
121 | shadowResolution: 1
122 | shadowProjection: 1
123 | shadowCascades: 2
124 | shadowDistance: 40
125 | shadowNearPlaneOffset: 3
126 | shadowCascade2Split: 0.33333334
127 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
128 | shadowmaskMode: 1
129 | skinWeights: 2
130 | textureQuality: 0
131 | anisotropicTextures: 0
132 | antiAliasing: 0
133 | softParticles: 0
134 | softVegetation: 1
135 | realtimeReflectionProbes: 0
136 | billboardsFaceCameraPosition: 0
137 | vSyncCount: 1
138 | lodBias: 1
139 | maximumLODLevel: 0
140 | streamingMipmapsActive: 0
141 | streamingMipmapsAddAllCameras: 1
142 | streamingMipmapsMemoryBudget: 512
143 | streamingMipmapsRenderersPerFrame: 512
144 | streamingMipmapsMaxLevelReduction: 2
145 | streamingMipmapsMaxFileIORequests: 1024
146 | particleRaycastBudget: 256
147 | asyncUploadTimeSlice: 2
148 | asyncUploadBufferSize: 16
149 | asyncUploadPersistentBuffer: 1
150 | resolutionScalingFixedDPIFactor: 1
151 | customRenderPipeline: {fileID: 0}
152 | excludedTargetPlatforms: []
153 | - serializedVersion: 2
154 | name: Very High
155 | pixelLightCount: 3
156 | shadows: 0
157 | shadowResolution: 2
158 | shadowProjection: 1
159 | shadowCascades: 2
160 | shadowDistance: 70
161 | shadowNearPlaneOffset: 3
162 | shadowCascade2Split: 0.33333334
163 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
164 | shadowmaskMode: 1
165 | skinWeights: 4
166 | textureQuality: 0
167 | anisotropicTextures: 0
168 | antiAliasing: 0
169 | softParticles: 0
170 | softVegetation: 1
171 | realtimeReflectionProbes: 0
172 | billboardsFaceCameraPosition: 0
173 | vSyncCount: 1
174 | lodBias: 1.5
175 | maximumLODLevel: 0
176 | streamingMipmapsActive: 0
177 | streamingMipmapsAddAllCameras: 1
178 | streamingMipmapsMemoryBudget: 512
179 | streamingMipmapsRenderersPerFrame: 512
180 | streamingMipmapsMaxLevelReduction: 2
181 | streamingMipmapsMaxFileIORequests: 1024
182 | particleRaycastBudget: 1024
183 | asyncUploadTimeSlice: 2
184 | asyncUploadBufferSize: 16
185 | asyncUploadPersistentBuffer: 1
186 | resolutionScalingFixedDPIFactor: 1
187 | customRenderPipeline: {fileID: 0}
188 | excludedTargetPlatforms: []
189 | - serializedVersion: 2
190 | name: Ultra
191 | pixelLightCount: 4
192 | shadows: 2
193 | shadowResolution: 0
194 | shadowProjection: 1
195 | shadowCascades: 4
196 | shadowDistance: 150
197 | shadowNearPlaneOffset: 3
198 | shadowCascade2Split: 0.33333334
199 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
200 | shadowmaskMode: 1
201 | skinWeights: 4
202 | textureQuality: 0
203 | anisotropicTextures: 0
204 | antiAliasing: 0
205 | softParticles: 0
206 | softVegetation: 1
207 | realtimeReflectionProbes: 0
208 | billboardsFaceCameraPosition: 0
209 | vSyncCount: 1
210 | lodBias: 2
211 | maximumLODLevel: 0
212 | streamingMipmapsActive: 0
213 | streamingMipmapsAddAllCameras: 1
214 | streamingMipmapsMemoryBudget: 512
215 | streamingMipmapsRenderersPerFrame: 512
216 | streamingMipmapsMaxLevelReduction: 2
217 | streamingMipmapsMaxFileIORequests: 1024
218 | particleRaycastBudget: 4096
219 | asyncUploadTimeSlice: 2
220 | asyncUploadBufferSize: 16
221 | asyncUploadPersistentBuffer: 1
222 | resolutionScalingFixedDPIFactor: 1
223 | customRenderPipeline: {fileID: 0}
224 | excludedTargetPlatforms: []
225 | m_PerPlatformDefaultQuality:
226 | Android: 2
227 | Nintendo 3DS: 5
228 | Nintendo Switch: 5
229 | PS4: 5
230 | PSM: 5
231 | PSP2: 2
232 | Stadia: 5
233 | Standalone: 5
234 | Tizen: 2
235 | WebGL: 3
236 | WiiU: 5
237 | Windows Store Apps: 5
238 | XboxOne: 5
239 | iPhone: 2
240 | tvOS: 2
241 |
--------------------------------------------------------------------------------
/ProjectSettings/TagManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!78 &1
4 | TagManager:
5 | serializedVersion: 2
6 | tags: []
7 | layers:
8 | - Default
9 | - TransparentFX
10 | - Ignore Raycast
11 | -
12 | - Water
13 | - UI
14 | -
15 | -
16 | -
17 | -
18 | -
19 | -
20 | -
21 | -
22 | -
23 | -
24 | -
25 | -
26 | -
27 | -
28 | -
29 | -
30 | -
31 | -
32 | -
33 | -
34 | -
35 | -
36 | -
37 | -
38 | -
39 | -
40 | m_SortingLayers:
41 | - name: Default
42 | uniqueID: 0
43 | locked: 0
44 |
--------------------------------------------------------------------------------
/ProjectSettings/TimeManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!5 &1
4 | TimeManager:
5 | m_ObjectHideFlags: 0
6 | Fixed Timestep: 0.02
7 | Maximum Allowed Timestep: 0.1
8 | m_TimeScale: 1
9 | Maximum Particle Timestep: 0.03
10 |
--------------------------------------------------------------------------------
/ProjectSettings/UnityConnectSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!310 &1
4 | UnityConnectSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 1
7 | m_Enabled: 0
8 | m_TestMode: 0
9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events
10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events
11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com
12 | m_TestInitMode: 0
13 | CrashReportingSettings:
14 | m_EventUrl: https://perf-events.cloud.unity3d.com
15 | m_Enabled: 0
16 | m_LogBufferSize: 10
17 | m_CaptureEditorExceptions: 1
18 | UnityPurchasingSettings:
19 | m_Enabled: 0
20 | m_TestMode: 0
21 | UnityAnalyticsSettings:
22 | m_Enabled: 0
23 | m_TestMode: 0
24 | m_InitializeOnStartup: 1
25 | UnityAdsSettings:
26 | m_Enabled: 0
27 | m_InitializeOnStartup: 1
28 | m_TestMode: 0
29 | m_IosGameId:
30 | m_AndroidGameId:
31 | m_GameIds:
32 | AndroidPlayer:
33 | iPhonePlayer:
34 | tvOSPlayer:
35 | m_GameId:
36 | PerformanceReportingSettings:
37 | m_Enabled: 0
38 |
--------------------------------------------------------------------------------
/ProjectSettings/VFXManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!937362698 &1
4 | VFXManager:
5 | m_ObjectHideFlags: 0
6 | m_IndirectShader: {fileID: 0}
7 | m_RenderPipeSettingsPath:
8 |
--------------------------------------------------------------------------------
/ProjectSettings/XRSettings.asset:
--------------------------------------------------------------------------------
1 | {
2 | "m_SettingKeys": [
3 | "VR Device Disabled",
4 | "VR Device User Alert"
5 | ],
6 | "m_SettingValues": [
7 | "False",
8 | "False"
9 | ]
10 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 2048-Unity
2 | The 2048 game simple source code written in Unity 2019.3 (c#)
3 |
4 | 
5 |
6 | # How to Play
7 | - LeftArrow, RightArrow, UpArrow, DownArrow.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/app.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shlifedev/unity-2048/cc2a341026d88087af817363db6fa6de25f9c451/app.gif
--------------------------------------------------------------------------------