├── .gitignore
├── Assets
├── Demigiant.meta
├── Demigiant
│ ├── DOTween.meta
│ ├── DOTween
│ │ ├── DOTween.XML
│ │ ├── DOTween.XML.meta
│ │ ├── DOTween.dll
│ │ ├── DOTween.dll.meta
│ │ ├── DOTween43.dll
│ │ ├── DOTween43.dll.meta
│ │ ├── DOTween43.xml
│ │ ├── DOTween43.xml.meta
│ │ ├── DOTween46.dll
│ │ ├── DOTween46.dll.meta
│ │ ├── DOTween46.xml
│ │ ├── DOTween46.xml.meta
│ │ ├── DOTween50.dll
│ │ ├── DOTween50.dll.meta
│ │ ├── DOTween50.xml
│ │ ├── DOTween50.xml.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
│ │ ├── readme.txt
│ │ └── readme.txt.meta
│ ├── Resources.meta
│ └── Resources
│ │ ├── DOTweenSettings.asset
│ │ └── DOTweenSettings.asset.meta
├── _Client.meta
└── _Client
│ ├── Prefabs.meta
│ ├── Prefabs
│ ├── Piece.prefab
│ └── Piece.prefab.meta
│ ├── Scenes.meta
│ ├── Scenes
│ ├── SampleScene.unity
│ └── SampleScene.unity.meta
│ ├── Scripts.meta
│ ├── Scripts
│ ├── BoardExtensions.cs
│ ├── BoardExtensions.cs.meta
│ ├── Components.meta
│ ├── Components
│ │ ├── .gitkeep
│ │ ├── Animating.cs
│ │ ├── Animating.cs.meta
│ │ ├── Board.cs
│ │ ├── Board.cs.meta
│ │ ├── Destroyed.cs
│ │ ├── Destroyed.cs.meta
│ │ ├── Group.cs
│ │ ├── Group.cs.meta
│ │ ├── GroupingTarget.cs
│ │ ├── GroupingTarget.cs.meta
│ │ ├── InGroup.cs
│ │ ├── InGroup.cs.meta
│ │ ├── Input.cs
│ │ ├── Input.cs.meta
│ │ ├── Match.cs
│ │ ├── Match.cs.meta
│ │ ├── New.cs
│ │ ├── New.cs.meta
│ │ ├── Piece.cs
│ │ ├── Piece.cs.meta
│ │ ├── Position.cs
│ │ ├── Position.cs.meta
│ │ ├── PositionUpdated.cs
│ │ ├── PositionUpdated.cs.meta
│ │ ├── Selected.cs
│ │ ├── Selected.cs.meta
│ │ ├── Shuffled.cs
│ │ ├── Shuffled.cs.meta
│ │ ├── View.cs
│ │ └── View.cs.meta
│ ├── EcsStartup.cs
│ ├── EcsStartup.cs.meta
│ ├── EcsWorldExtensions.cs
│ ├── EcsWorldExtensions.cs.meta
│ ├── IPieceView.cs
│ ├── IPieceView.cs.meta
│ ├── Services.meta
│ ├── Services
│ │ ├── .gitkeep
│ │ ├── IInputService.cs
│ │ ├── IInputService.cs.meta
│ │ ├── IPieceViewService.cs
│ │ └── IPieceViewService.cs.meta
│ ├── Systems.meta
│ ├── Systems
│ │ ├── .gitkeep
│ │ ├── BoardFallSystem.cs
│ │ ├── BoardFallSystem.cs.meta
│ │ ├── BoardFillSystem.cs
│ │ ├── BoardFillSystem.cs.meta
│ │ ├── BoardGroupSystem.cs
│ │ ├── BoardGroupSystem.cs.meta
│ │ ├── BoardInitSystem.cs
│ │ ├── BoardInitSystem.cs.meta
│ │ ├── BoardResetGroupSystem.cs
│ │ ├── BoardResetGroupSystem.cs.meta
│ │ ├── BoardShuffleSystem.cs
│ │ ├── BoardShuffleSystem.cs.meta
│ │ ├── BoardSystemsDisableIfAnimatingSystem.cs
│ │ ├── BoardSystemsDisableIfAnimatingSystem.cs.meta
│ │ ├── CameraFocusOnBoardSystem.cs
│ │ ├── CameraFocusOnBoardSystem.cs.meta
│ │ ├── DestroyEntitiesWithDestroyedSystem.cs
│ │ ├── DestroyEntitiesWithDestroyedSystem.cs.meta
│ │ ├── InputSystem.cs
│ │ ├── InputSystem.cs.meta
│ │ ├── PieceDestroySelectedSystem.cs
│ │ ├── PieceDestroySelectedSystem.cs.meta
│ │ ├── PieceSelectSystem.cs
│ │ ├── PieceSelectSystem.cs.meta
│ │ ├── PieceViewCreateSystem.cs
│ │ ├── PieceViewCreateSystem.cs.meta
│ │ ├── PieceViewDestroySystem.cs
│ │ ├── PieceViewDestroySystem.cs.meta
│ │ ├── PieceViewUpdateAnimatingSystem.cs
│ │ ├── PieceViewUpdateAnimatingSystem.cs.meta
│ │ ├── PieceViewUpdatePositionSystem.cs
│ │ └── PieceViewUpdatePositionSystem.cs.meta
│ ├── UnityComponents.meta
│ └── UnityComponents
│ │ ├── .gitkeep
│ │ ├── InputService.cs
│ │ ├── InputService.cs.meta
│ │ ├── PieceView.cs
│ │ ├── PieceView.cs.meta
│ │ ├── PieceViewService.cs
│ │ └── PieceViewService.cs.meta
│ ├── Sprites.meta
│ └── Sprites
│ ├── Candies.meta
│ ├── Candies
│ ├── blue.png
│ ├── blue.png.meta
│ ├── green.png
│ ├── green.png.meta
│ ├── pink.png
│ ├── pink.png.meta
│ ├── red.png
│ └── red.png.meta
│ ├── Piece.png
│ ├── Piece.png.meta
│ ├── UnitSquare.png
│ └── UnitSquare.png.meta
├── Packages
├── manifest.json
└── packages-lock.json
├── ProjectSettings
├── AudioManager.asset
├── ClusterInputManager.asset
├── DynamicsManager.asset
├── EditorBuildSettings.asset
├── EditorSettings.asset
├── GraphicsSettings.asset
├── InputManager.asset
├── NavMeshAreas.asset
├── NetworkManager.asset
├── PackageManagerSettings.asset
├── Physics2DSettings.asset
├── PresetManager.asset
├── ProjectSettings.asset
├── ProjectVersion.txt
├── QualitySettings.asset
├── TagManager.asset
├── TimeManager.asset
├── UnityConnectSettings.asset
├── VFXManager.asset
├── VersionControlSettings.asset
└── XRSettings.asset
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | # This .gitignore file should be placed at the root of your Unity project directory
2 | #
3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
4 | #
5 | /[Ll]ibrary/
6 | /[Tt]emp/
7 | /[Oo]bj/
8 | /[Bb]uild/
9 | /[Bb]uilds/
10 | /[Ll]ogs/
11 | /[Uu]ser[Ss]ettings/
12 |
13 | # MemoryCaptures can get excessive in size.
14 | # They also could contain extremely sensitive data
15 | /[Mm]emoryCaptures/
16 |
17 | # Asset meta data should only be ignored when the corresponding asset is also ignored
18 | !/[Aa]ssets/**/*.meta
19 |
20 | # Uncomment this line if you wish to ignore the asset store tools plugin
21 | # /[Aa]ssets/AssetStoreTools*
22 |
23 | # Autogenerated Jetbrains Rider plugin
24 | /[Aa]ssets/Plugins/Editor/JetBrains*
25 |
26 | # Visual Studio cache directory
27 | .vs/
28 |
29 | # Visual Studio Code directory
30 | .vscode/
31 |
32 | # Gradle cache directory
33 | .gradle/
34 |
35 | # Autogenerated VS/MD/Consulo solution and project files
36 | ExportedObj/
37 | .consulo/
38 | *.csproj
39 | *.unityproj
40 | *.sln
41 | *.suo
42 | *.tmp
43 | *.user
44 | *.userprefs
45 | *.pidb
46 | *.booproj
47 | *.svd
48 | *.pdb
49 | *.mdb
50 | *.opendb
51 | *.VC.db
52 |
53 | # Unity3D generated meta files
54 | *.pidb.meta
55 | *.pdb.meta
56 | *.mdb.meta
57 |
58 | # Unity3D generated file on crash reports
59 | sysinfo.txt
60 |
61 | # Builds
62 | *.apk
63 | *.aab
64 | *.unitypackage
65 |
66 | # Crashlytics generated file
67 | crashlytics-build.properties
68 |
69 | # Packed Addressables
70 | /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*
71 |
72 | # Temporary auto-generated Android Assets
73 | /[Aa]ssets/[Ss]treamingAssets/aa.meta
74 | /[Aa]ssets/[Ss]treamingAssets/aa/*
--------------------------------------------------------------------------------
/Assets/Demigiant.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: dc7fc7cb0e1de0440be3824f7ffad359
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 28984c551a65a3f4c85a0c2df37e020f
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: 5ec570c4aad08e54aa562697147a6947
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/DOTween.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cadfoot/unity-ecs-match-two/4fae2d840f784b53694ad52f6783954d47382f1a/Assets/Demigiant/DOTween/DOTween.dll
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/DOTween.dll.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6e38ac6b1c3556b4c888ca8552375e1e
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/DOTween43.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cadfoot/unity-ecs-match-two/4fae2d840f784b53694ad52f6783954d47382f1a/Assets/Demigiant/DOTween/DOTween43.dll
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/DOTween43.dll.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 898fd6d3a9b1ed440aa5f83fd8490419
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 | - first:
20 | Editor: Editor
21 | second:
22 | enabled: 0
23 | settings:
24 | DefaultValueInitialized: true
25 | - first:
26 | Windows Store Apps: WindowsStoreApps
27 | second:
28 | enabled: 0
29 | settings:
30 | CPU: AnyCPU
31 | userData:
32 | assetBundleName:
33 | assetBundleVariant:
34 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/DOTween43.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | DOTween43
5 |
6 |
7 |
8 |
9 | Methods that extend known Unity objects and allow to directly create and control tweens from their instances.
10 | These, as all DOTween43 methods, require Unity 4.3 or later.
11 |
12 |
13 |
14 | Tweens a Material's color using the given gradient
15 | (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
16 | Also stores the image as the tween's target so it can be used for filtered operations
17 | The gradient to useThe duration of the tween
18 |
19 |
20 | Tweens a Material's named color property using the given gradient
21 | (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
22 | Also stores the image as the tween's target so it can be used for filtered operations
23 | The gradient to use
24 | The name of the material property to tween (like _Tint or _SpecColor)
25 | The duration of the tween
26 |
27 |
28 | Tweens a SpriteRenderer's color to the given value.
29 | Also stores the spriteRenderer as the tween's target so it can be used for filtered operations
30 | The end value to reachThe duration of the tween
31 |
32 |
33 | Tweens a Material's alpha color to the given value.
34 | Also stores the spriteRenderer as the tween's target so it can be used for filtered operations
35 | The end value to reachThe duration of the tween
36 |
37 |
38 | Tweens a SpriteRenderer's color using the given gradient
39 | (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
40 | Also stores the image as the tween's target so it can be used for filtered operations
41 | The gradient to useThe duration of the tween
42 |
43 |
44 | Tweens a Rigidbody2D's position to the given value.
45 | Also stores the Rigidbody2D 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 |
49 |
50 | Tweens a Rigidbody2D's X position to the given value.
51 | Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
52 | The end value to reachThe duration of the tween
53 | If TRUE the tween will smoothly snap all values to integers
54 |
55 |
56 | Tweens a Rigidbody2D's Y position to the given value.
57 | Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
58 | The end value to reachThe duration of the tween
59 | If TRUE the tween will smoothly snap all values to integers
60 |
61 |
62 | Tweens a Rigidbody2D's rotation to the given value.
63 | Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
64 | The end value to reachThe duration of the tween
65 |
66 |
67 | Tweens a Rigidbody2D's position to the given value, while also applying a jump effect along the Y axis.
68 | Returns a Sequence instead of a Tweener.
69 | Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations.
70 | IMPORTANT: a rigidbody2D can't be animated in a jump arc using MovePosition, so the tween will directly set the position
71 | The end value to reach
72 | Power of the jump (the max height of the jump is represented by this plus the final Y offset)
73 | Total number of jumps
74 | The duration of the tween
75 | If TRUE the tween will smoothly snap all values to integers
76 |
77 |
78 | Tweens a SpriteRenderer's color to the given value,
79 | in a way that allows other DOBlendableColor tweens to work together on the same target,
80 | instead than fight each other as multiple DOColor would do.
81 | Also stores the SpriteRenderer as the tween's target so it can be used for filtered operations
82 | The value to tween toThe duration of the tween
83 |
84 |
85 |
86 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/DOTween43.xml.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f53471de02e87c74ba4d566f35ff7861
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/DOTween46.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cadfoot/unity-ecs-match-two/4fae2d840f784b53694ad52f6783954d47382f1a/Assets/Demigiant/DOTween/DOTween46.dll
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/DOTween46.dll.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3023ee60803b6294db099d2f75778e3e
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 | - first:
20 | Editor: Editor
21 | second:
22 | enabled: 0
23 | settings:
24 | DefaultValueInitialized: true
25 | - first:
26 | Windows Store Apps: WindowsStoreApps
27 | second:
28 | enabled: 0
29 | settings:
30 | CPU: AnyCPU
31 | userData:
32 | assetBundleName:
33 | assetBundleVariant:
34 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/DOTween46.xml.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: cac01ba2d810db743af636231e63740b
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/DOTween50.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cadfoot/unity-ecs-match-two/4fae2d840f784b53694ad52f6783954d47382f1a/Assets/Demigiant/DOTween/DOTween50.dll
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/DOTween50.dll.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1184d623156660a439d0aa9b432c1e90
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 | - first:
20 | Editor: Editor
21 | second:
22 | enabled: 0
23 | settings:
24 | DefaultValueInitialized: true
25 | - first:
26 | Windows Store Apps: WindowsStoreApps
27 | second:
28 | enabled: 0
29 | settings:
30 | CPU: AnyCPU
31 | userData:
32 | assetBundleName:
33 | assetBundleVariant:
34 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/DOTween50.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | DOTween50
5 |
6 |
7 |
8 |
9 | Methods that extend known Unity objects and allow to directly create and control tweens from their instances.
10 | These, as all DOTween50 methods, require Unity 5.0 or later.
11 |
12 |
13 |
14 | Tweens an AudioMixer's exposed float to the given value.
15 | Also stores the AudioMixer as the tween's target so it can be used for filtered operations.
16 | Note that you need to manually expose a float in an AudioMixerGroup in order to be able to tween it from an AudioMixer.
17 | Name given to the exposed float to set
18 | The end value to reachThe duration of the tween
19 |
20 |
21 |
22 | Completes all tweens that have this target as a reference
23 | (meaning tweens that were started from this target, or that had this target added as an Id)
24 | and returns the total number of tweens completed
25 | (meaning the tweens that don't have infinite loops and were not already complete)
26 |
27 | For Sequences only: if TRUE also internal Sequence callbacks will be fired,
28 | otherwise they will be ignored
29 |
30 |
31 |
32 | Kills all tweens that have this target as a reference
33 | (meaning tweens that were started from this target, or that had this target added as an Id)
34 | and returns the total number of tweens killed.
35 |
36 | If TRUE completes the tween before killing it
37 |
38 |
39 |
40 | Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference
41 | (meaning tweens that were started from this target, or that had this target added as an Id)
42 | and returns the total number of tweens flipped.
43 |
44 |
45 |
46 |
47 | Sends to the given position all tweens that have this target as a reference
48 | (meaning tweens that were started from this target, or that had this target added as an Id)
49 | and returns the total number of tweens involved.
50 |
51 | Time position to reach
52 | (if higher than the whole tween duration the tween will simply reach its end)
53 | If TRUE will play the tween after reaching the given position, otherwise it will pause it
54 |
55 |
56 |
57 | Pauses all tweens that have this target as a reference
58 | (meaning tweens that were started from this target, or that had this target added as an Id)
59 | and returns the total number of tweens paused.
60 |
61 |
62 |
63 |
64 | Plays all tweens that have this target as a reference
65 | (meaning tweens that were started from this target, or that had this target added as an Id)
66 | and returns the total number of tweens played.
67 |
68 |
69 |
70 |
71 | Plays backwards all tweens that have this target as a reference
72 | (meaning tweens that were started from this target, or that had this target added as an Id)
73 | and returns the total number of tweens played.
74 |
75 |
76 |
77 |
78 | Plays forward all tweens that have this target as a reference
79 | (meaning tweens that were started from this target, or that had this target added as an Id)
80 | and returns the total number of tweens played.
81 |
82 |
83 |
84 |
85 | Restarts all tweens that have this target as a reference
86 | (meaning tweens that were started from this target, or that had this target added as an Id)
87 | and returns the total number of tweens restarted.
88 |
89 |
90 |
91 |
92 | Rewinds 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 rewinded.
95 |
96 |
97 |
98 |
99 | Smoothly rewinds all tweens that have this target as a reference
100 | (meaning tweens that were started from this target, or that had this target added as an Id)
101 | and returns the total number of tweens rewinded.
102 |
103 |
104 |
105 |
106 | Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference
107 | (meaning tweens that were started from this target, or that had this target added as an Id)
108 | and returns the total number of tweens involved.
109 |
110 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/DOTween50.xml.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 032e00ba3d12ffb418d053e39e9605da
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 571dc0ac8717431419a7ea66ae8d6e23
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 | Checks that the given editor texture use the correct import settings,
10 | and applies them if they're incorrect.
11 |
12 |
13 |
14 |
15 | Returns TRUE if addons setup is required.
16 |
17 |
18 |
19 |
20 | Returns TRUE if the file/directory at the given path exists.
21 |
22 | Path, relative to Unity's project folder
23 |
24 |
25 |
26 |
27 | Converts the given project-relative path to a full path,
28 | with backward (\) slashes).
29 |
30 |
31 |
32 |
33 | Converts the given full path to a path usable with AssetDatabase methods
34 | (relative to Unity's project folder, and with the correct Unity forward (/) slashes).
35 |
36 |
37 |
38 |
39 | Connects to a asset.
40 | If the asset already exists at the given path, loads it and returns it.
41 | Otherwise, either returns NULL or automatically creates it before loading and returning it
42 | (depending on the given parameters).
43 |
44 | Asset type
45 | File path (relative to Unity's project folder)
46 | If TRUE and the requested asset doesn't exist, forces its creation
47 |
48 |
49 |
50 | Full path for the given loaded assembly, assembly file included
51 |
52 |
53 |
54 |
55 | Not used as menu item anymore, but as a utiity function
56 |
57 |
58 |
59 |
60 | Setups DOTween
61 |
62 | If TRUE, no warning window appears in case there is no need for setup
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5405503ee5afddc42bf1b95cabc6ad89
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cadfoot/unity-ecs-match-two/4fae2d840f784b53694ad52f6783954d47382f1a/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0d6555af380a7264a9cd5a9083b1c4ad
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: 36c5a6dbf1c77234c9d097789c5424cb
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/cadfoot/unity-ecs-match-two/4fae2d840f784b53694ad52f6783954d47382f1a/Assets/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0d7e06117784ff44bacb9c9e551592b3
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 11
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 1
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 | vTOnly: 0
27 | grayScaleToAlpha: 0
28 | generateCubemap: 6
29 | cubemapConvolution: 0
30 | seamlessCubemap: 0
31 | textureFormat: -1
32 | maxTextureSize: 1024
33 | textureSettings:
34 | serializedVersion: 2
35 | filterMode: -1
36 | aniso: -1
37 | mipBias: -100
38 | wrapU: -1
39 | wrapV: -1
40 | wrapW: -1
41 | nPOTScale: 1
42 | lightmap: 0
43 | compressionQuality: 50
44 | spriteMode: 0
45 | spriteExtrude: 1
46 | spriteMeshType: 1
47 | alignment: 0
48 | spritePivot: {x: 0.5, y: 0.5}
49 | spritePixelsToUnits: 100
50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
51 | spriteGenerateFallbackPhysicsShape: 1
52 | alphaUsage: 1
53 | alphaIsTransparency: 0
54 | spriteTessellationDetail: -1
55 | textureType: 0
56 | textureShape: 1
57 | singleChannelComponent: 0
58 | flipbookRows: 1
59 | flipbookColumns: 1
60 | maxTextureSizeSet: 0
61 | compressionQualitySet: 0
62 | textureFormatSet: 0
63 | ignorePngGamma: 0
64 | applyGammaDecoding: 1
65 | platformSettings:
66 | - serializedVersion: 3
67 | buildTarget: DefaultTexturePlatform
68 | maxTextureSize: 1024
69 | resizeAlgorithm: 0
70 | textureFormat: -1
71 | textureCompression: 1
72 | compressionQuality: 50
73 | crunchedCompression: 0
74 | allowsAlphaSplitting: 0
75 | overridden: 0
76 | androidETC2FallbackOverride: 0
77 | forceMaximumCompressionQuality_BC6H_BC7: 0
78 | spriteSheet:
79 | serializedVersion: 2
80 | sprites: []
81 | outline: []
82 | physicsShape: []
83 | bones: []
84 | spriteID:
85 | internalID: 0
86 | vertices: []
87 | indices:
88 | edges: []
89 | weights: []
90 | secondaryTextures: []
91 | spritePackingTag:
92 | pSDRemoveMatte: 0
93 | pSDShowRemoveMatteOption: 0
94 | userData:
95 | assetBundleName:
96 | assetBundleVariant:
97 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/Imgs/Footer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cadfoot/unity-ecs-match-two/4fae2d840f784b53694ad52f6783954d47382f1a/Assets/Demigiant/DOTween/Editor/Imgs/Footer.png
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/Imgs/Footer.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0ce7b533e9764c141a068fadd859f9a6
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 11
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 | vTOnly: 0
27 | grayScaleToAlpha: 0
28 | generateCubemap: 6
29 | cubemapConvolution: 0
30 | seamlessCubemap: 0
31 | textureFormat: -3
32 | maxTextureSize: 256
33 | textureSettings:
34 | serializedVersion: 2
35 | filterMode: 1
36 | aniso: 1
37 | mipBias: -100
38 | wrapU: 1
39 | wrapV: 1
40 | wrapW: 1
41 | nPOTScale: 0
42 | lightmap: 0
43 | compressionQuality: 50
44 | spriteMode: 0
45 | spriteExtrude: 1
46 | spriteMeshType: 1
47 | alignment: 0
48 | spritePivot: {x: 0.5, y: 0.5}
49 | spritePixelsToUnits: 100
50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
51 | spriteGenerateFallbackPhysicsShape: 1
52 | alphaUsage: 1
53 | alphaIsTransparency: 1
54 | spriteTessellationDetail: -1
55 | textureType: 2
56 | textureShape: 1
57 | singleChannelComponent: 0
58 | flipbookRows: 1
59 | flipbookColumns: 1
60 | maxTextureSizeSet: 0
61 | compressionQualitySet: 0
62 | textureFormatSet: 0
63 | ignorePngGamma: 0
64 | applyGammaDecoding: 1
65 | platformSettings:
66 | - serializedVersion: 3
67 | buildTarget: DefaultTexturePlatform
68 | maxTextureSize: 256
69 | resizeAlgorithm: 0
70 | textureFormat: -1
71 | textureCompression: 0
72 | compressionQuality: 50
73 | crunchedCompression: 0
74 | allowsAlphaSplitting: 0
75 | overridden: 0
76 | androidETC2FallbackOverride: 0
77 | forceMaximumCompressionQuality_BC6H_BC7: 0
78 | spriteSheet:
79 | serializedVersion: 2
80 | sprites: []
81 | outline: []
82 | physicsShape: []
83 | bones: []
84 | spriteID:
85 | internalID: 0
86 | vertices: []
87 | indices:
88 | edges: []
89 | weights: []
90 | secondaryTextures: []
91 | spritePackingTag:
92 | pSDRemoveMatte: 0
93 | pSDShowRemoveMatteOption: 0
94 | userData:
95 | assetBundleName:
96 | assetBundleVariant:
97 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/Imgs/Footer_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cadfoot/unity-ecs-match-two/4fae2d840f784b53694ad52f6783954d47382f1a/Assets/Demigiant/DOTween/Editor/Imgs/Footer_dark.png
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 073261fcf37d98645bac61b0e19ec84f
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 11
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 1
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 | vTOnly: 0
27 | grayScaleToAlpha: 0
28 | generateCubemap: 6
29 | cubemapConvolution: 0
30 | seamlessCubemap: 0
31 | textureFormat: -1
32 | maxTextureSize: 1024
33 | textureSettings:
34 | serializedVersion: 2
35 | filterMode: -1
36 | aniso: -1
37 | mipBias: -100
38 | wrapU: -1
39 | wrapV: -1
40 | wrapW: -1
41 | nPOTScale: 1
42 | lightmap: 0
43 | compressionQuality: 50
44 | spriteMode: 0
45 | spriteExtrude: 1
46 | spriteMeshType: 1
47 | alignment: 0
48 | spritePivot: {x: 0.5, y: 0.5}
49 | spritePixelsToUnits: 100
50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
51 | spriteGenerateFallbackPhysicsShape: 1
52 | alphaUsage: 1
53 | alphaIsTransparency: 0
54 | spriteTessellationDetail: -1
55 | textureType: 0
56 | textureShape: 1
57 | singleChannelComponent: 0
58 | flipbookRows: 1
59 | flipbookColumns: 1
60 | maxTextureSizeSet: 0
61 | compressionQualitySet: 0
62 | textureFormatSet: 0
63 | ignorePngGamma: 0
64 | applyGammaDecoding: 1
65 | platformSettings:
66 | - serializedVersion: 3
67 | buildTarget: DefaultTexturePlatform
68 | maxTextureSize: 1024
69 | resizeAlgorithm: 0
70 | textureFormat: -1
71 | textureCompression: 1
72 | compressionQuality: 50
73 | crunchedCompression: 0
74 | allowsAlphaSplitting: 0
75 | overridden: 0
76 | androidETC2FallbackOverride: 0
77 | forceMaximumCompressionQuality_BC6H_BC7: 0
78 | spriteSheet:
79 | serializedVersion: 2
80 | sprites: []
81 | outline: []
82 | physicsShape: []
83 | bones: []
84 | spriteID:
85 | internalID: 0
86 | vertices: []
87 | indices:
88 | edges: []
89 | weights: []
90 | secondaryTextures: []
91 | spritePackingTag:
92 | pSDRemoveMatte: 0
93 | pSDShowRemoveMatteOption: 0
94 | userData:
95 | assetBundleName:
96 | assetBundleVariant:
97 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/Imgs/Header.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cadfoot/unity-ecs-match-two/4fae2d840f784b53694ad52f6783954d47382f1a/Assets/Demigiant/DOTween/Editor/Imgs/Header.jpg
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7741b4957200f0747a3c79d148de2402
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 11
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 | vTOnly: 0
27 | grayScaleToAlpha: 0
28 | generateCubemap: 6
29 | cubemapConvolution: 0
30 | seamlessCubemap: 0
31 | textureFormat: -3
32 | maxTextureSize: 512
33 | textureSettings:
34 | serializedVersion: 2
35 | filterMode: 1
36 | aniso: 1
37 | mipBias: -100
38 | wrapU: 1
39 | wrapV: 1
40 | wrapW: 1
41 | nPOTScale: 0
42 | lightmap: 0
43 | compressionQuality: 50
44 | spriteMode: 0
45 | spriteExtrude: 1
46 | spriteMeshType: 1
47 | alignment: 0
48 | spritePivot: {x: 0.5, y: 0.5}
49 | spritePixelsToUnits: 100
50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
51 | spriteGenerateFallbackPhysicsShape: 1
52 | alphaUsage: 1
53 | alphaIsTransparency: 1
54 | spriteTessellationDetail: -1
55 | textureType: 2
56 | textureShape: 1
57 | singleChannelComponent: 0
58 | flipbookRows: 1
59 | flipbookColumns: 1
60 | maxTextureSizeSet: 0
61 | compressionQualitySet: 0
62 | textureFormatSet: 0
63 | ignorePngGamma: 0
64 | applyGammaDecoding: 1
65 | platformSettings:
66 | - serializedVersion: 3
67 | buildTarget: DefaultTexturePlatform
68 | maxTextureSize: 512
69 | resizeAlgorithm: 0
70 | textureFormat: -1
71 | textureCompression: 0
72 | compressionQuality: 50
73 | crunchedCompression: 0
74 | allowsAlphaSplitting: 0
75 | overridden: 0
76 | androidETC2FallbackOverride: 0
77 | forceMaximumCompressionQuality_BC6H_BC7: 0
78 | spriteSheet:
79 | serializedVersion: 2
80 | sprites: []
81 | outline: []
82 | physicsShape: []
83 | bones: []
84 | spriteID:
85 | internalID: 0
86 | vertices: []
87 | indices:
88 | edges: []
89 | weights: []
90 | secondaryTextures: []
91 | spritePackingTag:
92 | pSDRemoveMatte: 0
93 | pSDShowRemoveMatteOption: 0
94 | userData:
95 | assetBundleName:
96 | assetBundleVariant:
97 |
--------------------------------------------------------------------------------
/Assets/Demigiant/DOTween/readme.txt:
--------------------------------------------------------------------------------
1 | DOTween and DOTween Pro are copyright (c) 2014 Daniele Giardini - Demigiant
2 |
3 | // GET STARTED //////////////////////////////////////////////
4 |
5 | - After importing a new DOTween update, select DOTween's Utility Panel from the Tools menu (if it doesn't open automatically) and press the "Setup DOTween..." button to set up additional features based on your Unity version.
6 | - In your code, add "using DG.Tweening" to each class where you want to use DOTween.
7 | - You're ready to tween. Check out the links below for full documentation and license info.
8 |
9 |
10 | // LINKS ///////////////////////////////////////////////////////
11 |
12 | DOTween website (documentation, examples, etc): http://dotween.demigiant.com
13 | DOTween license: http://dotween.demigiant.com/license.php
14 | DOTween repository (Google Code): https://code.google.com/p/dotween/
15 |
16 | // NOTES //////////////////////////////////////////////////////
17 |
18 | - DOTween's Utility Panel can be found under "Tools > 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: 6a094c30a6fab4a479d30af956a423f0
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Demigiant/Resources.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 13daa756a2eeebd458bdedc72eb4bc45
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Demigiant/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: 6e38ac6b1c3556b4c888ca8552375e1e, type: 3}
13 | m_Name: DOTweenSettings
14 | m_EditorClassIdentifier:
15 | useSafeMode: 1
16 | timeScale: 1
17 | useSmoothDeltaTime: 0
18 | maxSmoothUnscaledTime: 0.15
19 | showUnityEditorReport: 0
20 | logBehaviour: 2
21 | drawGizmos: 1
22 | defaultRecyclable: 0
23 | defaultAutoPlay: 3
24 | defaultUpdateType: 0
25 | defaultTimeScaleIndependent: 0
26 | defaultEaseType: 6
27 | defaultEaseOvershootOrAmplitude: 1.70158
28 | defaultEasePeriod: 0
29 | defaultAutoKill: 1
30 | defaultLoopType: 0
31 | storeSettingsLocation: 2
32 |
--------------------------------------------------------------------------------
/Assets/Demigiant/Resources/DOTweenSettings.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 82ca2c215b103b842a14a79b756741fd
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/_Client.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a4365ec3ba35fed4fa663596b0f46d16
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/_Client/Prefabs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: dd4104aa88a5dec4ea6df58c703f23d6
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/_Client/Prefabs/Piece.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1 &3853111105711469190
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: 4469419747773165387}
12 | - component: {fileID: 6892710017228801293}
13 | m_Layer: 0
14 | m_Name: Piece
15 | m_TagString: Untagged
16 | m_Icon: {fileID: 0}
17 | m_NavMeshLayer: 0
18 | m_StaticEditorFlags: 0
19 | m_IsActive: 1
20 | --- !u!4 &4469419747773165387
21 | Transform:
22 | m_ObjectHideFlags: 0
23 | m_CorrespondingSourceObject: {fileID: 0}
24 | m_PrefabInstance: {fileID: 0}
25 | m_PrefabAsset: {fileID: 0}
26 | m_GameObject: {fileID: 3853111105711469190}
27 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
28 | m_LocalPosition: {x: 0, y: 0, z: 0}
29 | m_LocalScale: {x: 1, y: 1, z: 1}
30 | m_Children:
31 | - {fileID: 577332088505958169}
32 | m_Father: {fileID: 0}
33 | m_RootOrder: 0
34 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
35 | --- !u!114 &6892710017228801293
36 | MonoBehaviour:
37 | m_ObjectHideFlags: 0
38 | m_CorrespondingSourceObject: {fileID: 0}
39 | m_PrefabInstance: {fileID: 0}
40 | m_PrefabAsset: {fileID: 0}
41 | m_GameObject: {fileID: 3853111105711469190}
42 | m_Enabled: 1
43 | m_EditorHideFlags: 0
44 | m_Script: {fileID: 11500000, guid: d34144802fe7500438a87ef6b370c85d, type: 3}
45 | m_Name:
46 | m_EditorClassIdentifier:
47 | SpriteRenderer: {fileID: 541876615027810285}
48 | --- !u!1 &6823978450506481748
49 | GameObject:
50 | m_ObjectHideFlags: 0
51 | m_CorrespondingSourceObject: {fileID: 0}
52 | m_PrefabInstance: {fileID: 0}
53 | m_PrefabAsset: {fileID: 0}
54 | serializedVersion: 6
55 | m_Component:
56 | - component: {fileID: 577332088505958169}
57 | - component: {fileID: 541876615027810285}
58 | m_Layer: 0
59 | m_Name: Sprite
60 | m_TagString: Untagged
61 | m_Icon: {fileID: 0}
62 | m_NavMeshLayer: 0
63 | m_StaticEditorFlags: 0
64 | m_IsActive: 1
65 | --- !u!4 &577332088505958169
66 | Transform:
67 | m_ObjectHideFlags: 0
68 | m_CorrespondingSourceObject: {fileID: 0}
69 | m_PrefabInstance: {fileID: 0}
70 | m_PrefabAsset: {fileID: 0}
71 | m_GameObject: {fileID: 6823978450506481748}
72 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
73 | m_LocalPosition: {x: 0.5, y: 0.5, z: 0}
74 | m_LocalScale: {x: 1, y: 1, z: 1}
75 | m_Children: []
76 | m_Father: {fileID: 4469419747773165387}
77 | m_RootOrder: 0
78 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
79 | --- !u!212 &541876615027810285
80 | SpriteRenderer:
81 | m_ObjectHideFlags: 0
82 | m_CorrespondingSourceObject: {fileID: 0}
83 | m_PrefabInstance: {fileID: 0}
84 | m_PrefabAsset: {fileID: 0}
85 | m_GameObject: {fileID: 6823978450506481748}
86 | m_Enabled: 1
87 | m_CastShadows: 0
88 | m_ReceiveShadows: 0
89 | m_DynamicOccludee: 1
90 | m_MotionVectors: 1
91 | m_LightProbeUsage: 1
92 | m_ReflectionProbeUsage: 1
93 | m_RayTracingMode: 0
94 | m_RayTraceProcedural: 0
95 | m_RenderingLayerMask: 1
96 | m_RendererPriority: 0
97 | m_Materials:
98 | - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
99 | m_StaticBatchInfo:
100 | firstSubMesh: 0
101 | subMeshCount: 0
102 | m_StaticBatchRoot: {fileID: 0}
103 | m_ProbeAnchor: {fileID: 0}
104 | m_LightProbeVolumeOverride: {fileID: 0}
105 | m_ScaleInLightmap: 1
106 | m_ReceiveGI: 1
107 | m_PreserveUVs: 0
108 | m_IgnoreNormalsForChartDetection: 0
109 | m_ImportantGI: 0
110 | m_StitchLightmapSeams: 1
111 | m_SelectedEditorRenderState: 0
112 | m_MinimumChartSize: 4
113 | m_AutoUVMaxDistance: 0.5
114 | m_AutoUVMaxAngle: 89
115 | m_LightmapParameters: {fileID: 0}
116 | m_SortingLayerID: 0
117 | m_SortingLayer: 0
118 | m_SortingOrder: 0
119 | m_Sprite: {fileID: 21300000, guid: 03e47ac48b54cea4589a2e24339d1f57, type: 3}
120 | m_Color: {r: 1, g: 1, b: 1, a: 1}
121 | m_FlipX: 0
122 | m_FlipY: 0
123 | m_DrawMode: 0
124 | m_Size: {x: 1, y: 1}
125 | m_AdaptiveModeThreshold: 0.5
126 | m_SpriteTileMode: 0
127 | m_WasSpriteAssigned: 1
128 | m_MaskInteraction: 0
129 | m_SpriteSortPoint: 0
130 |
--------------------------------------------------------------------------------
/Assets/_Client/Prefabs/Piece.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0839f91e88be5b94f92392bc5a76784d
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/_Client/Scenes.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 324ec54c42dd65049846841ab659a94a
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/_Client/Scenes/SampleScene.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: 0
76 | m_PVRSampling: 1
77 | m_PVRDirectSampleCount: 32
78 | m_PVRSampleCount: 500
79 | m_PVRBounces: 2
80 | m_PVREnvironmentSampleCount: 500
81 | m_PVREnvironmentReferencePointCount: 2048
82 | m_PVRFilteringMode: 2
83 | m_PVRDenoiserTypeDirect: 0
84 | m_PVRDenoiserTypeIndirect: 0
85 | m_PVRDenoiserTypeAO: 0
86 | m_PVRFilterTypeDirect: 0
87 | m_PVRFilterTypeIndirect: 0
88 | m_PVRFilterTypeAO: 0
89 | m_PVREnvironmentMIS: 0
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 &519420028
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: 519420032}
133 | - component: {fileID: 519420031}
134 | - component: {fileID: 519420029}
135 | m_Layer: 0
136 | m_Name: Main Camera
137 | m_TagString: MainCamera
138 | m_Icon: {fileID: 0}
139 | m_NavMeshLayer: 0
140 | m_StaticEditorFlags: 0
141 | m_IsActive: 1
142 | --- !u!81 &519420029
143 | AudioListener:
144 | m_ObjectHideFlags: 0
145 | m_CorrespondingSourceObject: {fileID: 0}
146 | m_PrefabInstance: {fileID: 0}
147 | m_PrefabAsset: {fileID: 0}
148 | m_GameObject: {fileID: 519420028}
149 | m_Enabled: 1
150 | --- !u!20 &519420031
151 | Camera:
152 | m_ObjectHideFlags: 0
153 | m_CorrespondingSourceObject: {fileID: 0}
154 | m_PrefabInstance: {fileID: 0}
155 | m_PrefabAsset: {fileID: 0}
156 | m_GameObject: {fileID: 519420028}
157 | m_Enabled: 1
158 | serializedVersion: 2
159 | m_ClearFlags: 2
160 | m_BackGroundColor: {r: 0.9960785, g: 0.9333334, b: 0.86666673, a: 0}
161 | m_projectionMatrixMode: 1
162 | m_GateFitMode: 2
163 | m_FOVAxisMode: 0
164 | m_SensorSize: {x: 36, y: 24}
165 | m_LensShift: {x: 0, y: 0}
166 | m_FocalLength: 50
167 | m_NormalizedViewPortRect:
168 | serializedVersion: 2
169 | x: 0
170 | y: 0
171 | width: 1
172 | height: 1
173 | near clip plane: 0.3
174 | far clip plane: 1000
175 | field of view: 60
176 | orthographic: 1
177 | orthographic size: 10
178 | m_Depth: -1
179 | m_CullingMask:
180 | serializedVersion: 2
181 | m_Bits: 4294967295
182 | m_RenderingPath: -1
183 | m_TargetTexture: {fileID: 0}
184 | m_TargetDisplay: 0
185 | m_TargetEye: 0
186 | m_HDR: 1
187 | m_AllowMSAA: 0
188 | m_AllowDynamicResolution: 0
189 | m_ForceIntoRT: 0
190 | m_OcclusionCulling: 0
191 | m_StereoConvergence: 10
192 | m_StereoSeparation: 0.022
193 | --- !u!4 &519420032
194 | Transform:
195 | m_ObjectHideFlags: 0
196 | m_CorrespondingSourceObject: {fileID: 0}
197 | m_PrefabInstance: {fileID: 0}
198 | m_PrefabAsset: {fileID: 0}
199 | m_GameObject: {fileID: 519420028}
200 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
201 | m_LocalPosition: {x: 5, y: 5, z: -10}
202 | m_LocalScale: {x: 1, y: 1, z: 1}
203 | m_Children: []
204 | m_Father: {fileID: 0}
205 | m_RootOrder: 0
206 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
207 | --- !u!1 &679006482
208 | GameObject:
209 | m_ObjectHideFlags: 0
210 | m_CorrespondingSourceObject: {fileID: 0}
211 | m_PrefabInstance: {fileID: 0}
212 | m_PrefabAsset: {fileID: 0}
213 | serializedVersion: 6
214 | m_Component:
215 | - component: {fileID: 679006483}
216 | m_Layer: 0
217 | m_Name: PiecesRoot
218 | m_TagString: Untagged
219 | m_Icon: {fileID: 0}
220 | m_NavMeshLayer: 0
221 | m_StaticEditorFlags: 0
222 | m_IsActive: 1
223 | --- !u!4 &679006483
224 | Transform:
225 | m_ObjectHideFlags: 0
226 | m_CorrespondingSourceObject: {fileID: 0}
227 | m_PrefabInstance: {fileID: 0}
228 | m_PrefabAsset: {fileID: 0}
229 | m_GameObject: {fileID: 679006482}
230 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
231 | m_LocalPosition: {x: 0, y: 0, z: 0}
232 | m_LocalScale: {x: 1, y: 1, z: 1}
233 | m_Children: []
234 | m_Father: {fileID: 0}
235 | m_RootOrder: 2
236 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
237 | --- !u!1 &789367119
238 | GameObject:
239 | m_ObjectHideFlags: 0
240 | m_CorrespondingSourceObject: {fileID: 0}
241 | m_PrefabInstance: {fileID: 0}
242 | m_PrefabAsset: {fileID: 0}
243 | serializedVersion: 6
244 | m_Component:
245 | - component: {fileID: 789367122}
246 | - component: {fileID: 789367121}
247 | - component: {fileID: 789367120}
248 | - component: {fileID: 789367123}
249 | m_Layer: 0
250 | m_Name: Game
251 | m_TagString: Untagged
252 | m_Icon: {fileID: 0}
253 | m_NavMeshLayer: 0
254 | m_StaticEditorFlags: 0
255 | m_IsActive: 1
256 | --- !u!114 &789367120
257 | MonoBehaviour:
258 | m_ObjectHideFlags: 0
259 | m_CorrespondingSourceObject: {fileID: 0}
260 | m_PrefabInstance: {fileID: 0}
261 | m_PrefabAsset: {fileID: 0}
262 | m_GameObject: {fileID: 789367119}
263 | m_Enabled: 1
264 | m_EditorHideFlags: 0
265 | m_Script: {fileID: 11500000, guid: a6286b89de6777744a59ea3972a748ea, type: 3}
266 | m_Name:
267 | m_EditorClassIdentifier:
268 | _piecesRoot: {fileID: 679006483}
269 | _pieceViewPrefab: {fileID: 6892710017228801293, guid: 0839f91e88be5b94f92392bc5a76784d,
270 | type: 3}
271 | _sprites:
272 | - {fileID: 21300000, guid: 9a35077a7b392a040a6b5017e99e9411, type: 3}
273 | - {fileID: 21300000, guid: 87b6145d6135cfd4faf83e26e8f8760f, type: 3}
274 | - {fileID: 21300000, guid: 92d29f5c3ff0f2044bde78f54704b6dd, type: 3}
275 | - {fileID: 21300000, guid: 9fae1fb05f6bcad4c81915462b7bf699, type: 3}
276 | --- !u!114 &789367121
277 | MonoBehaviour:
278 | m_ObjectHideFlags: 0
279 | m_CorrespondingSourceObject: {fileID: 0}
280 | m_PrefabInstance: {fileID: 0}
281 | m_PrefabAsset: {fileID: 0}
282 | m_GameObject: {fileID: 789367119}
283 | m_Enabled: 1
284 | m_EditorHideFlags: 0
285 | m_Script: {fileID: 11500000, guid: ea8b01e81fa1ff24aa3418cf91e5f07a, type: 3}
286 | m_Name:
287 | m_EditorClassIdentifier:
288 | _boardSize: {x: 10, y: 10}
289 | _useCustomSeed: 0
290 | _seed: 0
291 | --- !u!4 &789367122
292 | Transform:
293 | m_ObjectHideFlags: 0
294 | m_CorrespondingSourceObject: {fileID: 0}
295 | m_PrefabInstance: {fileID: 0}
296 | m_PrefabAsset: {fileID: 0}
297 | m_GameObject: {fileID: 789367119}
298 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
299 | m_LocalPosition: {x: 0, y: 0, z: 0}
300 | m_LocalScale: {x: 1, y: 1, z: 1}
301 | m_Children: []
302 | m_Father: {fileID: 0}
303 | m_RootOrder: 1
304 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
305 | --- !u!114 &789367123
306 | MonoBehaviour:
307 | m_ObjectHideFlags: 0
308 | m_CorrespondingSourceObject: {fileID: 0}
309 | m_PrefabInstance: {fileID: 0}
310 | m_PrefabAsset: {fileID: 0}
311 | m_GameObject: {fileID: 789367119}
312 | m_Enabled: 1
313 | m_EditorHideFlags: 0
314 | m_Script: {fileID: 11500000, guid: 31cd0a169d832774181c421ed633c06d, type: 3}
315 | m_Name:
316 | m_EditorClassIdentifier:
317 | _camera: {fileID: 519420031}
318 |
--------------------------------------------------------------------------------
/Assets/_Client/Scenes/SampleScene.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2cda990e2423bbf4892e6590ba056729
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9122fcc1ba7c82140b62f26196404fb1
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/BoardExtensions.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 | using Leopotam.Ecs.Types;
3 |
4 | namespace MatchTwo.Ecs
5 | {
6 | static class BoardExtensions
7 | {
8 | public static void InitLookup(ref this Board board)
9 | {
10 | board.Lookup = new int[board.Size.X * board.Size.Y];
11 | }
12 |
13 | public static void UpdateLookup(this Board board, EcsFilter pieces)
14 | {
15 | for (int i = 0; i < board.Lookup.Length; i++)
16 | board.Lookup[i] = -1;
17 |
18 | foreach (var i in pieces)
19 | {
20 | var position = pieces.Get2(i).Value;
21 | board.Lookup[board.PositionToLookupIndex(position.X, position.Y)] = i;
22 | }
23 | }
24 |
25 | public static bool HasPieceAt(this Board board, int x, int y)
26 | {
27 | return board.GetFilterIndex(x, y) != -1;
28 | }
29 |
30 | public static bool HasPieceAt(this Board board, Int2 position)
31 | {
32 | return board.HasPieceAt(position.X, position.Y);
33 | }
34 |
35 | public static int GetFilterIndex(this Board board, int x, int y)
36 | {
37 | return board.Lookup[board.PositionToLookupIndex(x, y)];
38 | }
39 |
40 | public static int GetFilterIndex(this Board board, Int2 position)
41 | {
42 | return board.GetFilterIndex(position.X, position.Y);
43 | }
44 |
45 | public static int PositionToLookupIndex(this Board board, int x, int y)
46 | {
47 | return board.Size.Y * x + y;
48 | }
49 |
50 | public static int PositionToLookupIndex(this Board board, Int2 position)
51 | {
52 | return board.PositionToLookupIndex(position);
53 | }
54 |
55 | public static bool PositionInBounds(this Board board, int x, int y)
56 | {
57 | return x >= 0 && x < board.Size.X && y >= 0 && y < board.Size.Y;
58 | }
59 |
60 | public static bool PositionInBounds(this Board board, Int2 position)
61 | {
62 | return board.PositionInBounds(position.X, position.Y);
63 | }
64 |
65 | public static int GetNextEmptyRow(this Board board, int x, int y)
66 | {
67 | y--;
68 |
69 | while (y >= 0 && !board.HasPieceAt(x, y))
70 | y--;
71 |
72 | return y + 1;
73 | }
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/BoardExtensions.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d76562d86c5436b4f84a490c84cf744f
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4281f96b04219704cba7873b8646c97a
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cadfoot/unity-ecs-match-two/4fae2d840f784b53694ad52f6783954d47382f1a/Assets/_Client/Scripts/Components/.gitkeep
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Animating.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 |
3 | namespace MatchTwo {
4 | struct Animating : IEcsIgnoreInFilter { }
5 | }
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Animating.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fb7273824d398514d8b7e532fc04f99c
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Board.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs.Types;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | struct Board
6 | {
7 | public Int2 Size;
8 | // having any game state in components is bad, but we need this for faster entity access later.
9 | // don't want to create an injectable service just for this
10 | internal int[] Lookup;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Board.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c4fb7886a86fa8c4ca6f0394740348b5
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Destroyed.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | struct Destroyed : IEcsIgnoreInFilter { }
6 | }
7 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Destroyed.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 11ce4f5cc26c767458aee590c4886b0c
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Group.cs:
--------------------------------------------------------------------------------
1 | namespace MatchTwo.Ecs
2 | {
3 | struct Group
4 | {
5 | public int Count;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Group.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f68dfb59b3e23474a9d3c691f0e5e1cd
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/GroupingTarget.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | struct GroupingTarget : IEcsIgnoreInFilter { }
6 | }
7 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/GroupingTarget.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: cfc128aef8937904b9e15c058f80c9a9
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/InGroup.cs:
--------------------------------------------------------------------------------
1 | namespace MatchTwo.Ecs
2 | {
3 | struct InGroup
4 | {
5 | public int GroupIndex;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/InGroup.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 39acc2db05650fe4683cb4f3938fd07a
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Input.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs.Types;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | struct Input
6 | {
7 | public Int2 Coordinate;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Input.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c561307b206d2bd438ab11f2235fd301
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Match.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 |
3 | namespace MatchTwo {
4 | struct Match : IEcsIgnoreInFilter { }
5 | }
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Match.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3f014996940f58345b8c2e781593e85b
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/New.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | struct New : IEcsIgnoreInFilter { }
6 | }
7 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/New.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 17225a14fecf45e4488057b8f56147e7
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Piece.cs:
--------------------------------------------------------------------------------
1 | namespace MatchTwo.Ecs
2 | {
3 | struct Piece
4 | {
5 | public int Value;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Piece.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 765b3ae92f66f5249a75b6bfaa9e8f5a
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Position.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs.Types;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | struct Position
6 | {
7 | public Int2 Value;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Position.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: be813fc3ddcd7d740a26071f3c08b1ce
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/PositionUpdated.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | struct PositionUpdated : IEcsIgnoreInFilter { }
6 | }
7 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/PositionUpdated.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f1623cea2c592354ba3510281dbfad2d
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Selected.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | struct Selected : IEcsIgnoreInFilter { }
6 | }
7 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Selected.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: cb25e609ae805c64a90e7145cb5b7d29
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Shuffled.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | struct Shuffled : IEcsIgnoreInFilter { }
6 | }
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/Shuffled.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f4d85bd4bd3ed6349ae67e185a730e6e
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/View.cs:
--------------------------------------------------------------------------------
1 | namespace MatchTwo.Ecs
2 | {
3 | struct View
4 | {
5 | public IPieceView Value;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Components/View.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 40037155845ec3449be26e68558dac4f
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/EcsStartup.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using Leopotam.Ecs;
3 | using MatchTwo.Ecs;
4 | using Random = System.Random;
5 |
6 | namespace MatchTwo
7 | {
8 | [RequireComponent(typeof(PieceViewService))]
9 | [RequireComponent(typeof(InputService))]
10 | sealed class EcsStartup : MonoBehaviour
11 | {
12 | [SerializeField] private Vector2Int _boardSize;
13 |
14 | [SerializeField] private bool _useCustomSeed;
15 | [SerializeField] private int _seed;
16 |
17 | private EcsWorld _world;
18 | private EcsSystems _systems;
19 |
20 | private void Start()
21 | {
22 | _world = new EcsWorld();
23 | _systems = new EcsSystems(_world);
24 |
25 | var boardSystems = new EcsSystems(_world, "board_systems")
26 | .Add(new BoardInitSystem(_boardSize.x, _boardSize.y))
27 | .Add(new BoardFallSystem())
28 | .Add(new BoardFillSystem())
29 | .Add(new BoardShuffleSystem())
30 | .Add(new BoardResetGroupSystem())
31 | .Add(new BoardGroupSystem())
32 | .Add(new PieceSelectSystem())
33 | .Add(new PieceDestroySelectedSystem());
34 |
35 | _systems
36 | .Add(new InputSystem())
37 |
38 | .Add(new BoardSystemsDisableIfAnimatingSystem(_systems, "board_systems"))
39 |
40 | .Add(boardSystems)
41 |
42 | .Add(new CameraFocusOnBoardSystem(Camera.main))
43 | .Add(new PieceViewCreateSystem())
44 | .Add(new PieceViewUpdatePositionSystem())
45 | .Add(new PieceViewUpdateAnimatingSystem())
46 | .Add(new PieceViewDestroySystem())
47 |
48 | .Add(new DestroyEntitiesWithDestroyedSystem())
49 |
50 | .Inject(GetComponent())
51 | .Inject(GetComponent())
52 | .Inject(_useCustomSeed ? new Random(_seed) : new Random())
53 |
54 | .OneFrame()
55 | .OneFrame()
56 | .OneFrame()
57 | .OneFrame()
58 | .OneFrame()
59 | .OneFrame()
60 |
61 | .Init();
62 | }
63 |
64 | private void Update()
65 | {
66 | _systems?.Run();
67 | }
68 |
69 | private void OnDestroy()
70 | {
71 | if (_systems != null)
72 | {
73 | _systems.Destroy();
74 | _systems = null;
75 | _world.Destroy();
76 | _world = null;
77 | }
78 | }
79 |
80 | private void OnValidate()
81 | {
82 | _boardSize.x = Mathf.Max(2, _boardSize.x);
83 | _boardSize.y = Mathf.Max(2, _boardSize.y);
84 | }
85 | }
86 | }
87 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/EcsStartup.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ea8b01e81fa1ff24aa3418cf91e5f07a
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/EcsWorldExtensions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Leopotam.Ecs;
3 | using Leopotam.Ecs.Types;
4 |
5 | namespace MatchTwo.Ecs
6 | {
7 | static class EcsWorldExtensions
8 | {
9 | public static EcsEntity CreateRandomPieceAt(this EcsWorld world, int x, int y, Random random, int maxValue = 4)
10 | {
11 | var entity = world.NewEntity();
12 | entity.Get().Value = random.Next(maxValue);
13 | entity.Get().Value = new Int2 (x, y);
14 | entity.Get();
15 |
16 | return entity;
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/EcsWorldExtensions.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2ea29574c7a5e8247bd7b28370899189
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/IPieceView.cs:
--------------------------------------------------------------------------------
1 | namespace MatchTwo
2 | {
3 | interface IPieceView
4 | {
5 | bool IsAnimating { get; }
6 | void UpdateGroup(int group);
7 | void UpdateValue(int value);
8 | void UpdatePosition(int x, int y);
9 | void Release();
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/IPieceView.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e8e0ffdc3527322479602996ffb3ba56
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Services.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5922a113d46e1674da30932df127b6da
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Services/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cadfoot/unity-ecs-match-two/4fae2d840f784b53694ad52f6783954d47382f1a/Assets/_Client/Scripts/Services/.gitkeep
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Services/IInputService.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs.Types;
2 |
3 | namespace MatchTwo
4 | {
5 | interface IInputService
6 | {
7 | bool GetClickedCoordinate(out Int2 coord);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Services/IInputService.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b09308fe5af986f46a6c9663fda34bc8
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Services/IPieceViewService.cs:
--------------------------------------------------------------------------------
1 | namespace MatchTwo
2 | {
3 | interface IPieceViewService
4 | {
5 | IPieceView CreatePieceView(int value, int x, int y);
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Services/IPieceViewService.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ea50ec4d180f1bb43842acdbb7f02e75
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f040cf85cf964ab40b2f92bc872b17b4
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cadfoot/unity-ecs-match-two/4fae2d840f784b53694ad52f6783954d47382f1a/Assets/_Client/Scripts/Systems/.gitkeep
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/BoardFallSystem.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | sealed class BoardFallSystem : IEcsRunSystem
6 | {
7 | private readonly EcsFilter _board = default;
8 | private readonly EcsFilter _pieces = default;
9 |
10 | void IEcsRunSystem.Run()
11 | {
12 | ref var board = ref _board.Get1(0);
13 | board.UpdateLookup(_pieces);
14 |
15 | for (int x = 0; x < board.Size.X; x++)
16 | {
17 | for (int y = 1; y < board.Size.Y; y++)
18 | {
19 | if (!board.HasPieceAt(x, y))
20 | continue;
21 |
22 | var newY = board.GetNextEmptyRow(x, y);
23 |
24 | if (newY == y)
25 | continue;
26 |
27 | var filterIndex = board.GetFilterIndex(x, y);
28 | ref var position = ref _pieces.Get2(filterIndex).Value;
29 | position.Y = newY;
30 |
31 | _pieces.GetEntity(filterIndex).Get();
32 |
33 | // partially update the lookup
34 | board.Lookup[board.PositionToLookupIndex(x, y)] = -1;
35 | board.Lookup[board.PositionToLookupIndex(x, newY)] = filterIndex;
36 | }
37 | }
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/BoardFallSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5a7ab6d91c9614348baf92c06d10e533
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/BoardFillSystem.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Leopotam.Ecs;
3 |
4 | namespace MatchTwo.Ecs
5 | {
6 | sealed class BoardFillSystem : IEcsRunSystem
7 | {
8 | private readonly EcsWorld _world = default;
9 | private readonly Random _random = default;
10 |
11 | private readonly EcsFilter _boards = default;
12 | private readonly EcsFilter _pieces = default;
13 |
14 | void IEcsRunSystem.Run()
15 | {
16 | ref var board = ref _boards.Get1(0);
17 | board.UpdateLookup(_pieces);
18 |
19 | for (int x = 0; x < board.Size.X; x++)
20 | {
21 | var y = board.GetNextEmptyRow(x, board.Size.Y);
22 | while (y != board.Size.Y)
23 | {
24 | _world.CreateRandomPieceAt(x, y, _random);
25 |
26 | board.UpdateLookup(_pieces);
27 | y = board.GetNextEmptyRow(x, board.Size.Y);
28 | }
29 | }
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/BoardFillSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c719e0d0ac918b74fbb2c54fc10cb065
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/BoardGroupSystem.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 | using Leopotam.Ecs.Types;
3 |
4 | namespace MatchTwo.Ecs
5 | {
6 | sealed class BoardGroupSystem : IEcsRunSystem
7 | {
8 | private readonly Int2[] _adjacents = new[] {
9 | new Int2(+1, +0), new Int2(-1, +0), new Int2(+0, +1), new Int2(+0, -1)
10 | };
11 |
12 | private readonly EcsWorld _world = default;
13 |
14 | private readonly EcsFilter _boards = default;
15 | private readonly EcsFilter _allPieces = default;
16 | private readonly EcsFilter.Exclude _nonGrouped = default;
17 | private readonly EcsFilter _groupingTargets = default;
18 | private readonly EcsFilter _groups = default;
19 |
20 | void IEcsRunSystem.Run()
21 | {
22 | if (_nonGrouped.IsEmpty())
23 | return;
24 |
25 | ref var board = ref _boards.Get1(0);
26 | board.UpdateLookup(_allPieces);
27 |
28 | while (!_nonGrouped.IsEmpty())
29 | {
30 | var groupEntity = _world.NewEntity();
31 | ref var group = ref groupEntity.Get();
32 |
33 | var groupIndex = _groups.GetEntitiesCount() - 1;
34 |
35 | var nextGroupValue = _nonGrouped.Get1(0).Value;
36 | var nextGroupingTarget = _nonGrouped.GetEntity(0);
37 | nextGroupingTarget.Get();
38 |
39 | while (!_groupingTargets.IsEmpty())
40 | {
41 | foreach (var i in _groupingTargets)
42 | {
43 | var position = _groupingTargets.Get2(i).Value;
44 | foreach (var offset in _adjacents)
45 | {
46 | var neighbourPosition = position + offset;
47 | if (!board.PositionInBounds(neighbourPosition))
48 | continue;
49 |
50 | if (!board.HasPieceAt(neighbourPosition))
51 | continue;
52 |
53 | var filterIndex = board.GetFilterIndex(neighbourPosition);
54 | if (_allPieces.Get1(filterIndex).Value != nextGroupValue)
55 | continue;
56 |
57 | var neighbourEntity = _allPieces.GetEntity(filterIndex);
58 | if (neighbourEntity.Has())
59 | continue;
60 |
61 | neighbourEntity.Get();
62 | }
63 |
64 | var entity = _groupingTargets.GetEntity(i);
65 | entity.Get().GroupIndex = groupIndex;
66 | entity.Del();
67 |
68 | group.Count++;
69 | if (group.Count == 2)
70 | groupEntity.Get();
71 | }
72 | }
73 | }
74 | }
75 | }
76 | }
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/BoardGroupSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d97608a74da1b4b49a086e82edbc8287
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/BoardInitSystem.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Leopotam.Ecs;
3 | using Leopotam.Ecs.Types;
4 |
5 | namespace MatchTwo.Ecs
6 | {
7 | sealed class BoardInitSystem : IEcsInitSystem
8 | {
9 | private readonly EcsWorld _world = default;
10 | private readonly Random _random = default;
11 |
12 | private readonly Int2 _size;
13 |
14 | public BoardInitSystem(int width, int height)
15 | {
16 | _size = new Int2(width, height);
17 | }
18 |
19 | void IEcsInitSystem.Init()
20 | {
21 | ref var board = ref _world.NewEntity().Get();
22 | board.Size = _size;
23 | board.InitLookup();
24 |
25 | for (int x = 0; x < _size.X; x++)
26 | for (int y = 0; y < _size.Y; y++)
27 | _world.CreateRandomPieceAt(x, y, _random);
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/BoardInitSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 38e1647c63082d24186c74143162b30d
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/BoardResetGroupSystem.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | sealed class BoardResetGroupSystem : IEcsRunSystem
6 | {
7 | private readonly EcsFilter _groups = default;
8 | private readonly EcsFilter _inGroups = default;
9 |
10 | private readonly EcsFilter _moved = default;
11 | private readonly EcsFilter _new = default;
12 |
13 | void IEcsRunSystem.Run()
14 | {
15 | if (_new.IsEmpty() && _moved.IsEmpty())
16 | return;
17 |
18 | foreach (var i in _groups)
19 | _groups.GetEntity(i).Destroy();
20 |
21 | foreach (var i in _inGroups)
22 | _inGroups.GetEntity(i).Del();
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/BoardResetGroupSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3f617e71846fd0a44804b715e39c8043
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/BoardShuffleSystem.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 | using System;
3 |
4 | namespace MatchTwo.Ecs
5 | {
6 | sealed class BoardShuffleSystem : IEcsRunSystem
7 | {
8 | private readonly EcsFilter _boards = default;
9 | private readonly EcsFilter.Exclude _pieces = default;
10 | private readonly EcsFilter _matches = default;
11 |
12 | private readonly Random _random = new Random();
13 |
14 | void IEcsRunSystem.Run()
15 | {
16 | if (!_matches.IsEmpty())
17 | return;
18 |
19 | ref var board = ref _boards.Get1(0);
20 | board.UpdateLookup(_pieces);
21 |
22 | while (_pieces.GetEntitiesCount() >= 2)
23 | {
24 | var first = _pieces.GetEntity(_random.Next(0, _pieces.GetEntitiesCount()));
25 | var second = _pieces.GetEntity(_random.Next(0, _pieces.GetEntitiesCount()));
26 |
27 | ref var firstPos = ref first.Get().Value;
28 | ref var secondPos = ref second.Get().Value;
29 |
30 | (firstPos, secondPos) = (secondPos, firstPos);
31 |
32 | first.Get();
33 | first.Get();
34 |
35 | second.Get();
36 | second.Get();
37 | }
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/BoardShuffleSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 42d6d3e3a978496428569a091dd96303
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/BoardSystemsDisableIfAnimatingSystem.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | sealed class BoardSystemsDisableIfAnimatingSystem : IEcsPreInitSystem, IEcsRunSystem
6 | {
7 | private readonly EcsFilter _animating = default;
8 |
9 | private readonly EcsSystems _rootSystems;
10 | private readonly string _boardSystemsName;
11 |
12 | private int _boardSystemsIndex;
13 |
14 | public BoardSystemsDisableIfAnimatingSystem(EcsSystems rootSystems, string boardSystemsName)
15 | {
16 | _rootSystems = rootSystems;
17 | _boardSystemsName = boardSystemsName;
18 | }
19 |
20 | void IEcsPreInitSystem.PreInit()
21 | {
22 | _boardSystemsIndex = _rootSystems.GetNamedRunSystem(_boardSystemsName);
23 | }
24 |
25 | void IEcsRunSystem.Run()
26 | {
27 | _rootSystems.SetRunSystemState(_boardSystemsIndex, _animating.IsEmpty());
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/BoardSystemsDisableIfAnimatingSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9b2cd5f61fd5d2841854caab96610fb2
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/CameraFocusOnBoardSystem.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using Leopotam.Ecs;
3 |
4 | namespace MatchTwo.Ecs
5 | {
6 | sealed class CameraFocusOnBoardSystem : IEcsInitSystem
7 | {
8 | private readonly EcsFilter _boards = default;
9 |
10 | private readonly Camera _camera;
11 |
12 | public CameraFocusOnBoardSystem(Camera camera)
13 | {
14 | _camera = camera;
15 | }
16 |
17 | void IEcsInitSystem.Init()
18 | {
19 | var board = _boards.Get1(0);
20 |
21 | var position = _camera.transform.position;
22 | position.x = board.Size.X * .5f;
23 | position.y = board.Size.Y * .5f;
24 | _camera.transform.position = position;
25 |
26 | _camera.orthographicSize = Mathf.Max(board.Size.X, board.Size.Y);
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/CameraFocusOnBoardSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 37763334ea1171048b355ba7e078211a
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/DestroyEntitiesWithDestroyedSystem.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | sealed class DestroyEntitiesWithDestroyedSystem : IEcsRunSystem
6 | {
7 | private readonly EcsFilter _destroyed = default;
8 |
9 | void IEcsRunSystem.Run()
10 | {
11 | foreach (var i in _destroyed)
12 | _destroyed.GetEntity(i).Destroy();
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/DestroyEntitiesWithDestroyedSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4871ff64f79d91849bd38676224a2bdb
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/InputSystem.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | sealed class InputSystem : IEcsRunSystem
6 | {
7 | private readonly EcsWorld _world = default;
8 | private readonly IInputService _input = default;
9 |
10 | void IEcsRunSystem.Run()
11 | {
12 | if (_input.GetClickedCoordinate(out var coord))
13 | {
14 | _world.NewEntity()
15 | .Replace(new Input { Coordinate = coord });
16 | }
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/InputSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 05131e55fe151c04c9415959e5524e6c
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/PieceDestroySelectedSystem.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | sealed class PieceDestroySelectedSystem : IEcsRunSystem
6 | {
7 | private readonly EcsFilter _selected = default;
8 | private readonly EcsFilter _pieces = default;
9 | private readonly EcsFilter _groups = default;
10 |
11 | void IEcsRunSystem.Run()
12 | {
13 | foreach (var i in _selected)
14 | {
15 | var groupIndex = _selected.Get2(i).GroupIndex;
16 | if (!_groups.GetEntity(groupIndex).Has())
17 | continue;
18 | DestroyPiecesOfGroup(groupIndex);
19 | }
20 | }
21 |
22 | private void DestroyPiecesOfGroup(int groupIndex)
23 | {
24 | foreach (var i in _pieces)
25 | {
26 | if (_pieces.Get1(i).GroupIndex != groupIndex)
27 | continue;
28 | var entity = _pieces.GetEntity(i);
29 | entity.Get();
30 | }
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/PieceDestroySelectedSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5ab8a96c6aa665a4bab6fb2aad5835f4
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/PieceSelectSystem.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | sealed class PieceSelectSystem : IEcsRunSystem
6 | {
7 | private readonly EcsFilter _boards = default;
8 | private readonly EcsFilter _inputs = default;
9 | private readonly EcsFilter _pieces = default;
10 |
11 | void IEcsRunSystem.Run()
12 | {
13 | ref var board = ref _boards.Get1(0);
14 | board.UpdateLookup(_pieces);
15 |
16 | foreach (var i in _inputs)
17 | {
18 | var coordinate = _inputs.Get1(i).Coordinate;
19 | if (!board.PositionInBounds(coordinate) || !board.HasPieceAt(coordinate))
20 | continue;
21 | var filterIndex = board.GetFilterIndex(coordinate);
22 | _pieces.GetEntity(filterIndex).Get();
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/PieceSelectSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3da714085a5407644942f4e09f5aa91c
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/PieceViewCreateSystem.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | sealed class PieceViewCreateSystem : IEcsRunSystem
6 | {
7 | private readonly IPieceViewService _viewService = default;
8 |
9 | private readonly EcsFilter _boards = default;
10 | private readonly EcsFilter.Exclude _pieces = default;
11 |
12 |
13 |
14 | void IEcsRunSystem.Run()
15 | {
16 | if (_pieces.IsEmpty())
17 | return;
18 |
19 | var board = _boards.Get1(0);
20 |
21 | var offsets = new int[board.Size.X];
22 |
23 | foreach (var i in _pieces)
24 | offsets[_pieces.Get2(i).Value.X]++;
25 |
26 | foreach (var i in _pieces)
27 | {
28 | var value = _pieces.Get1(i).Value;
29 | var position = _pieces.Get2(i).Value;
30 |
31 | var view = _viewService.CreatePieceView(value, position.X, position.Y + offsets[position.X]);
32 | view.UpdatePosition(position.X, position.Y);
33 |
34 | _pieces.GetEntity(i).Get().Value = view;
35 | }
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/PieceViewCreateSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a88d68202f18a454ca99ec54b55506e9
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/PieceViewDestroySystem.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | sealed class PieceViewDestroySystem : IEcsRunSystem
6 | {
7 | private readonly EcsFilter _pieces = default;
8 |
9 | void IEcsRunSystem.Run()
10 | {
11 | foreach (var i in _pieces)
12 | {
13 | _pieces.Get2(i).Value.Release();
14 | _pieces.GetEntity(i).Del();
15 | }
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/PieceViewDestroySystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 769c3ae1b2b5ec7468254ce9f4778966
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/PieceViewUpdateAnimatingSystem.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | sealed class PieceViewUpdateAnimatingSystem : IEcsRunSystem
6 | {
7 | private readonly EcsFilter.Exclude _pieces = default;
8 |
9 | void IEcsRunSystem.Run()
10 | {
11 | foreach (var i in _pieces)
12 | {
13 | var view = _pieces.Get1(i).Value;
14 | var entity = _pieces.GetEntity(i);
15 | if (view.IsAnimating)
16 | entity.Get();
17 | else
18 | entity.Del();
19 | }
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/PieceViewUpdateAnimatingSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: df2f7094cd7113e46889e5412de9e2b1
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/PieceViewUpdatePositionSystem.cs:
--------------------------------------------------------------------------------
1 | using Leopotam.Ecs;
2 |
3 | namespace MatchTwo.Ecs
4 | {
5 | sealed class PieceViewUpdatePositionSystem : IEcsRunSystem
6 | {
7 | private readonly EcsFilter _pieces = default;
8 | private readonly EcsFilter _pieces2 = default;
9 |
10 |
11 | void IEcsRunSystem.Run()
12 | {
13 | foreach (var i in _pieces)
14 | {
15 | var view = _pieces.Get1(i).Value;
16 | var position = _pieces.Get2(i).Value;
17 |
18 | view.UpdatePosition(position.X, position.Y);
19 | }
20 |
21 | foreach (var i in _pieces2)
22 | {
23 | var view = _pieces2.Get1(i).Value;
24 | var entity = _pieces2.GetEntity(i);
25 | var group = entity.Has() ? entity.Get().GroupIndex : -1;
26 |
27 | view.UpdateGroup(group);
28 | }
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/Systems/PieceViewUpdatePositionSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: db696c1d930429c48afc917ab7351c7f
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/UnityComponents.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f5c9e0fec9aa97749a121c1fd6ecdec3
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/UnityComponents/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cadfoot/unity-ecs-match-two/4fae2d840f784b53694ad52f6783954d47382f1a/Assets/_Client/Scripts/UnityComponents/.gitkeep
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/UnityComponents/InputService.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using Leopotam.Ecs.Types;
3 |
4 | namespace MatchTwo
5 | {
6 | public sealed class InputService : MonoBehaviour, IInputService
7 | {
8 | [SerializeField] private Camera _camera;
9 |
10 | bool IInputService.GetClickedCoordinate(out Int2 coord)
11 | {
12 | coord = new Int2();
13 | if (!Input.GetMouseButtonUp(0))
14 | return false;
15 | var worldPosition = _camera.ScreenToWorldPoint(Input.mousePosition);
16 | coord.Set(
17 | Mathf.FloorToInt(worldPosition.x),
18 | Mathf.FloorToInt(worldPosition.y)
19 | );
20 | return true;
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/UnityComponents/InputService.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 31cd0a169d832774181c421ed633c06d
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/UnityComponents/PieceView.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using DG.Tweening;
3 |
4 | namespace MatchTwo
5 | {
6 | sealed class PieceView : MonoBehaviour, IPieceView
7 | {
8 | public SpriteRenderer SpriteRenderer;
9 | private int _group = -1;
10 |
11 | public bool IsAnimating => DOTween.IsTweening(transform);
12 |
13 | public void UpdateGroup(int group)
14 | {
15 | _group = group;
16 | }
17 |
18 | public void UpdateValue(int value)
19 | {
20 | }
21 |
22 | public void UpdatePosition(int x, int y)
23 | {
24 | DOTween.Kill(transform);
25 | transform.DOLocalMove(new Vector2(x, y), 5f)
26 | .SetSpeedBased(true)
27 | .SetEase(Ease.OutBounce);
28 | }
29 |
30 | public void Release()
31 | {
32 | SpriteRenderer.DOFade(0f, .3f);
33 | SpriteRenderer.transform.DOScale(Vector3.one * 1.5f, .3f)
34 | .OnComplete(() => Destroy(gameObject));
35 | }
36 |
37 | private void OnDrawGizmos()
38 | {
39 | UnityEditor.Handles.color = Color.black;
40 | UnityEditor.Handles.Label(transform.position + Vector3.up * .5f, _group.ToString());
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/UnityComponents/PieceView.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d34144802fe7500438a87ef6b370c85d
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/UnityComponents/PieceViewService.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | namespace MatchTwo
4 | {
5 | class PieceViewService : MonoBehaviour, IPieceViewService
6 | {
7 | [SerializeField] private Transform _piecesRoot;
8 |
9 | [SerializeField] private PieceView _pieceViewPrefab;
10 | [SerializeField] private Sprite[] _sprites;
11 |
12 | public IPieceView CreatePieceView(int value, int x, int y)
13 | {
14 | var position = new Vector2(x, y);
15 | var rotation = Quaternion.identity;
16 |
17 | var pieceView = Instantiate(_pieceViewPrefab, position, rotation, _piecesRoot);
18 | pieceView.SpriteRenderer.sprite = _sprites[value];
19 |
20 | return pieceView;
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Assets/_Client/Scripts/UnityComponents/PieceViewService.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a6286b89de6777744a59ea3972a748ea
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Client/Sprites.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 93f87f569824cdd479c4032eeb17d207
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/_Client/Sprites/Candies.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4dbee590cfae93a4a91870c603c11815
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/_Client/Sprites/Candies/blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cadfoot/unity-ecs-match-two/4fae2d840f784b53694ad52f6783954d47382f1a/Assets/_Client/Sprites/Candies/blue.png
--------------------------------------------------------------------------------
/Assets/_Client/Sprites/Candies/blue.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9a35077a7b392a040a6b5017e99e9411
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 11
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 0
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 | vTOnly: 0
27 | grayScaleToAlpha: 0
28 | generateCubemap: 6
29 | cubemapConvolution: 0
30 | seamlessCubemap: 0
31 | textureFormat: 1
32 | maxTextureSize: 2048
33 | textureSettings:
34 | serializedVersion: 2
35 | filterMode: -1
36 | aniso: -1
37 | mipBias: -100
38 | wrapU: 1
39 | wrapV: 1
40 | wrapW: 1
41 | nPOTScale: 0
42 | lightmap: 0
43 | compressionQuality: 50
44 | spriteMode: 1
45 | spriteExtrude: 1
46 | spriteMeshType: 0
47 | alignment: 0
48 | spritePivot: {x: 0.5, y: 0.5}
49 | spritePixelsToUnits: 151
50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
51 | spriteGenerateFallbackPhysicsShape: 0
52 | alphaUsage: 1
53 | alphaIsTransparency: 1
54 | spriteTessellationDetail: -1
55 | textureType: 8
56 | textureShape: 1
57 | singleChannelComponent: 0
58 | flipbookRows: 1
59 | flipbookColumns: 1
60 | maxTextureSizeSet: 0
61 | compressionQualitySet: 0
62 | textureFormatSet: 0
63 | ignorePngGamma: 0
64 | applyGammaDecoding: 0
65 | platformSettings:
66 | - serializedVersion: 3
67 | buildTarget: DefaultTexturePlatform
68 | maxTextureSize: 128
69 | resizeAlgorithm: 0
70 | textureFormat: -1
71 | textureCompression: 1
72 | compressionQuality: 50
73 | crunchedCompression: 0
74 | allowsAlphaSplitting: 0
75 | overridden: 0
76 | androidETC2FallbackOverride: 0
77 | forceMaximumCompressionQuality_BC6H_BC7: 0
78 | - serializedVersion: 3
79 | buildTarget: Standalone
80 | maxTextureSize: 128
81 | resizeAlgorithm: 0
82 | textureFormat: -1
83 | textureCompression: 1
84 | compressionQuality: 50
85 | crunchedCompression: 0
86 | allowsAlphaSplitting: 0
87 | overridden: 0
88 | androidETC2FallbackOverride: 0
89 | forceMaximumCompressionQuality_BC6H_BC7: 0
90 | spriteSheet:
91 | serializedVersion: 2
92 | sprites: []
93 | outline: []
94 | physicsShape: []
95 | bones: []
96 | spriteID: 5e97eb03825dee720800000000000000
97 | internalID: 0
98 | vertices: []
99 | indices:
100 | edges: []
101 | weights: []
102 | secondaryTextures: []
103 | spritePackingTag:
104 | pSDRemoveMatte: 0
105 | pSDShowRemoveMatteOption: 0
106 | userData:
107 | assetBundleName:
108 | assetBundleVariant:
109 |
--------------------------------------------------------------------------------
/Assets/_Client/Sprites/Candies/green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cadfoot/unity-ecs-match-two/4fae2d840f784b53694ad52f6783954d47382f1a/Assets/_Client/Sprites/Candies/green.png
--------------------------------------------------------------------------------
/Assets/_Client/Sprites/Candies/green.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 92d29f5c3ff0f2044bde78f54704b6dd
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 11
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 0
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 | vTOnly: 0
27 | grayScaleToAlpha: 0
28 | generateCubemap: 6
29 | cubemapConvolution: 0
30 | seamlessCubemap: 0
31 | textureFormat: 1
32 | maxTextureSize: 2048
33 | textureSettings:
34 | serializedVersion: 2
35 | filterMode: -1
36 | aniso: -1
37 | mipBias: -100
38 | wrapU: 1
39 | wrapV: 1
40 | wrapW: 1
41 | nPOTScale: 0
42 | lightmap: 0
43 | compressionQuality: 50
44 | spriteMode: 1
45 | spriteExtrude: 1
46 | spriteMeshType: 0
47 | alignment: 0
48 | spritePivot: {x: 0.5, y: 0.5}
49 | spritePixelsToUnits: 151
50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
51 | spriteGenerateFallbackPhysicsShape: 0
52 | alphaUsage: 1
53 | alphaIsTransparency: 1
54 | spriteTessellationDetail: -1
55 | textureType: 8
56 | textureShape: 1
57 | singleChannelComponent: 0
58 | flipbookRows: 1
59 | flipbookColumns: 1
60 | maxTextureSizeSet: 0
61 | compressionQualitySet: 0
62 | textureFormatSet: 0
63 | ignorePngGamma: 0
64 | applyGammaDecoding: 0
65 | platformSettings:
66 | - serializedVersion: 3
67 | buildTarget: DefaultTexturePlatform
68 | maxTextureSize: 128
69 | resizeAlgorithm: 0
70 | textureFormat: -1
71 | textureCompression: 1
72 | compressionQuality: 50
73 | crunchedCompression: 0
74 | allowsAlphaSplitting: 0
75 | overridden: 0
76 | androidETC2FallbackOverride: 0
77 | forceMaximumCompressionQuality_BC6H_BC7: 0
78 | - serializedVersion: 3
79 | buildTarget: Standalone
80 | maxTextureSize: 128
81 | resizeAlgorithm: 0
82 | textureFormat: -1
83 | textureCompression: 1
84 | compressionQuality: 50
85 | crunchedCompression: 0
86 | allowsAlphaSplitting: 0
87 | overridden: 0
88 | androidETC2FallbackOverride: 0
89 | forceMaximumCompressionQuality_BC6H_BC7: 0
90 | spriteSheet:
91 | serializedVersion: 2
92 | sprites: []
93 | outline: []
94 | physicsShape: []
95 | bones: []
96 | spriteID: 5e97eb03825dee720800000000000000
97 | internalID: 0
98 | vertices: []
99 | indices:
100 | edges: []
101 | weights: []
102 | secondaryTextures: []
103 | spritePackingTag:
104 | pSDRemoveMatte: 0
105 | pSDShowRemoveMatteOption: 0
106 | userData:
107 | assetBundleName:
108 | assetBundleVariant:
109 |
--------------------------------------------------------------------------------
/Assets/_Client/Sprites/Candies/pink.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cadfoot/unity-ecs-match-two/4fae2d840f784b53694ad52f6783954d47382f1a/Assets/_Client/Sprites/Candies/pink.png
--------------------------------------------------------------------------------
/Assets/_Client/Sprites/Candies/pink.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9fae1fb05f6bcad4c81915462b7bf699
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 11
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 0
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 | vTOnly: 0
27 | grayScaleToAlpha: 0
28 | generateCubemap: 6
29 | cubemapConvolution: 0
30 | seamlessCubemap: 0
31 | textureFormat: 1
32 | maxTextureSize: 2048
33 | textureSettings:
34 | serializedVersion: 2
35 | filterMode: -1
36 | aniso: -1
37 | mipBias: -100
38 | wrapU: 1
39 | wrapV: 1
40 | wrapW: 1
41 | nPOTScale: 0
42 | lightmap: 0
43 | compressionQuality: 50
44 | spriteMode: 1
45 | spriteExtrude: 1
46 | spriteMeshType: 0
47 | alignment: 0
48 | spritePivot: {x: 0.5, y: 0.5}
49 | spritePixelsToUnits: 151
50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
51 | spriteGenerateFallbackPhysicsShape: 0
52 | alphaUsage: 1
53 | alphaIsTransparency: 1
54 | spriteTessellationDetail: -1
55 | textureType: 8
56 | textureShape: 1
57 | singleChannelComponent: 0
58 | flipbookRows: 1
59 | flipbookColumns: 1
60 | maxTextureSizeSet: 0
61 | compressionQualitySet: 0
62 | textureFormatSet: 0
63 | ignorePngGamma: 0
64 | applyGammaDecoding: 0
65 | platformSettings:
66 | - serializedVersion: 3
67 | buildTarget: DefaultTexturePlatform
68 | maxTextureSize: 128
69 | resizeAlgorithm: 0
70 | textureFormat: -1
71 | textureCompression: 1
72 | compressionQuality: 50
73 | crunchedCompression: 0
74 | allowsAlphaSplitting: 0
75 | overridden: 0
76 | androidETC2FallbackOverride: 0
77 | forceMaximumCompressionQuality_BC6H_BC7: 0
78 | - serializedVersion: 3
79 | buildTarget: Standalone
80 | maxTextureSize: 128
81 | resizeAlgorithm: 0
82 | textureFormat: -1
83 | textureCompression: 1
84 | compressionQuality: 50
85 | crunchedCompression: 0
86 | allowsAlphaSplitting: 0
87 | overridden: 0
88 | androidETC2FallbackOverride: 0
89 | forceMaximumCompressionQuality_BC6H_BC7: 0
90 | spriteSheet:
91 | serializedVersion: 2
92 | sprites: []
93 | outline: []
94 | physicsShape: []
95 | bones: []
96 | spriteID: 5e97eb03825dee720800000000000000
97 | internalID: 0
98 | vertices: []
99 | indices:
100 | edges: []
101 | weights: []
102 | secondaryTextures: []
103 | spritePackingTag:
104 | pSDRemoveMatte: 0
105 | pSDShowRemoveMatteOption: 0
106 | userData:
107 | assetBundleName:
108 | assetBundleVariant:
109 |
--------------------------------------------------------------------------------
/Assets/_Client/Sprites/Candies/red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cadfoot/unity-ecs-match-two/4fae2d840f784b53694ad52f6783954d47382f1a/Assets/_Client/Sprites/Candies/red.png
--------------------------------------------------------------------------------
/Assets/_Client/Sprites/Candies/red.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 87b6145d6135cfd4faf83e26e8f8760f
3 | TextureImporter:
4 | internalIDToNameTable: []
5 | externalObjects: {}
6 | serializedVersion: 11
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 0
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 | vTOnly: 0
27 | grayScaleToAlpha: 0
28 | generateCubemap: 6
29 | cubemapConvolution: 0
30 | seamlessCubemap: 0
31 | textureFormat: 1
32 | maxTextureSize: 2048
33 | textureSettings:
34 | serializedVersion: 2
35 | filterMode: -1
36 | aniso: -1
37 | mipBias: -100
38 | wrapU: 1
39 | wrapV: 1
40 | wrapW: 1
41 | nPOTScale: 0
42 | lightmap: 0
43 | compressionQuality: 50
44 | spriteMode: 1
45 | spriteExtrude: 1
46 | spriteMeshType: 0
47 | alignment: 0
48 | spritePivot: {x: 0.5, y: 0.5}
49 | spritePixelsToUnits: 151
50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
51 | spriteGenerateFallbackPhysicsShape: 0
52 | alphaUsage: 1
53 | alphaIsTransparency: 1
54 | spriteTessellationDetail: -1
55 | textureType: 8
56 | textureShape: 1
57 | singleChannelComponent: 0
58 | flipbookRows: 1
59 | flipbookColumns: 1
60 | maxTextureSizeSet: 0
61 | compressionQualitySet: 0
62 | textureFormatSet: 0
63 | ignorePngGamma: 0
64 | applyGammaDecoding: 0
65 | platformSettings:
66 | - serializedVersion: 3
67 | buildTarget: DefaultTexturePlatform
68 | maxTextureSize: 128
69 | resizeAlgorithm: 0
70 | textureFormat: -1
71 | textureCompression: 1
72 | compressionQuality: 50
73 | crunchedCompression: 0
74 | allowsAlphaSplitting: 0
75 | overridden: 0
76 | androidETC2FallbackOverride: 0
77 | forceMaximumCompressionQuality_BC6H_BC7: 0
78 | - serializedVersion: 3
79 | buildTarget: Standalone
80 | maxTextureSize: 128
81 | resizeAlgorithm: 0
82 | textureFormat: -1
83 | textureCompression: 1
84 | compressionQuality: 50
85 | crunchedCompression: 0
86 | allowsAlphaSplitting: 0
87 | overridden: 0
88 | androidETC2FallbackOverride: 0
89 | forceMaximumCompressionQuality_BC6H_BC7: 0
90 | spriteSheet:
91 | serializedVersion: 2
92 | sprites: []
93 | outline: []
94 | physicsShape: []
95 | bones: []
96 | spriteID: 5e97eb03825dee720800000000000000
97 | internalID: 0
98 | vertices: []
99 | indices:
100 | edges: []
101 | weights: []
102 | secondaryTextures: []
103 | spritePackingTag:
104 | pSDRemoveMatte: 0
105 | pSDShowRemoveMatteOption: 0
106 | userData:
107 | assetBundleName:
108 | assetBundleVariant:
109 |
--------------------------------------------------------------------------------
/Assets/_Client/Sprites/Piece.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cadfoot/unity-ecs-match-two/4fae2d840f784b53694ad52f6783954d47382f1a/Assets/_Client/Sprites/Piece.png
--------------------------------------------------------------------------------
/Assets/_Client/Sprites/Piece.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 03e47ac48b54cea4589a2e24339d1f57
3 | TextureImporter:
4 | internalIDToNameTable:
5 | - first:
6 | 213: -2413806693520163455
7 | second: Circle
8 | externalObjects: {}
9 | serializedVersion: 11
10 | mipmaps:
11 | mipMapMode: 0
12 | enableMipMap: 0
13 | sRGBTexture: 1
14 | linearTexture: 0
15 | fadeOut: 0
16 | borderMipMap: 0
17 | mipMapsPreserveCoverage: 0
18 | alphaTestReferenceValue: 0.5
19 | mipMapFadeDistanceStart: 1
20 | mipMapFadeDistanceEnd: 3
21 | bumpmap:
22 | convertToNormalMap: 0
23 | externalNormalMap: 0
24 | heightScale: 0.25
25 | normalMapFilter: 0
26 | isReadable: 0
27 | streamingMipmaps: 0
28 | streamingMipmapsPriority: 0
29 | vTOnly: 0
30 | grayScaleToAlpha: 0
31 | generateCubemap: 6
32 | cubemapConvolution: 0
33 | seamlessCubemap: 0
34 | textureFormat: 1
35 | maxTextureSize: 2048
36 | textureSettings:
37 | serializedVersion: 2
38 | filterMode: 1
39 | aniso: -1
40 | mipBias: -100
41 | wrapU: 1
42 | wrapV: 1
43 | wrapW: 1
44 | nPOTScale: 0
45 | lightmap: 0
46 | compressionQuality: 50
47 | spriteMode: 1
48 | spriteExtrude: 1
49 | spriteMeshType: 0
50 | alignment: 0
51 | spritePivot: {x: 0.5, y: 0.5}
52 | spritePixelsToUnits: 256
53 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
54 | spriteGenerateFallbackPhysicsShape: 0
55 | alphaUsage: 1
56 | alphaIsTransparency: 1
57 | spriteTessellationDetail: 0
58 | textureType: 8
59 | textureShape: 1
60 | singleChannelComponent: 0
61 | flipbookRows: 1
62 | flipbookColumns: 1
63 | maxTextureSizeSet: 0
64 | compressionQualitySet: 0
65 | textureFormatSet: 0
66 | ignorePngGamma: 0
67 | applyGammaDecoding: 0
68 | platformSettings:
69 | - serializedVersion: 3
70 | buildTarget: DefaultTexturePlatform
71 | maxTextureSize: 2048
72 | resizeAlgorithm: 0
73 | textureFormat: -1
74 | textureCompression: 1
75 | compressionQuality: 50
76 | crunchedCompression: 0
77 | allowsAlphaSplitting: 0
78 | overridden: 0
79 | androidETC2FallbackOverride: 0
80 | forceMaximumCompressionQuality_BC6H_BC7: 0
81 | - serializedVersion: 3
82 | buildTarget: Standalone
83 | maxTextureSize: 2048
84 | resizeAlgorithm: 0
85 | textureFormat: -1
86 | textureCompression: 1
87 | compressionQuality: 50
88 | crunchedCompression: 0
89 | allowsAlphaSplitting: 0
90 | overridden: 0
91 | androidETC2FallbackOverride: 0
92 | forceMaximumCompressionQuality_BC6H_BC7: 0
93 | - serializedVersion: 3
94 | buildTarget: Android
95 | maxTextureSize: 2048
96 | resizeAlgorithm: 0
97 | textureFormat: -1
98 | textureCompression: 1
99 | compressionQuality: 50
100 | crunchedCompression: 0
101 | allowsAlphaSplitting: 0
102 | overridden: 0
103 | androidETC2FallbackOverride: 0
104 | forceMaximumCompressionQuality_BC6H_BC7: 0
105 | - serializedVersion: 3
106 | buildTarget: iPhone
107 | maxTextureSize: 2048
108 | resizeAlgorithm: 0
109 | textureFormat: -1
110 | textureCompression: 1
111 | compressionQuality: 50
112 | crunchedCompression: 0
113 | allowsAlphaSplitting: 0
114 | overridden: 0
115 | androidETC2FallbackOverride: 0
116 | forceMaximumCompressionQuality_BC6H_BC7: 0
117 | spriteSheet:
118 | serializedVersion: 2
119 | sprites:
120 | - serializedVersion: 2
121 | name: Circle
122 | rect:
123 | serializedVersion: 2
124 | x: 0
125 | y: 0
126 | width: 256
127 | height: 256
128 | alignment: 0
129 | pivot: {x: 0.5, y: 0.5}
130 | border: {x: 0, y: 0, z: 0, w: 0}
131 | outline:
132 | - - {x: -33, y: 128}
133 | - {x: -95, y: 95}
134 | - {x: -128, y: 33}
135 | - {x: -128, y: -33}
136 | - {x: -95, y: -95}
137 | - {x: -33, y: -128}
138 | - {x: 33, y: -128}
139 | - {x: 95, y: -95}
140 | - {x: 128, y: -33}
141 | - {x: 128, y: 33}
142 | - {x: 95, y: 95}
143 | - {x: 33, y: 128}
144 | physicsShape: []
145 | tessellationDetail: 0
146 | bones: []
147 | spriteID: 18d3544e99f608ed0800000000000000
148 | internalID: -2413806693520163455
149 | vertices: []
150 | indices:
151 | edges: []
152 | weights: []
153 | outline:
154 | - - {x: -33, y: 128}
155 | - {x: -95, y: 95}
156 | - {x: -128, y: 33}
157 | - {x: -128, y: -33}
158 | - {x: -95, y: -95}
159 | - {x: -33, y: -128}
160 | - {x: 33, y: -128}
161 | - {x: 95, y: -95}
162 | - {x: 128, y: -33}
163 | - {x: 128, y: 33}
164 | - {x: 95, y: 95}
165 | - {x: 33, y: 128}
166 | physicsShape: []
167 | bones: []
168 | spriteID: 5e97eb03825dee720800000000000000
169 | internalID: 0
170 | vertices: []
171 | indices:
172 | edges: []
173 | weights: []
174 | secondaryTextures: []
175 | spritePackingTag:
176 | pSDRemoveMatte: 0
177 | pSDShowRemoveMatteOption: 0
178 | userData:
179 | assetBundleName:
180 | assetBundleVariant:
181 |
--------------------------------------------------------------------------------
/Assets/_Client/Sprites/UnitSquare.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cadfoot/unity-ecs-match-two/4fae2d840f784b53694ad52f6783954d47382f1a/Assets/_Client/Sprites/UnitSquare.png
--------------------------------------------------------------------------------
/Assets/_Client/Sprites/UnitSquare.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 60f22d1b6eb9be94184c4cde8b7492f6
3 | TextureImporter:
4 | internalIDToNameTable:
5 | - first:
6 | 213: 7482667652216324306
7 | second: Square
8 | externalObjects: {}
9 | serializedVersion: 11
10 | mipmaps:
11 | mipMapMode: 0
12 | enableMipMap: 0
13 | sRGBTexture: 0
14 | linearTexture: 0
15 | fadeOut: 0
16 | borderMipMap: 0
17 | mipMapsPreserveCoverage: 0
18 | alphaTestReferenceValue: 0.5
19 | mipMapFadeDistanceStart: 1
20 | mipMapFadeDistanceEnd: 3
21 | bumpmap:
22 | convertToNormalMap: 0
23 | externalNormalMap: 0
24 | heightScale: 0.25
25 | normalMapFilter: 0
26 | isReadable: 0
27 | streamingMipmaps: 0
28 | streamingMipmapsPriority: 0
29 | vTOnly: 0
30 | grayScaleToAlpha: 0
31 | generateCubemap: 6
32 | cubemapConvolution: 0
33 | seamlessCubemap: 0
34 | textureFormat: 1
35 | maxTextureSize: 2048
36 | textureSettings:
37 | serializedVersion: 2
38 | filterMode: 1
39 | aniso: -1
40 | mipBias: -100
41 | wrapU: 1
42 | wrapV: 1
43 | wrapW: 1
44 | nPOTScale: 0
45 | lightmap: 0
46 | compressionQuality: 50
47 | spriteMode: 2
48 | spriteExtrude: 1
49 | spriteMeshType: 0
50 | alignment: 0
51 | spritePivot: {x: 0.5, y: 0.5}
52 | spritePixelsToUnits: 256
53 | spriteBorder: {x: 4, y: 4, z: 4, w: 4}
54 | spriteGenerateFallbackPhysicsShape: 0
55 | alphaUsage: 1
56 | alphaIsTransparency: 0
57 | spriteTessellationDetail: 0
58 | textureType: 8
59 | textureShape: 1
60 | singleChannelComponent: 0
61 | flipbookRows: 1
62 | flipbookColumns: 1
63 | maxTextureSizeSet: 0
64 | compressionQualitySet: 0
65 | textureFormatSet: 0
66 | ignorePngGamma: 0
67 | applyGammaDecoding: 0
68 | platformSettings:
69 | - serializedVersion: 3
70 | buildTarget: DefaultTexturePlatform
71 | maxTextureSize: 2048
72 | resizeAlgorithm: 0
73 | textureFormat: -1
74 | textureCompression: 1
75 | compressionQuality: 50
76 | crunchedCompression: 0
77 | allowsAlphaSplitting: 0
78 | overridden: 0
79 | androidETC2FallbackOverride: 0
80 | forceMaximumCompressionQuality_BC6H_BC7: 0
81 | - serializedVersion: 3
82 | buildTarget: Standalone
83 | maxTextureSize: 2048
84 | resizeAlgorithm: 0
85 | textureFormat: -1
86 | textureCompression: 1
87 | compressionQuality: 50
88 | crunchedCompression: 0
89 | allowsAlphaSplitting: 0
90 | overridden: 0
91 | androidETC2FallbackOverride: 0
92 | forceMaximumCompressionQuality_BC6H_BC7: 0
93 | - serializedVersion: 3
94 | buildTarget: iPhone
95 | maxTextureSize: 2048
96 | resizeAlgorithm: 0
97 | textureFormat: -1
98 | textureCompression: 1
99 | compressionQuality: 50
100 | crunchedCompression: 0
101 | allowsAlphaSplitting: 0
102 | overridden: 0
103 | androidETC2FallbackOverride: 0
104 | forceMaximumCompressionQuality_BC6H_BC7: 0
105 | - serializedVersion: 3
106 | buildTarget: Android
107 | maxTextureSize: 2048
108 | resizeAlgorithm: 0
109 | textureFormat: -1
110 | textureCompression: 1
111 | compressionQuality: 50
112 | crunchedCompression: 0
113 | allowsAlphaSplitting: 0
114 | overridden: 0
115 | androidETC2FallbackOverride: 0
116 | forceMaximumCompressionQuality_BC6H_BC7: 0
117 | spriteSheet:
118 | serializedVersion: 2
119 | sprites:
120 | - serializedVersion: 2
121 | name: Square
122 | rect:
123 | serializedVersion: 2
124 | x: 0
125 | y: 0
126 | width: 256
127 | height: 256
128 | alignment: 0
129 | pivot: {x: 0.5, y: 0.5}
130 | border: {x: 0, y: 0, z: 0, w: 0}
131 | outline: []
132 | physicsShape: []
133 | tessellationDetail: 0
134 | bones: []
135 | spriteID: 2d009a6b596c7d760800000000000000
136 | internalID: 7482667652216324306
137 | vertices: []
138 | indices:
139 | edges: []
140 | weights: []
141 | outline: []
142 | physicsShape:
143 | - - {x: -128, y: 128}
144 | - {x: -128, y: -128}
145 | - {x: 128, y: -128}
146 | - {x: 128, y: 128}
147 | bones: []
148 | spriteID: 5e97eb03825dee720800000000000000
149 | internalID: 0
150 | vertices: []
151 | indices:
152 | edges: []
153 | weights: []
154 | secondaryTextures: []
155 | spritePackingTag:
156 | pSDRemoveMatte: 0
157 | pSDShowRemoveMatteOption: 0
158 | userData:
159 | assetBundleName:
160 | assetBundleVariant:
161 |
--------------------------------------------------------------------------------
/Packages/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "com.leopotam.ecs": "https://github.com/Leopotam/ecs.git",
4 | "com.leopotam.ecs-types": "https://github.com/Leopotam/ecs-types.git",
5 | "com.leopotam.ecs-unityintegration": "https://github.com/Leopotam/ecs-unityintegration.git",
6 | "com.unity.2d.sprite": "1.0.0",
7 | "com.unity.2d.tilemap": "1.0.0",
8 | "com.unity.ide.rider": "2.0.7",
9 | "com.unity.ide.visualstudio": "2.0.5",
10 | "com.unity.ide.vscode": "1.2.3",
11 | "com.unity.test-framework": "1.1.19",
12 | "com.unity.textmeshpro": "2.1.1",
13 | "com.unity.timeline": "1.4.4",
14 | "com.unity.ugui": "1.0.0",
15 | "com.unity.modules.ai": "1.0.0",
16 | "com.unity.modules.androidjni": "1.0.0",
17 | "com.unity.modules.animation": "1.0.0",
18 | "com.unity.modules.assetbundle": "1.0.0",
19 | "com.unity.modules.audio": "1.0.0",
20 | "com.unity.modules.cloth": "1.0.0",
21 | "com.unity.modules.director": "1.0.0",
22 | "com.unity.modules.imageconversion": "1.0.0",
23 | "com.unity.modules.imgui": "1.0.0",
24 | "com.unity.modules.jsonserialize": "1.0.0",
25 | "com.unity.modules.particlesystem": "1.0.0",
26 | "com.unity.modules.physics": "1.0.0",
27 | "com.unity.modules.physics2d": "1.0.0",
28 | "com.unity.modules.screencapture": "1.0.0",
29 | "com.unity.modules.terrain": "1.0.0",
30 | "com.unity.modules.terrainphysics": "1.0.0",
31 | "com.unity.modules.tilemap": "1.0.0",
32 | "com.unity.modules.ui": "1.0.0",
33 | "com.unity.modules.uielements": "1.0.0",
34 | "com.unity.modules.umbra": "1.0.0",
35 | "com.unity.modules.unityanalytics": "1.0.0",
36 | "com.unity.modules.unitywebrequest": "1.0.0",
37 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
38 | "com.unity.modules.unitywebrequestaudio": "1.0.0",
39 | "com.unity.modules.unitywebrequesttexture": "1.0.0",
40 | "com.unity.modules.unitywebrequestwww": "1.0.0",
41 | "com.unity.modules.vehicles": "1.0.0",
42 | "com.unity.modules.video": "1.0.0",
43 | "com.unity.modules.vr": "1.0.0",
44 | "com.unity.modules.wind": "1.0.0",
45 | "com.unity.modules.xr": "1.0.0"
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/Packages/packages-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "com.leopotam.ecs": {
4 | "version": "https://github.com/Leopotam/ecs.git",
5 | "depth": 0,
6 | "source": "git",
7 | "dependencies": {},
8 | "hash": "acd5873e57796ab5bfbe6c11c06fb044b912c6f9"
9 | },
10 | "com.leopotam.ecs-types": {
11 | "version": "https://github.com/Leopotam/ecs-types.git",
12 | "depth": 0,
13 | "source": "git",
14 | "dependencies": {},
15 | "hash": "54470e4fec9cc207b862415370fcd360d5651035"
16 | },
17 | "com.leopotam.ecs-unityintegration": {
18 | "version": "https://github.com/Leopotam/ecs-unityintegration.git",
19 | "depth": 0,
20 | "source": "git",
21 | "dependencies": {},
22 | "hash": "127d6a8f02ec987ac724a7fc671b1d5d00b0ea56"
23 | },
24 | "com.unity.2d.sprite": {
25 | "version": "1.0.0",
26 | "depth": 0,
27 | "source": "builtin",
28 | "dependencies": {}
29 | },
30 | "com.unity.2d.tilemap": {
31 | "version": "1.0.0",
32 | "depth": 0,
33 | "source": "builtin",
34 | "dependencies": {}
35 | },
36 | "com.unity.ext.nunit": {
37 | "version": "1.0.5",
38 | "depth": 1,
39 | "source": "registry",
40 | "dependencies": {},
41 | "url": "https://packages.unity.com"
42 | },
43 | "com.unity.ide.rider": {
44 | "version": "2.0.7",
45 | "depth": 0,
46 | "source": "registry",
47 | "dependencies": {
48 | "com.unity.test-framework": "1.1.1"
49 | },
50 | "url": "https://packages.unity.com"
51 | },
52 | "com.unity.ide.visualstudio": {
53 | "version": "2.0.5",
54 | "depth": 0,
55 | "source": "registry",
56 | "dependencies": {},
57 | "url": "https://packages.unity.com"
58 | },
59 | "com.unity.ide.vscode": {
60 | "version": "1.2.3",
61 | "depth": 0,
62 | "source": "registry",
63 | "dependencies": {},
64 | "url": "https://packages.unity.com"
65 | },
66 | "com.unity.test-framework": {
67 | "version": "1.1.19",
68 | "depth": 0,
69 | "source": "registry",
70 | "dependencies": {
71 | "com.unity.ext.nunit": "1.0.5",
72 | "com.unity.modules.imgui": "1.0.0",
73 | "com.unity.modules.jsonserialize": "1.0.0"
74 | },
75 | "url": "https://packages.unity.com"
76 | },
77 | "com.unity.textmeshpro": {
78 | "version": "2.1.1",
79 | "depth": 0,
80 | "source": "registry",
81 | "dependencies": {
82 | "com.unity.ugui": "1.0.0"
83 | },
84 | "url": "https://packages.unity.com"
85 | },
86 | "com.unity.timeline": {
87 | "version": "1.4.4",
88 | "depth": 0,
89 | "source": "registry",
90 | "dependencies": {
91 | "com.unity.modules.director": "1.0.0",
92 | "com.unity.modules.animation": "1.0.0",
93 | "com.unity.modules.audio": "1.0.0",
94 | "com.unity.modules.particlesystem": "1.0.0"
95 | },
96 | "url": "https://packages.unity.com"
97 | },
98 | "com.unity.ugui": {
99 | "version": "1.0.0",
100 | "depth": 0,
101 | "source": "builtin",
102 | "dependencies": {
103 | "com.unity.modules.ui": "1.0.0",
104 | "com.unity.modules.imgui": "1.0.0"
105 | }
106 | },
107 | "com.unity.modules.ai": {
108 | "version": "1.0.0",
109 | "depth": 0,
110 | "source": "builtin",
111 | "dependencies": {}
112 | },
113 | "com.unity.modules.androidjni": {
114 | "version": "1.0.0",
115 | "depth": 0,
116 | "source": "builtin",
117 | "dependencies": {}
118 | },
119 | "com.unity.modules.animation": {
120 | "version": "1.0.0",
121 | "depth": 0,
122 | "source": "builtin",
123 | "dependencies": {}
124 | },
125 | "com.unity.modules.assetbundle": {
126 | "version": "1.0.0",
127 | "depth": 0,
128 | "source": "builtin",
129 | "dependencies": {}
130 | },
131 | "com.unity.modules.audio": {
132 | "version": "1.0.0",
133 | "depth": 0,
134 | "source": "builtin",
135 | "dependencies": {}
136 | },
137 | "com.unity.modules.cloth": {
138 | "version": "1.0.0",
139 | "depth": 0,
140 | "source": "builtin",
141 | "dependencies": {
142 | "com.unity.modules.physics": "1.0.0"
143 | }
144 | },
145 | "com.unity.modules.director": {
146 | "version": "1.0.0",
147 | "depth": 0,
148 | "source": "builtin",
149 | "dependencies": {
150 | "com.unity.modules.audio": "1.0.0",
151 | "com.unity.modules.animation": "1.0.0"
152 | }
153 | },
154 | "com.unity.modules.imageconversion": {
155 | "version": "1.0.0",
156 | "depth": 0,
157 | "source": "builtin",
158 | "dependencies": {}
159 | },
160 | "com.unity.modules.imgui": {
161 | "version": "1.0.0",
162 | "depth": 0,
163 | "source": "builtin",
164 | "dependencies": {}
165 | },
166 | "com.unity.modules.jsonserialize": {
167 | "version": "1.0.0",
168 | "depth": 0,
169 | "source": "builtin",
170 | "dependencies": {}
171 | },
172 | "com.unity.modules.particlesystem": {
173 | "version": "1.0.0",
174 | "depth": 0,
175 | "source": "builtin",
176 | "dependencies": {}
177 | },
178 | "com.unity.modules.physics": {
179 | "version": "1.0.0",
180 | "depth": 0,
181 | "source": "builtin",
182 | "dependencies": {}
183 | },
184 | "com.unity.modules.physics2d": {
185 | "version": "1.0.0",
186 | "depth": 0,
187 | "source": "builtin",
188 | "dependencies": {}
189 | },
190 | "com.unity.modules.screencapture": {
191 | "version": "1.0.0",
192 | "depth": 0,
193 | "source": "builtin",
194 | "dependencies": {
195 | "com.unity.modules.imageconversion": "1.0.0"
196 | }
197 | },
198 | "com.unity.modules.subsystems": {
199 | "version": "1.0.0",
200 | "depth": 1,
201 | "source": "builtin",
202 | "dependencies": {
203 | "com.unity.modules.jsonserialize": "1.0.0"
204 | }
205 | },
206 | "com.unity.modules.terrain": {
207 | "version": "1.0.0",
208 | "depth": 0,
209 | "source": "builtin",
210 | "dependencies": {}
211 | },
212 | "com.unity.modules.terrainphysics": {
213 | "version": "1.0.0",
214 | "depth": 0,
215 | "source": "builtin",
216 | "dependencies": {
217 | "com.unity.modules.physics": "1.0.0",
218 | "com.unity.modules.terrain": "1.0.0"
219 | }
220 | },
221 | "com.unity.modules.tilemap": {
222 | "version": "1.0.0",
223 | "depth": 0,
224 | "source": "builtin",
225 | "dependencies": {
226 | "com.unity.modules.physics2d": "1.0.0"
227 | }
228 | },
229 | "com.unity.modules.ui": {
230 | "version": "1.0.0",
231 | "depth": 0,
232 | "source": "builtin",
233 | "dependencies": {}
234 | },
235 | "com.unity.modules.uielements": {
236 | "version": "1.0.0",
237 | "depth": 0,
238 | "source": "builtin",
239 | "dependencies": {
240 | "com.unity.modules.imgui": "1.0.0",
241 | "com.unity.modules.jsonserialize": "1.0.0"
242 | }
243 | },
244 | "com.unity.modules.umbra": {
245 | "version": "1.0.0",
246 | "depth": 0,
247 | "source": "builtin",
248 | "dependencies": {}
249 | },
250 | "com.unity.modules.unityanalytics": {
251 | "version": "1.0.0",
252 | "depth": 0,
253 | "source": "builtin",
254 | "dependencies": {
255 | "com.unity.modules.unitywebrequest": "1.0.0",
256 | "com.unity.modules.jsonserialize": "1.0.0"
257 | }
258 | },
259 | "com.unity.modules.unitywebrequest": {
260 | "version": "1.0.0",
261 | "depth": 0,
262 | "source": "builtin",
263 | "dependencies": {}
264 | },
265 | "com.unity.modules.unitywebrequestassetbundle": {
266 | "version": "1.0.0",
267 | "depth": 0,
268 | "source": "builtin",
269 | "dependencies": {
270 | "com.unity.modules.assetbundle": "1.0.0",
271 | "com.unity.modules.unitywebrequest": "1.0.0"
272 | }
273 | },
274 | "com.unity.modules.unitywebrequestaudio": {
275 | "version": "1.0.0",
276 | "depth": 0,
277 | "source": "builtin",
278 | "dependencies": {
279 | "com.unity.modules.unitywebrequest": "1.0.0",
280 | "com.unity.modules.audio": "1.0.0"
281 | }
282 | },
283 | "com.unity.modules.unitywebrequesttexture": {
284 | "version": "1.0.0",
285 | "depth": 0,
286 | "source": "builtin",
287 | "dependencies": {
288 | "com.unity.modules.unitywebrequest": "1.0.0",
289 | "com.unity.modules.imageconversion": "1.0.0"
290 | }
291 | },
292 | "com.unity.modules.unitywebrequestwww": {
293 | "version": "1.0.0",
294 | "depth": 0,
295 | "source": "builtin",
296 | "dependencies": {
297 | "com.unity.modules.unitywebrequest": "1.0.0",
298 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
299 | "com.unity.modules.unitywebrequestaudio": "1.0.0",
300 | "com.unity.modules.audio": "1.0.0",
301 | "com.unity.modules.assetbundle": "1.0.0",
302 | "com.unity.modules.imageconversion": "1.0.0"
303 | }
304 | },
305 | "com.unity.modules.vehicles": {
306 | "version": "1.0.0",
307 | "depth": 0,
308 | "source": "builtin",
309 | "dependencies": {
310 | "com.unity.modules.physics": "1.0.0"
311 | }
312 | },
313 | "com.unity.modules.video": {
314 | "version": "1.0.0",
315 | "depth": 0,
316 | "source": "builtin",
317 | "dependencies": {
318 | "com.unity.modules.audio": "1.0.0",
319 | "com.unity.modules.ui": "1.0.0",
320 | "com.unity.modules.unitywebrequest": "1.0.0"
321 | }
322 | },
323 | "com.unity.modules.vr": {
324 | "version": "1.0.0",
325 | "depth": 0,
326 | "source": "builtin",
327 | "dependencies": {
328 | "com.unity.modules.jsonserialize": "1.0.0",
329 | "com.unity.modules.physics": "1.0.0",
330 | "com.unity.modules.xr": "1.0.0"
331 | }
332 | },
333 | "com.unity.modules.wind": {
334 | "version": "1.0.0",
335 | "depth": 0,
336 | "source": "builtin",
337 | "dependencies": {}
338 | },
339 | "com.unity.modules.xr": {
340 | "version": "1.0.0",
341 | "depth": 0,
342 | "source": "builtin",
343 | "dependencies": {
344 | "com.unity.modules.physics": "1.0.0",
345 | "com.unity.modules.jsonserialize": "1.0.0",
346 | "com.unity.modules.subsystems": "1.0.0"
347 | }
348 | }
349 | }
350 | }
351 |
--------------------------------------------------------------------------------
/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 | serializedVersion: 2
7 | m_Volume: 1
8 | Rolloff Scale: 1
9 | Doppler Factor: 1
10 | Default Speaker Mode: 2
11 | m_SampleRate: 0
12 | m_DSPBufferSize: 1024
13 | m_VirtualVoiceCount: 512
14 | m_RealVoiceCount: 32
15 | m_SpatializerPlugin:
16 | m_AmbisonicDecoderPlugin:
17 | m_DisableAudio: 0
18 | m_VirtualizeEffects: 1
19 | m_RequestedDSPBufferSize: 0
20 |
--------------------------------------------------------------------------------
/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: 13
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.1
18 | m_ClothInterCollisionStiffness: 0.2
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_ClothGravity: {x: 0, y: -9.81, z: 0}
26 | m_ContactPairsMode: 0
27 | m_BroadphaseType: 0
28 | m_WorldBounds:
29 | m_Center: {x: 0, y: 0, z: 0}
30 | m_Extent: {x: 250, y: 250, z: 250}
31 | m_WorldSubdivisions: 8
32 | m_FrictionType: 0
33 | m_EnableEnhancedDeterminism: 0
34 | m_EnableUnifiedHeightmaps: 1
35 | m_SolverType: 0
36 | m_DefaultMaxAngularSpeed: 50
37 |
--------------------------------------------------------------------------------
/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/_Client/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: 11
7 | m_SerializationMode: 2
8 | m_LineEndingsForNewScripts: 0
9 | m_DefaultBehaviorMode: 1
10 | m_PrefabRegularEnvironment: {fileID: 0}
11 | m_PrefabUIEnvironment: {fileID: 0}
12 | m_SpritePackerMode: 4
13 | m_SpritePackerPaddingPower: 1
14 | m_EtcTextureCompressorBehavior: 1
15 | m_EtcTextureFastCompressor: 1
16 | m_EtcTextureNormalCompressor: 2
17 | m_EtcTextureBestCompressor: 4
18 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp
19 | m_ProjectGenerationRootNamespace: MatchTwo
20 | m_EnableTextureStreamingInEditMode: 1
21 | m_EnableTextureStreamingInPlayMode: 1
22 | m_AsyncShaderCompilation: 1
23 | m_CachingShaderPreprocessor: 1
24 | m_PrefabModeAllowAutoSave: 1
25 | m_EnterPlayModeOptionsEnabled: 0
26 | m_EnterPlayModeOptions: 3
27 | m_GameObjectNamingDigits: 1
28 | m_GameObjectNamingScheme: 0
29 | m_AssetNamingUsesSpace: 1
30 | m_UseLegacyProbeSampleCount: 0
31 | m_SerializeInlineMappingsOnOneLine: 1
32 | m_DisableCookiesInLightmapper: 1
33 | m_AssetPipelineMode: 1
34 | m_CacheServerMode: 0
35 | m_CacheServerEndpoint:
36 | m_CacheServerNamespacePrefix: default
37 | m_CacheServerEnableDownload: 1
38 | m_CacheServerEnableUpload: 1
39 | m_CacheServerEnableAuth: 0
40 | m_CacheServerEnableTls: 0
41 |
--------------------------------------------------------------------------------
/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: 13
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_VideoShadersIncludeMode: 2
32 | m_AlwaysIncludedShaders:
33 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
34 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}
35 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}
36 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
37 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
38 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
39 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}
40 | m_PreloadedShaders: []
41 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
42 | m_CustomRenderPipeline: {fileID: 0}
43 | m_TransparencySortMode: 0
44 | m_TransparencySortAxis: {x: 0, y: 0, z: 1}
45 | m_DefaultRenderingPath: 1
46 | m_DefaultMobileRenderingPath: 1
47 | m_TierSettings: []
48 | m_LightmapStripping: 0
49 | m_FogStripping: 0
50 | m_InstancingStripping: 0
51 | m_LightmapKeepPlain: 1
52 | m_LightmapKeepDirCombined: 1
53 | m_LightmapKeepDynamicPlain: 1
54 | m_LightmapKeepDynamicDirCombined: 1
55 | m_LightmapKeepShadowMask: 1
56 | m_LightmapKeepSubtractive: 1
57 | m_FogKeepLinear: 1
58 | m_FogKeepExp: 1
59 | m_FogKeepExp2: 1
60 | m_AlbedoSwatchInfos: []
61 | m_LightsUseLinearIntensity: 0
62 | m_LightsUseColorTemperature: 0
63 | m_LogWhenShaderIsCompiled: 0
64 |
--------------------------------------------------------------------------------
/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 | - serializedVersion: 3
297 | m_Name: Enable Debug Button 1
298 | descriptiveName:
299 | descriptiveNegativeName:
300 | negativeButton:
301 | positiveButton: left ctrl
302 | altNegativeButton:
303 | altPositiveButton: joystick button 8
304 | gravity: 0
305 | dead: 0
306 | sensitivity: 0
307 | snap: 0
308 | invert: 0
309 | type: 0
310 | axis: 0
311 | joyNum: 0
312 | - serializedVersion: 3
313 | m_Name: Enable Debug Button 2
314 | descriptiveName:
315 | descriptiveNegativeName:
316 | negativeButton:
317 | positiveButton: backspace
318 | altNegativeButton:
319 | altPositiveButton: joystick button 9
320 | gravity: 0
321 | dead: 0
322 | sensitivity: 0
323 | snap: 0
324 | invert: 0
325 | type: 0
326 | axis: 0
327 | joyNum: 0
328 | - serializedVersion: 3
329 | m_Name: Debug Reset
330 | descriptiveName:
331 | descriptiveNegativeName:
332 | negativeButton:
333 | positiveButton: left alt
334 | altNegativeButton:
335 | altPositiveButton: joystick button 1
336 | gravity: 0
337 | dead: 0
338 | sensitivity: 0
339 | snap: 0
340 | invert: 0
341 | type: 0
342 | axis: 0
343 | joyNum: 0
344 | - serializedVersion: 3
345 | m_Name: Debug Next
346 | descriptiveName:
347 | descriptiveNegativeName:
348 | negativeButton:
349 | positiveButton: page down
350 | altNegativeButton:
351 | altPositiveButton: joystick button 5
352 | gravity: 0
353 | dead: 0
354 | sensitivity: 0
355 | snap: 0
356 | invert: 0
357 | type: 0
358 | axis: 0
359 | joyNum: 0
360 | - serializedVersion: 3
361 | m_Name: Debug Previous
362 | descriptiveName:
363 | descriptiveNegativeName:
364 | negativeButton:
365 | positiveButton: page up
366 | altNegativeButton:
367 | altPositiveButton: joystick button 4
368 | gravity: 0
369 | dead: 0
370 | sensitivity: 0
371 | snap: 0
372 | invert: 0
373 | type: 0
374 | axis: 0
375 | joyNum: 0
376 | - serializedVersion: 3
377 | m_Name: Debug Validate
378 | descriptiveName:
379 | descriptiveNegativeName:
380 | negativeButton:
381 | positiveButton: return
382 | altNegativeButton:
383 | altPositiveButton: joystick button 0
384 | gravity: 0
385 | dead: 0
386 | sensitivity: 0
387 | snap: 0
388 | invert: 0
389 | type: 0
390 | axis: 0
391 | joyNum: 0
392 | - serializedVersion: 3
393 | m_Name: Debug Persistent
394 | descriptiveName:
395 | descriptiveNegativeName:
396 | negativeButton:
397 | positiveButton: right shift
398 | altNegativeButton:
399 | altPositiveButton: joystick button 2
400 | gravity: 0
401 | dead: 0
402 | sensitivity: 0
403 | snap: 0
404 | invert: 0
405 | type: 0
406 | axis: 0
407 | joyNum: 0
408 | - serializedVersion: 3
409 | m_Name: Debug Multiplier
410 | descriptiveName:
411 | descriptiveNegativeName:
412 | negativeButton:
413 | positiveButton: left shift
414 | altNegativeButton:
415 | altPositiveButton: joystick button 3
416 | gravity: 0
417 | dead: 0
418 | sensitivity: 0
419 | snap: 0
420 | invert: 0
421 | type: 0
422 | axis: 0
423 | joyNum: 0
424 | - serializedVersion: 3
425 | m_Name: Debug Horizontal
426 | descriptiveName:
427 | descriptiveNegativeName:
428 | negativeButton: left
429 | positiveButton: right
430 | altNegativeButton:
431 | altPositiveButton:
432 | gravity: 1000
433 | dead: 0.001
434 | sensitivity: 1000
435 | snap: 0
436 | invert: 0
437 | type: 0
438 | axis: 0
439 | joyNum: 0
440 | - serializedVersion: 3
441 | m_Name: Debug Vertical
442 | descriptiveName:
443 | descriptiveNegativeName:
444 | negativeButton: down
445 | positiveButton: up
446 | altNegativeButton:
447 | altPositiveButton:
448 | gravity: 1000
449 | dead: 0.001
450 | sensitivity: 1000
451 | snap: 0
452 | invert: 0
453 | type: 0
454 | axis: 0
455 | joyNum: 0
456 | - serializedVersion: 3
457 | m_Name: Debug Vertical
458 | descriptiveName:
459 | descriptiveNegativeName:
460 | negativeButton: down
461 | positiveButton: up
462 | altNegativeButton:
463 | altPositiveButton:
464 | gravity: 1000
465 | dead: 0.001
466 | sensitivity: 1000
467 | snap: 0
468 | invert: 0
469 | type: 2
470 | axis: 6
471 | joyNum: 0
472 | - serializedVersion: 3
473 | m_Name: Debug Horizontal
474 | descriptiveName:
475 | descriptiveNegativeName:
476 | negativeButton: left
477 | positiveButton: right
478 | altNegativeButton:
479 | altPositiveButton:
480 | gravity: 1000
481 | dead: 0.001
482 | sensitivity: 1000
483 | snap: 0
484 | invert: 0
485 | type: 2
486 | axis: 5
487 | joyNum: 0
488 |
--------------------------------------------------------------------------------
/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/PackageManagerSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &1
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 61
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: 13960, guid: 0000000000000000e000000000000000, type: 0}
13 | m_Name:
14 | m_EditorClassIdentifier:
15 | m_ScopedRegistriesSettingsExpanded: 1
16 | oneTimeWarningShown: 0
17 | m_Registries:
18 | - m_Id: main
19 | m_Name:
20 | m_Url: https://packages.unity.com
21 | m_Scopes: []
22 | m_IsDefault: 1
23 | m_UserSelectedRegistryName:
24 | m_UserAddingNewScopedRegistry: 0
25 | m_RegistryInfoDraft:
26 | m_ErrorMessage:
27 | m_Original:
28 | m_Id:
29 | m_Name:
30 | m_Url:
31 | m_Scopes: []
32 | m_IsDefault: 0
33 | m_Modified: 0
34 | m_Name:
35 | m_Url:
36 | m_Scopes:
37 | -
38 | m_SelectedScopeIndex: 0
39 |
--------------------------------------------------------------------------------
/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: 5
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_SimulationMode: 0
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 | serializedVersion: 2
7 | m_DefaultPresets: {}
8 |
--------------------------------------------------------------------------------
/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: 22
7 | productGUID: 9f393aab7c1768147b87beff3d3c8265
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: match-two-ecs
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: 1920
46 | defaultScreenHeight: 1080
47 | defaultScreenWidthWeb: 960
48 | defaultScreenHeightWeb: 600
49 | m_StereoRenderingPath: 0
50 | m_ActiveColorSpace: 0
51 | m_MTRendering: 1
52 | mipStripping: 0
53 | numberOfMipsStripped: 0
54 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000
55 | iosShowActivityIndicatorOnLoading: -1
56 | androidShowActivityIndicatorOnLoading: -1
57 | iosUseCustomAppBackgroundBehavior: 0
58 | iosAllowHTTPDownload: 1
59 | allowedAutorotateToPortrait: 1
60 | allowedAutorotateToPortraitUpsideDown: 1
61 | allowedAutorotateToLandscapeRight: 1
62 | allowedAutorotateToLandscapeLeft: 1
63 | useOSAutorotation: 1
64 | use32BitDisplayBuffer: 1
65 | preserveFramebufferAlpha: 0
66 | disableDepthAndStencilBuffers: 0
67 | androidStartInFullscreen: 1
68 | androidRenderOutsideSafeArea: 1
69 | androidUseSwappy: 1
70 | androidBlitType: 0
71 | defaultIsNativeResolution: 1
72 | macRetinaSupport: 1
73 | runInBackground: 0
74 | captureSingleScreen: 0
75 | muteOtherAudioSources: 0
76 | Prepare IOS For Recording: 0
77 | Force IOS Speakers When Recording: 0
78 | deferSystemGesturesMode: 0
79 | hideHomeButton: 0
80 | submitAnalytics: 1
81 | usePlayerLog: 1
82 | bakeCollisionMeshes: 0
83 | forceSingleInstance: 0
84 | useFlipModelSwapchain: 1
85 | resizableWindow: 0
86 | useMacAppStoreValidation: 0
87 | macAppStoreCategory: public.app-category.games
88 | gpuSkinning: 0
89 | xboxPIXTextureCapture: 0
90 | xboxEnableAvatar: 0
91 | xboxEnableKinect: 0
92 | xboxEnableKinectAutoTracking: 0
93 | xboxEnableFitness: 0
94 | visibleInBackground: 1
95 | allowFullscreenSwitch: 1
96 | fullscreenMode: 1
97 | xboxSpeechDB: 0
98 | xboxEnableHeadOrientation: 0
99 | xboxEnableGuest: 0
100 | xboxEnablePIXSampling: 0
101 | metalFramebufferOnly: 0
102 | xboxOneResolution: 0
103 | xboxOneSResolution: 0
104 | xboxOneXResolution: 3
105 | xboxOneMonoLoggingLevel: 0
106 | xboxOneLoggingLevel: 1
107 | xboxOneDisableEsram: 0
108 | xboxOneEnableTypeOptimization: 0
109 | xboxOnePresentImmediateThreshold: 0
110 | switchQueueCommandMemory: 1048576
111 | switchQueueControlMemory: 16384
112 | switchQueueComputeMemory: 262144
113 | switchNVNShaderPoolsGranularity: 33554432
114 | switchNVNDefaultPoolsGranularity: 16777216
115 | switchNVNOtherPoolsGranularity: 16777216
116 | switchNVNMaxPublicTextureIDCount: 0
117 | switchNVNMaxPublicSamplerIDCount: 0
118 | stadiaPresentMode: 0
119 | stadiaTargetFramerate: 0
120 | vulkanNumSwapchainBuffers: 3
121 | vulkanEnableSetSRGBWrite: 0
122 | vulkanEnablePreTransform: 0
123 | vulkanEnableLateAcquireNextImage: 0
124 | m_SupportedAspectRatios:
125 | 4:3: 1
126 | 5:4: 1
127 | 16:10: 1
128 | 16:9: 1
129 | Others: 1
130 | bundleVersion: 1.0
131 | preloadedAssets: []
132 | metroInputSource: 0
133 | wsaTransparentSwapchain: 0
134 | m_HolographicPauseOnTrackingLoss: 1
135 | xboxOneDisableKinectGpuReservation: 1
136 | xboxOneEnable7thCore: 1
137 | vrSettings:
138 | enable360StereoCapture: 0
139 | isWsaHolographicRemotingEnabled: 0
140 | enableFrameTimingStats: 0
141 | useHDRDisplay: 0
142 | D3DHDRBitDepth: 0
143 | m_ColorGamuts: 00000000
144 | targetPixelDensity: 30
145 | resolutionScalingMode: 0
146 | androidSupportedAspectRatio: 1
147 | androidMaxAspectRatio: 2.1
148 | applicationIdentifier:
149 | Standalone: com.DefaultCompany.match-two-ecs
150 | buildNumber:
151 | Standalone: 0
152 | iPhone: 0
153 | tvOS: 0
154 | overrideDefaultApplicationIdentifier: 0
155 | AndroidBundleVersionCode: 1
156 | AndroidMinSdkVersion: 19
157 | AndroidTargetSdkVersion: 0
158 | AndroidPreferredInstallLocation: 1
159 | aotOptions:
160 | stripEngineCode: 1
161 | iPhoneStrippingLevel: 0
162 | iPhoneScriptCallOptimization: 0
163 | ForceInternetPermission: 0
164 | ForceSDCardPermission: 0
165 | CreateWallpaper: 0
166 | APKExpansionFiles: 0
167 | keepLoadedShadersAlive: 0
168 | StripUnusedMeshComponents: 0
169 | VertexChannelCompressionMask: 4054
170 | iPhoneSdkVersion: 988
171 | iOSTargetOSVersionString: 11.0
172 | tvOSSdkVersion: 0
173 | tvOSRequireExtendedGameController: 0
174 | tvOSTargetOSVersionString: 11.0
175 | uIPrerenderedIcon: 0
176 | uIRequiresPersistentWiFi: 0
177 | uIRequiresFullScreen: 1
178 | uIStatusBarHidden: 1
179 | uIExitOnSuspend: 0
180 | uIStatusBarStyle: 0
181 | appleTVSplashScreen: {fileID: 0}
182 | appleTVSplashScreen2x: {fileID: 0}
183 | tvOSSmallIconLayers: []
184 | tvOSSmallIconLayers2x: []
185 | tvOSLargeIconLayers: []
186 | tvOSLargeIconLayers2x: []
187 | tvOSTopShelfImageLayers: []
188 | tvOSTopShelfImageLayers2x: []
189 | tvOSTopShelfImageWideLayers: []
190 | tvOSTopShelfImageWideLayers2x: []
191 | iOSLaunchScreenType: 0
192 | iOSLaunchScreenPortrait: {fileID: 0}
193 | iOSLaunchScreenLandscape: {fileID: 0}
194 | iOSLaunchScreenBackgroundColor:
195 | serializedVersion: 2
196 | rgba: 0
197 | iOSLaunchScreenFillPct: 100
198 | iOSLaunchScreenSize: 100
199 | iOSLaunchScreenCustomXibPath:
200 | iOSLaunchScreeniPadType: 0
201 | iOSLaunchScreeniPadImage: {fileID: 0}
202 | iOSLaunchScreeniPadBackgroundColor:
203 | serializedVersion: 2
204 | rgba: 0
205 | iOSLaunchScreeniPadFillPct: 100
206 | iOSLaunchScreeniPadSize: 100
207 | iOSLaunchScreeniPadCustomXibPath:
208 | iOSLaunchScreenCustomStoryboardPath:
209 | iOSLaunchScreeniPadCustomStoryboardPath:
210 | iOSDeviceRequirements: []
211 | iOSURLSchemes: []
212 | iOSBackgroundModes: 0
213 | iOSMetalForceHardShadows: 0
214 | metalEditorSupport: 1
215 | metalAPIValidation: 1
216 | iOSRenderExtraFrameOnPause: 0
217 | iosCopyPluginsCodeInsteadOfSymlink: 0
218 | appleDeveloperTeamID:
219 | iOSManualSigningProvisioningProfileID:
220 | tvOSManualSigningProvisioningProfileID:
221 | iOSManualSigningProvisioningProfileType: 0
222 | tvOSManualSigningProvisioningProfileType: 0
223 | appleEnableAutomaticSigning: 0
224 | iOSRequireARKit: 0
225 | iOSAutomaticallyDetectAndAddCapabilities: 1
226 | appleEnableProMotion: 0
227 | shaderPrecisionModel: 0
228 | clonedFromGUID: 10ad67313f4034357812315f3c407484
229 | templatePackageId: com.unity.template.2d@5.0.0
230 | templateDefaultScene: Assets/Scenes/SampleScene.unity
231 | useCustomMainManifest: 0
232 | useCustomLauncherManifest: 0
233 | useCustomMainGradleTemplate: 0
234 | useCustomLauncherGradleManifest: 0
235 | useCustomBaseGradleTemplate: 0
236 | useCustomGradlePropertiesTemplate: 0
237 | useCustomProguardFile: 0
238 | AndroidTargetArchitectures: 1
239 | AndroidSplashScreenScale: 0
240 | androidSplashScreen: {fileID: 0}
241 | AndroidKeystoreName:
242 | AndroidKeyaliasName:
243 | AndroidBuildApkPerCpuArchitecture: 0
244 | AndroidTVCompatibility: 0
245 | AndroidIsGame: 1
246 | AndroidEnableTango: 0
247 | androidEnableBanner: 1
248 | androidUseLowAccuracyLocation: 0
249 | androidUseCustomKeystore: 0
250 | m_AndroidBanners:
251 | - width: 320
252 | height: 180
253 | banner: {fileID: 0}
254 | androidGamepadSupportLevel: 0
255 | AndroidMinifyWithR8: 0
256 | AndroidMinifyRelease: 0
257 | AndroidMinifyDebug: 0
258 | AndroidValidateAppBundleSize: 1
259 | AndroidAppBundleSizeToValidate: 150
260 | m_BuildTargetIcons: []
261 | m_BuildTargetPlatformIcons: []
262 | m_BuildTargetBatching: []
263 | m_BuildTargetGraphicsJobs:
264 | - m_BuildTarget: MacStandaloneSupport
265 | m_GraphicsJobs: 0
266 | - m_BuildTarget: Switch
267 | m_GraphicsJobs: 0
268 | - m_BuildTarget: MetroSupport
269 | m_GraphicsJobs: 0
270 | - m_BuildTarget: AppleTVSupport
271 | m_GraphicsJobs: 0
272 | - m_BuildTarget: BJMSupport
273 | m_GraphicsJobs: 0
274 | - m_BuildTarget: LinuxStandaloneSupport
275 | m_GraphicsJobs: 0
276 | - m_BuildTarget: PS4Player
277 | m_GraphicsJobs: 0
278 | - m_BuildTarget: iOSSupport
279 | m_GraphicsJobs: 0
280 | - m_BuildTarget: WindowsStandaloneSupport
281 | m_GraphicsJobs: 0
282 | - m_BuildTarget: XboxOnePlayer
283 | m_GraphicsJobs: 0
284 | - m_BuildTarget: LuminSupport
285 | m_GraphicsJobs: 0
286 | - m_BuildTarget: AndroidPlayer
287 | m_GraphicsJobs: 0
288 | - m_BuildTarget: WebGLSupport
289 | m_GraphicsJobs: 0
290 | m_BuildTargetGraphicsJobMode: []
291 | m_BuildTargetGraphicsAPIs:
292 | - m_BuildTarget: AndroidPlayer
293 | m_APIs: 150000000b000000
294 | m_Automatic: 0
295 | - m_BuildTarget: iOSSupport
296 | m_APIs: 10000000
297 | m_Automatic: 1
298 | m_BuildTargetVRSettings: []
299 | openGLRequireES31: 0
300 | openGLRequireES31AEP: 0
301 | openGLRequireES32: 0
302 | m_TemplateCustomTags: {}
303 | mobileMTRendering:
304 | Android: 1
305 | iPhone: 1
306 | tvOS: 1
307 | m_BuildTargetGroupLightmapEncodingQuality: []
308 | m_BuildTargetGroupLightmapSettings: []
309 | m_BuildTargetNormalMapEncoding: []
310 | playModeTestRunnerEnabled: 0
311 | runPlayModeTestAsEditModeTest: 0
312 | actionOnDotNetUnhandledException: 1
313 | enableInternalProfiler: 0
314 | logObjCUncaughtExceptions: 1
315 | enableCrashReportAPI: 0
316 | cameraUsageDescription:
317 | locationUsageDescription:
318 | microphoneUsageDescription:
319 | switchNMETAOverride:
320 | switchNetLibKey:
321 | switchSocketMemoryPoolSize: 6144
322 | switchSocketAllocatorPoolSize: 128
323 | switchSocketConcurrencyLimit: 14
324 | switchScreenResolutionBehavior: 2
325 | switchUseCPUProfiler: 0
326 | switchUseGOLDLinker: 0
327 | switchApplicationID: 0x01004b9000490000
328 | switchNSODependencies:
329 | switchTitleNames_0:
330 | switchTitleNames_1:
331 | switchTitleNames_2:
332 | switchTitleNames_3:
333 | switchTitleNames_4:
334 | switchTitleNames_5:
335 | switchTitleNames_6:
336 | switchTitleNames_7:
337 | switchTitleNames_8:
338 | switchTitleNames_9:
339 | switchTitleNames_10:
340 | switchTitleNames_11:
341 | switchTitleNames_12:
342 | switchTitleNames_13:
343 | switchTitleNames_14:
344 | switchPublisherNames_0:
345 | switchPublisherNames_1:
346 | switchPublisherNames_2:
347 | switchPublisherNames_3:
348 | switchPublisherNames_4:
349 | switchPublisherNames_5:
350 | switchPublisherNames_6:
351 | switchPublisherNames_7:
352 | switchPublisherNames_8:
353 | switchPublisherNames_9:
354 | switchPublisherNames_10:
355 | switchPublisherNames_11:
356 | switchPublisherNames_12:
357 | switchPublisherNames_13:
358 | switchPublisherNames_14:
359 | switchIcons_0: {fileID: 0}
360 | switchIcons_1: {fileID: 0}
361 | switchIcons_2: {fileID: 0}
362 | switchIcons_3: {fileID: 0}
363 | switchIcons_4: {fileID: 0}
364 | switchIcons_5: {fileID: 0}
365 | switchIcons_6: {fileID: 0}
366 | switchIcons_7: {fileID: 0}
367 | switchIcons_8: {fileID: 0}
368 | switchIcons_9: {fileID: 0}
369 | switchIcons_10: {fileID: 0}
370 | switchIcons_11: {fileID: 0}
371 | switchIcons_12: {fileID: 0}
372 | switchIcons_13: {fileID: 0}
373 | switchIcons_14: {fileID: 0}
374 | switchSmallIcons_0: {fileID: 0}
375 | switchSmallIcons_1: {fileID: 0}
376 | switchSmallIcons_2: {fileID: 0}
377 | switchSmallIcons_3: {fileID: 0}
378 | switchSmallIcons_4: {fileID: 0}
379 | switchSmallIcons_5: {fileID: 0}
380 | switchSmallIcons_6: {fileID: 0}
381 | switchSmallIcons_7: {fileID: 0}
382 | switchSmallIcons_8: {fileID: 0}
383 | switchSmallIcons_9: {fileID: 0}
384 | switchSmallIcons_10: {fileID: 0}
385 | switchSmallIcons_11: {fileID: 0}
386 | switchSmallIcons_12: {fileID: 0}
387 | switchSmallIcons_13: {fileID: 0}
388 | switchSmallIcons_14: {fileID: 0}
389 | switchManualHTML:
390 | switchAccessibleURLs:
391 | switchLegalInformation:
392 | switchMainThreadStackSize: 1048576
393 | switchPresenceGroupId:
394 | switchLogoHandling: 0
395 | switchReleaseVersion: 0
396 | switchDisplayVersion: 1.0.0
397 | switchStartupUserAccount: 0
398 | switchTouchScreenUsage: 0
399 | switchSupportedLanguagesMask: 0
400 | switchLogoType: 0
401 | switchApplicationErrorCodeCategory:
402 | switchUserAccountSaveDataSize: 0
403 | switchUserAccountSaveDataJournalSize: 0
404 | switchApplicationAttribute: 0
405 | switchCardSpecSize: -1
406 | switchCardSpecClock: -1
407 | switchRatingsMask: 0
408 | switchRatingsInt_0: 0
409 | switchRatingsInt_1: 0
410 | switchRatingsInt_2: 0
411 | switchRatingsInt_3: 0
412 | switchRatingsInt_4: 0
413 | switchRatingsInt_5: 0
414 | switchRatingsInt_6: 0
415 | switchRatingsInt_7: 0
416 | switchRatingsInt_8: 0
417 | switchRatingsInt_9: 0
418 | switchRatingsInt_10: 0
419 | switchRatingsInt_11: 0
420 | switchRatingsInt_12: 0
421 | switchLocalCommunicationIds_0:
422 | switchLocalCommunicationIds_1:
423 | switchLocalCommunicationIds_2:
424 | switchLocalCommunicationIds_3:
425 | switchLocalCommunicationIds_4:
426 | switchLocalCommunicationIds_5:
427 | switchLocalCommunicationIds_6:
428 | switchLocalCommunicationIds_7:
429 | switchParentalControl: 0
430 | switchAllowsScreenshot: 1
431 | switchAllowsVideoCapturing: 1
432 | switchAllowsRuntimeAddOnContentInstall: 0
433 | switchDataLossConfirmation: 0
434 | switchUserAccountLockEnabled: 0
435 | switchSystemResourceMemory: 16777216
436 | switchSupportedNpadStyles: 22
437 | switchNativeFsCacheSize: 32
438 | switchIsHoldTypeHorizontal: 0
439 | switchSupportedNpadCount: 8
440 | switchSocketConfigEnabled: 0
441 | switchTcpInitialSendBufferSize: 32
442 | switchTcpInitialReceiveBufferSize: 64
443 | switchTcpAutoSendBufferSizeMax: 256
444 | switchTcpAutoReceiveBufferSizeMax: 256
445 | switchUdpSendBufferSize: 9
446 | switchUdpReceiveBufferSize: 42
447 | switchSocketBufferEfficiency: 4
448 | switchSocketInitializeEnabled: 1
449 | switchNetworkInterfaceManagerInitializeEnabled: 1
450 | switchPlayerConnectionEnabled: 1
451 | switchUseNewStyleFilepaths: 0
452 | ps4NPAgeRating: 12
453 | ps4NPTitleSecret:
454 | ps4NPTrophyPackPath:
455 | ps4ParentalLevel: 11
456 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000
457 | ps4Category: 0
458 | ps4MasterVersion: 01.00
459 | ps4AppVersion: 01.00
460 | ps4AppType: 0
461 | ps4ParamSfxPath:
462 | ps4VideoOutPixelFormat: 0
463 | ps4VideoOutInitialWidth: 1920
464 | ps4VideoOutBaseModeInitialWidth: 1920
465 | ps4VideoOutReprojectionRate: 60
466 | ps4PronunciationXMLPath:
467 | ps4PronunciationSIGPath:
468 | ps4BackgroundImagePath:
469 | ps4StartupImagePath:
470 | ps4StartupImagesFolder:
471 | ps4IconImagesFolder:
472 | ps4SaveDataImagePath:
473 | ps4SdkOverride:
474 | ps4BGMPath:
475 | ps4ShareFilePath:
476 | ps4ShareOverlayImagePath:
477 | ps4PrivacyGuardImagePath:
478 | ps4ExtraSceSysFile:
479 | ps4NPtitleDatPath:
480 | ps4RemotePlayKeyAssignment: -1
481 | ps4RemotePlayKeyMappingDir:
482 | ps4PlayTogetherPlayerCount: 0
483 | ps4EnterButtonAssignment: 2
484 | ps4ApplicationParam1: 0
485 | ps4ApplicationParam2: 0
486 | ps4ApplicationParam3: 0
487 | ps4ApplicationParam4: 0
488 | ps4DownloadDataSize: 0
489 | ps4GarlicHeapSize: 2048
490 | ps4ProGarlicHeapSize: 2560
491 | playerPrefsMaxSize: 32768
492 | ps4Passcode: bi9UOuSpM2Tlh01vOzwvSikHFswuzleh
493 | ps4pnSessions: 1
494 | ps4pnPresence: 1
495 | ps4pnFriends: 1
496 | ps4pnGameCustomData: 1
497 | playerPrefsSupport: 0
498 | enableApplicationExit: 0
499 | resetTempFolder: 1
500 | restrictedAudioUsageRights: 0
501 | ps4UseResolutionFallback: 0
502 | ps4ReprojectionSupport: 0
503 | ps4UseAudio3dBackend: 0
504 | ps4UseLowGarlicFragmentationMode: 1
505 | ps4SocialScreenEnabled: 0
506 | ps4ScriptOptimizationLevel: 2
507 | ps4Audio3dVirtualSpeakerCount: 14
508 | ps4attribCpuUsage: 0
509 | ps4PatchPkgPath:
510 | ps4PatchLatestPkgPath:
511 | ps4PatchChangeinfoPath:
512 | ps4PatchDayOne: 0
513 | ps4attribUserManagement: 0
514 | ps4attribMoveSupport: 0
515 | ps4attrib3DSupport: 0
516 | ps4attribShareSupport: 0
517 | ps4attribExclusiveVR: 0
518 | ps4disableAutoHideSplash: 0
519 | ps4videoRecordingFeaturesUsed: 0
520 | ps4contentSearchFeaturesUsed: 0
521 | ps4CompatibilityPS5: 0
522 | ps4GPU800MHz: 1
523 | ps4attribEyeToEyeDistanceSettingVR: 0
524 | ps4IncludedModules: []
525 | ps4attribVROutputEnabled: 0
526 | monoEnv:
527 | splashScreenBackgroundSourceLandscape: {fileID: 0}
528 | splashScreenBackgroundSourcePortrait: {fileID: 0}
529 | blurSplashScreenBackground: 1
530 | spritePackerPolicy:
531 | webGLMemorySize: 32
532 | webGLExceptionSupport: 1
533 | webGLNameFilesAsHashes: 0
534 | webGLDataCaching: 1
535 | webGLDebugSymbols: 0
536 | webGLEmscriptenArgs:
537 | webGLModulesDirectory:
538 | webGLTemplate: APPLICATION:Default
539 | webGLAnalyzeBuildSize: 0
540 | webGLUseEmbeddedResources: 0
541 | webGLCompressionFormat: 0
542 | webGLWasmArithmeticExceptions: 0
543 | webGLLinkerTarget: 1
544 | webGLThreadsSupport: 0
545 | webGLDecompressionFallback: 0
546 | scriptingDefineSymbols: {}
547 | additionalCompilerArguments: {}
548 | platformArchitecture: {}
549 | scriptingBackend: {}
550 | il2cppCompilerConfiguration: {}
551 | managedStrippingLevel: {}
552 | incrementalIl2cppBuild: {}
553 | suppressCommonWarnings: 1
554 | allowUnsafeCode: 0
555 | useDeterministicCompilation: 1
556 | useReferenceAssemblies: 1
557 | enableRoslynAnalyzers: 1
558 | additionalIl2CppArgs:
559 | scriptingRuntimeVersion: 1
560 | gcIncremental: 1
561 | gcWBarrierValidation: 0
562 | apiCompatibilityLevelPerPlatform: {}
563 | m_RenderingPath: 1
564 | m_MobileRenderingPath: 1
565 | metroPackageName: 2D_BuiltInRenderer
566 | metroPackageVersion:
567 | metroCertificatePath:
568 | metroCertificatePassword:
569 | metroCertificateSubject:
570 | metroCertificateIssuer:
571 | metroCertificateNotAfter: 0000000000000000
572 | metroApplicationDescription: 2D_BuiltInRenderer
573 | wsaImages: {}
574 | metroTileShortName:
575 | metroTileShowName: 0
576 | metroMediumTileShowName: 0
577 | metroLargeTileShowName: 0
578 | metroWideTileShowName: 0
579 | metroSupportStreamingInstall: 0
580 | metroLastRequiredScene: 0
581 | metroDefaultTileSize: 1
582 | metroTileForegroundText: 2
583 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
584 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1}
585 | metroSplashScreenUseBackgroundColor: 0
586 | platformCapabilities: {}
587 | metroTargetDeviceFamilies: {}
588 | metroFTAName:
589 | metroFTAFileTypes: []
590 | metroProtocolName:
591 | XboxOneProductId:
592 | XboxOneUpdateKey:
593 | XboxOneSandboxId:
594 | XboxOneContentId:
595 | XboxOneTitleId:
596 | XboxOneSCId:
597 | XboxOneGameOsOverridePath:
598 | XboxOnePackagingOverridePath:
599 | XboxOneAppManifestOverridePath:
600 | XboxOneVersion: 1.0.0.0
601 | XboxOnePackageEncryption: 0
602 | XboxOnePackageUpdateGranularity: 2
603 | XboxOneDescription:
604 | XboxOneLanguage:
605 | - enus
606 | XboxOneCapability: []
607 | XboxOneGameRating: {}
608 | XboxOneIsContentPackage: 0
609 | XboxOneEnableGPUVariability: 1
610 | XboxOneSockets: {}
611 | XboxOneSplashScreen: {fileID: 0}
612 | XboxOneAllowedProductIds: []
613 | XboxOnePersistentLocalStorageSize: 0
614 | XboxOneXTitleMemory: 8
615 | XboxOneOverrideIdentityName:
616 | XboxOneOverrideIdentityPublisher:
617 | vrEditorSettings: {}
618 | cloudServicesEnabled: {}
619 | luminIcon:
620 | m_Name:
621 | m_ModelFolderPath:
622 | m_PortalFolderPath:
623 | luminCert:
624 | m_CertPath:
625 | m_SignPackage: 1
626 | luminIsChannelApp: 0
627 | luminVersion:
628 | m_VersionCode: 1
629 | m_VersionName:
630 | apiCompatibilityLevel: 6
631 | activeInputHandler: 0
632 | cloudProjectId:
633 | framebufferDepthMemorylessMode: 0
634 | qualitySettingsNames: []
635 | projectName:
636 | organizationId:
637 | cloudEnabled: 0
638 | legacyClampBlendShapeWeights: 0
639 | virtualTexturingSupportEnabled: 0
640 |
--------------------------------------------------------------------------------
/ProjectSettings/ProjectVersion.txt:
--------------------------------------------------------------------------------
1 | m_EditorVersion: 2019.4.15f1
2 | m_EditorVersionWithRevision: 2019.4.15f1 (fbf367ac14e9)
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: 1
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: 1
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: 2
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: 1
132 | antiAliasing: 0
133 | softParticles: 0
134 | softVegetation: 1
135 | realtimeReflectionProbes: 1
136 | billboardsFaceCameraPosition: 1
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: 2
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: 2
168 | antiAliasing: 2
169 | softParticles: 1
170 | softVegetation: 1
171 | realtimeReflectionProbes: 1
172 | billboardsFaceCameraPosition: 1
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: 2
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: 255
202 | textureQuality: 0
203 | anisotropicTextures: 2
204 | antiAliasing: 2
205 | softParticles: 1
206 | softVegetation: 1
207 | realtimeReflectionProbes: 1
208 | billboardsFaceCameraPosition: 1
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 | Lumin: 5
228 | Nintendo Switch: 5
229 | PS4: 5
230 | Stadia: 5
231 | Standalone: 5
232 | WebGL: 3
233 | Windows Store Apps: 5
234 | XboxOne: 5
235 | iPhone: 2
236 | tvOS: 2
237 |
--------------------------------------------------------------------------------
/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.33333334
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 | m_GameId:
33 | PerformanceReportingSettings:
34 | m_Enabled: 0
35 |
--------------------------------------------------------------------------------
/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_CopyBufferShader: {fileID: 0}
8 | m_SortShader: {fileID: 0}
9 | m_StripUpdateShader: {fileID: 0}
10 | m_RenderPipeSettingsPath:
11 | m_FixedTimeStep: 0.016666668
12 | m_MaxDeltaTime: 0.05
13 |
--------------------------------------------------------------------------------
/ProjectSettings/VersionControlSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!890905787 &1
4 | VersionControlSettings:
5 | m_ObjectHideFlags: 0
6 | m_Mode: Visible Meta Files
7 | m_CollabEditorSettings:
8 | inProgressEnabled: 1
9 |
--------------------------------------------------------------------------------
/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 | # unity-ecs-match-two
2 | Unity match-two game example using LeoECS
3 |
4 | # features
5 | - configurable board size
6 | - adaptive camera
7 | - shuffling the board when there's no matches left
8 | - will try to add more (bonuses, boosters)
9 |
10 | # credits
11 | - sprites https://redfoc.com/item/match-3-candy-pack/
12 |
--------------------------------------------------------------------------------