├── ProjectSettings
├── boot.config
├── ProjectVersion.txt
├── ClusterInputManager.asset
├── NetworkManager.asset
├── EditorBuildSettings.asset
├── VersionControlSettings.asset
├── TimeManager.asset
├── VFXManager.asset
├── AudioManager.asset
├── TagManager.asset
├── EditorSettings.asset
├── PresetManager.asset
├── UnityConnectSettings.asset
├── DynamicsManager.asset
├── PackageManagerSettings.asset
├── MemorySettings.asset
├── Physics2DSettings.asset
├── NavMeshAreas.asset
├── GraphicsSettings.asset
├── SceneTemplateSettings.json
├── QualitySettings.asset
├── InputManager.asset
└── ProjectSettings.asset
├── UserSettings
├── Search.settings
└── EditorUserSettings.asset
├── Assets
├── Resources
│ ├── BillingMode.json
│ └── BillingMode.json.meta
├── Sprites
│ ├── theTree.png
│ ├── BrickWall.png
│ ├── BrickWall2.png
│ ├── Player_Idle.png
│ ├── theTree.png.meta
│ ├── BrickWall.png.meta
│ ├── BrickWall2.png.meta
│ └── Player_Idle.png.meta
├── Scenes
│ ├── DemoScene.unity.meta
│ └── DemoScene.unity
├── Scenes.meta
├── Scripts.meta
├── Sprites.meta
├── Resources.meta
└── Scripts
│ ├── Player.cs.meta
│ ├── Bounds2D.cs.meta
│ ├── Singleton.cs.meta
│ ├── IsoSpriteSorting.cs.meta
│ ├── TopologicalSort.cs.meta
│ ├── IsoSpriteSortingEditor.cs.meta
│ ├── IsoSpriteSortingManager.cs.meta
│ ├── Player.cs
│ ├── Bounds2D.cs
│ ├── IsoSpriteSortingEditor.cs
│ ├── Singleton.cs
│ ├── TopologicalSort.cs
│ ├── IsoSpriteSortingManager.cs
│ └── IsoSpriteSorting.cs
├── .vsconfig
├── .gitignore
├── Assembly-CSharp.csproj.user
├── Packages
├── manifest.json
└── packages-lock.json
└── Logs
└── Packages-Update.log
/ProjectSettings/boot.config:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/UserSettings/Search.settings:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/Assets/Resources/BillingMode.json:
--------------------------------------------------------------------------------
1 | {"androidStore":"GooglePlay"}
--------------------------------------------------------------------------------
/Assets/Sprites/theTree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markv12/IsoSpriteSortingDemo/HEAD/Assets/Sprites/theTree.png
--------------------------------------------------------------------------------
/Assets/Sprites/BrickWall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markv12/IsoSpriteSortingDemo/HEAD/Assets/Sprites/BrickWall.png
--------------------------------------------------------------------------------
/Assets/Sprites/BrickWall2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markv12/IsoSpriteSortingDemo/HEAD/Assets/Sprites/BrickWall2.png
--------------------------------------------------------------------------------
/Assets/Sprites/Player_Idle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markv12/IsoSpriteSortingDemo/HEAD/Assets/Sprites/Player_Idle.png
--------------------------------------------------------------------------------
/ProjectSettings/ProjectVersion.txt:
--------------------------------------------------------------------------------
1 | m_EditorVersion: 2021.3.35f1
2 | m_EditorVersionWithRevision: 2021.3.35f1 (157b46ce122a)
3 |
--------------------------------------------------------------------------------
/.vsconfig:
--------------------------------------------------------------------------------
1 | {
2 | "version": "1.0",
3 | "components": [
4 | "Microsoft.VisualStudio.Workload.ManagedGame"
5 | ]
6 | }
7 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/Assets/Scenes/DemoScene.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 49224c17b16a49b4aa16953dfcf3a0af
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Scenes.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9841f0eb612351143b1e1b715b245b63
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2289c9e9a95dc524d9fa1ce3e3b23b08
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Sprites.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 878b01b40d16c134eab0572006aebd87
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/Assets/Resources.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: baf5c7d53e4e59b48864de7cf94a6f79
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Resources/BillingMode.json.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 96f15bb18b2ab5f42a0223e5226c0548
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/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 | m_configObjects: {}
9 |
--------------------------------------------------------------------------------
/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/TimeManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!5 &1
4 | TimeManager:
5 | m_ObjectHideFlags: 0
6 | Fixed Timestep: 0.02
7 | Maximum Allowed Timestep: 0.1
8 | m_TimeScale: 1
9 | Maximum Particle Timestep: 0.03
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /[Ll]ibrary/
2 | /[Tt]emp/
3 | /[Oo]bj/
4 | /[Bb]uild/
5 | /[Bb]uilds/
6 | /Assets/AssetStoreTools*
7 |
8 | # Visual Studio 2015 cache directory
9 | /.vs/
10 |
11 | desktop.ini
12 | desktop.ini.meta
13 | *.sln
14 | *.csproj
15 | SwitchIL2CPPCache
16 | SwitchIL2CPPStats
17 |
--------------------------------------------------------------------------------
/Assembly-CSharp.csproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Default
6 |
7 |
--------------------------------------------------------------------------------
/Assets/Scripts/Player.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 18b7f21f390627840a4ec108cc550373
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Scripts/Bounds2D.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f0e7684eb09a90f4c8db2d4954572fa7
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Scripts/Singleton.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 573809b7155a223458e2fd15bbc545c1
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Scripts/IsoSpriteSorting.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 646d68c34334abe44bb05cf2f10a53a3
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Scripts/TopologicalSort.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9a4e9ad2acad4404cb40c3f1aee19867
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Scripts/IsoSpriteSortingEditor.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4279662d178c67d4694dbd46371e2d9c
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Scripts/IsoSpriteSortingManager.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a792b055f89fc5f4dbb4e07e313063af
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/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_RenderPipeSettingsPath:
10 | m_FixedTimeStep: 0.016666668
11 | m_MaxDeltaTime: 0.05
12 |
--------------------------------------------------------------------------------
/ProjectSettings/AudioManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!11 &1
4 | AudioManager:
5 | m_ObjectHideFlags: 0
6 | m_Volume: 1
7 | Rolloff Scale: 1
8 | Doppler Factor: 1
9 | Default Speaker Mode: 2
10 | m_SampleRate: 0
11 | m_DSPBufferSize: 1024
12 | m_VirtualVoiceCount: 512
13 | m_RealVoiceCount: 32
14 | m_SpatializerPlugin:
15 | m_AmbisonicDecoderPlugin:
16 | m_DisableAudio: 0
17 | m_VirtualizeEffects: 1
18 |
--------------------------------------------------------------------------------
/ProjectSettings/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 | - PostProcessing
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/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: 7
7 | m_ExternalVersionControlSupport: Visible Meta Files
8 | m_SerializationMode: 2
9 | m_LineEndingsForNewScripts: 2
10 | m_DefaultBehaviorMode: 1
11 | m_PrefabRegularEnvironment: {fileID: 0}
12 | m_PrefabUIEnvironment: {fileID: 0}
13 | m_SpritePackerMode: 0
14 | m_SpritePackerPaddingPower: 1
15 | m_EtcTextureCompressorBehavior: 1
16 | m_EtcTextureFastCompressor: 1
17 | m_EtcTextureNormalCompressor: 2
18 | m_EtcTextureBestCompressor: 4
19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd
20 | m_ProjectGenerationRootNamespace:
21 | m_CollabEditorSettings:
22 | inProgressEnabled: 1
23 | m_EnableTextureStreamingInPlayMode: 1
24 |
--------------------------------------------------------------------------------
/ProjectSettings/PresetManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1386491679 &1
4 | PresetManager:
5 | m_ObjectHideFlags: 0
6 | m_DefaultList:
7 | - type:
8 | m_NativeTypeID: 108
9 | m_ManagedTypePPtr: {fileID: 0}
10 | m_ManagedTypeFallback:
11 | defaultPresets:
12 | - m_Preset: {fileID: 2655988077585873504, guid: c1cf8506f04ef2c4a88b64b6c4202eea,
13 | type: 2}
14 | - type:
15 | m_NativeTypeID: 1020
16 | m_ManagedTypePPtr: {fileID: 0}
17 | m_ManagedTypeFallback:
18 | defaultPresets:
19 | - m_Preset: {fileID: 2655988077585873504, guid: 0cd792cc87e492d43b4e95b205fc5cc6,
20 | type: 2}
21 | - type:
22 | m_NativeTypeID: 1006
23 | m_ManagedTypePPtr: {fileID: 0}
24 | m_ManagedTypeFallback:
25 | defaultPresets:
26 | - m_Preset: {fileID: 2655988077585873504, guid: 7a99f8aa944efe94cb9bd74562b7d5f9,
27 | type: 2}
28 |
--------------------------------------------------------------------------------
/Assets/Scripts/Player.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | public class Player : MonoBehaviour {
4 | public Transform t;
5 | public Rigidbody2D rgd;
6 | private const float speed = 125f;
7 | void Update() {
8 | if (Input.GetKey(KeyCode.DownArrow) || Input.GetKey(KeyCode.S)) {
9 | rgd.velocity = new Vector2(0, -speed) * Time.deltaTime;
10 | } else if (Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.W)) {
11 | rgd.velocity = new Vector2(0, speed) * Time.deltaTime;
12 | } else if (Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(KeyCode.A)) {
13 | rgd.velocity = new Vector2(-speed, 0) * Time.deltaTime;
14 | } else if (Input.GetKey(KeyCode.RightArrow) || Input.GetKey(KeyCode.D)) {
15 | rgd.velocity = new Vector2(speed, 0) * Time.deltaTime;
16 | } else {
17 | rgd.velocity = Vector2.zero;
18 | }
19 | rgd.angularVelocity = 0;
20 | rgd.rotation = 0;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/UserSettings/EditorUserSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!162 &1
4 | EditorUserSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 4
7 | m_ConfigSettings:
8 | RecentlyUsedSceneGuid-0:
9 | value: 570806545156580c0f5f5a23447a5d441716497c757d75342b2a1b60e3b0353e
10 | flags: 0
11 | RecentlyUsedScenePath-0:
12 | value: 22424703114646680e0b0227036c7b151b182b292926237e38271427fb
13 | flags: 0
14 | vcSharedLogLevel:
15 | value: 0d5e400f0650
16 | flags: 0
17 | m_VCAutomaticAdd: 1
18 | m_VCDebugCom: 0
19 | m_VCDebugCmd: 0
20 | m_VCDebugOut: 0
21 | m_SemanticMergeMode: 2
22 | m_DesiredImportWorkerCount: 4
23 | m_StandbyImportWorkerCount: 2
24 | m_IdleImportWorkerShutdownDelay: 60000
25 | m_VCShowFailedCheckout: 1
26 | m_VCOverwriteFailedCheckoutAssets: 1
27 | m_VCProjectOverlayIcons: 1
28 | m_VCHierarchyOverlayIcons: 1
29 | m_VCOtherOverlayIcons: 1
30 | m_VCAllowAsyncUpdate: 1
31 | m_ArtifactGarbageCollection: 1
32 |
--------------------------------------------------------------------------------
/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/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: 8
7 | m_Gravity: {x: 0, y: -9.81, z: 0}
8 | m_DefaultMaterial: {fileID: 0}
9 | m_BounceThreshold: 2
10 | m_SleepThreshold: 0.005
11 | m_DefaultContactOffset: 0.01
12 | m_DefaultSolverIterations: 6
13 | m_DefaultSolverVelocityIterations: 1
14 | m_QueriesHitBackfaces: 0
15 | m_QueriesHitTriggers: 1
16 | m_EnableAdaptiveForce: 0
17 | m_ClothInterCollisionDistance: 0
18 | m_ClothInterCollisionStiffness: 0
19 | m_ContactsGeneration: 1
20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
21 | m_AutoSimulation: 1
22 | m_AutoSyncTransforms: 0
23 | m_ReuseCollisionCallbacks: 1
24 | m_ClothInterCollisionSettingsToggle: 0
25 | m_ContactPairsMode: 0
26 | m_BroadphaseType: 0
27 | m_WorldBounds:
28 | m_Center: {x: 0, y: 0, z: 0}
29 | m_Extent: {x: 250, y: 250, z: 250}
30 | m_WorldSubdivisions: 8
31 |
--------------------------------------------------------------------------------
/ProjectSettings/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: 13964, guid: 0000000000000000e000000000000000, type: 0}
13 | m_Name:
14 | m_EditorClassIdentifier:
15 | m_EnablePreviewPackages: 0
16 | m_EnablePackageDependencies: 0
17 | m_AdvancedSettingsExpanded: 1
18 | m_ScopedRegistriesSettingsExpanded: 1
19 | oneTimeWarningShown: 0
20 | m_Registries:
21 | - m_Id: main
22 | m_Name:
23 | m_Url: https://packages.unity.com
24 | m_Scopes: []
25 | m_IsDefault: 1
26 | m_Capabilities: 7
27 | m_UserSelectedRegistryName:
28 | m_UserAddingNewScopedRegistry: 0
29 | m_RegistryInfoDraft:
30 | m_ErrorMessage:
31 | m_Original:
32 | m_Id:
33 | m_Name:
34 | m_Url:
35 | m_Scopes: []
36 | m_IsDefault: 0
37 | m_Capabilities: 0
38 | m_Modified: 0
39 | m_Name:
40 | m_Url:
41 | m_Scopes:
42 | -
43 | m_SelectedScopeIndex: 0
44 |
--------------------------------------------------------------------------------
/ProjectSettings/MemorySettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!387306366 &1
4 | MemorySettings:
5 | m_ObjectHideFlags: 0
6 | m_EditorMemorySettings:
7 | m_MainAllocatorBlockSize: -1
8 | m_ThreadAllocatorBlockSize: -1
9 | m_MainGfxBlockSize: -1
10 | m_ThreadGfxBlockSize: -1
11 | m_CacheBlockSize: -1
12 | m_TypetreeBlockSize: -1
13 | m_ProfilerBlockSize: -1
14 | m_ProfilerEditorBlockSize: -1
15 | m_BucketAllocatorGranularity: -1
16 | m_BucketAllocatorBucketsCount: -1
17 | m_BucketAllocatorBlockSize: -1
18 | m_BucketAllocatorBlockCount: -1
19 | m_ProfilerBucketAllocatorGranularity: -1
20 | m_ProfilerBucketAllocatorBucketsCount: -1
21 | m_ProfilerBucketAllocatorBlockSize: -1
22 | m_ProfilerBucketAllocatorBlockCount: -1
23 | m_TempAllocatorSizeMain: -1
24 | m_JobTempAllocatorBlockSize: -1
25 | m_BackgroundJobTempAllocatorBlockSize: -1
26 | m_JobTempAllocatorReducedBlockSize: -1
27 | m_TempAllocatorSizeGIBakingWorker: -1
28 | m_TempAllocatorSizeNavMeshWorker: -1
29 | m_TempAllocatorSizeAudioWorker: -1
30 | m_TempAllocatorSizeCloudWorker: -1
31 | m_TempAllocatorSizeGfx: -1
32 | m_TempAllocatorSizeJobWorker: -1
33 | m_TempAllocatorSizeBackgroundWorker: -1
34 | m_TempAllocatorSizePreloadManager: -1
35 | m_PlatformMemorySettings: {}
36 |
--------------------------------------------------------------------------------
/Assets/Scripts/Bounds2D.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using UnityEngine;
3 |
4 | [Serializable]
5 | public struct Bounds2D {
6 | public float minX;
7 | public float minY;
8 | public float maxX;
9 | public float maxY;
10 |
11 | public Bounds2D(Bounds bounds) {
12 | Vector2 min = bounds.min;
13 | Vector2 max = bounds.max;
14 | minX = min.x;
15 | minY = min.y;
16 | maxX = max.x;
17 | maxY = max.y;
18 | }
19 |
20 | public Bounds2D(float _minX, float _minY, float _maxX, float _maxY) {
21 | minX = _minX;
22 | minY = _minY;
23 | maxX = _maxX;
24 | maxY = _maxY;
25 | }
26 |
27 | public bool Intersects(Bounds2D otherBounds) {
28 | return minX <= otherBounds.maxX && otherBounds.minX <= maxX && maxY >= otherBounds.minY && otherBounds.maxY >= minY;
29 | }
30 |
31 | public bool Contains(Vector2 point) {
32 | return minX <= point.x && maxX >= point.x && minY <= point.y && maxY >= point.y;
33 | }
34 |
35 | public Vector2 RandomPos() {
36 | float x = UnityEngine.Random.Range(minX, maxX);
37 | float y = UnityEngine.Random.Range(minY, maxY);
38 | return new Vector2(x, y);
39 | }
40 |
41 | public override string ToString() {
42 | return "Min: (" + minX + ", " + minY + ") Max: (" + maxX + ", " + maxY + ")";
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/ProjectSettings/Physics2DSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!19 &1
4 | Physics2DSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 4
7 | m_Gravity: {x: 0, y: -9.81}
8 | m_DefaultMaterial: {fileID: 0}
9 | m_VelocityIterations: 8
10 | m_PositionIterations: 3
11 | m_VelocityThreshold: 1
12 | m_MaxLinearCorrection: 0.2
13 | m_MaxAngularCorrection: 8
14 | m_MaxTranslationSpeed: 100
15 | m_MaxRotationSpeed: 360
16 | m_BaumgarteScale: 0.2
17 | m_BaumgarteTimeOfImpactScale: 0.75
18 | m_TimeToSleep: 0.5
19 | m_LinearSleepTolerance: 0.01
20 | m_AngularSleepTolerance: 2
21 | m_DefaultContactOffset: 0.01
22 | m_AutoSimulation: 1
23 | m_QueriesHitTriggers: 1
24 | m_QueriesStartInColliders: 1
25 | m_ChangeStopsCallbacks: 0
26 | m_CallbacksOnDisable: 1
27 | m_ReuseCollisionCallbacks: 1
28 | m_AutoSyncTransforms: 0
29 | m_AlwaysShowColliders: 0
30 | m_ShowColliderSleep: 1
31 | m_ShowColliderContacts: 0
32 | m_ShowColliderAABB: 0
33 | m_ContactArrowScale: 0.2
34 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
35 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
36 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
37 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
38 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
39 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/Packages/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "com.unity.2d.sprite": "1.0.0",
4 | "com.unity.2d.tilemap": "1.0.0",
5 | "com.unity.collab-proxy": "2.2.0",
6 | "com.unity.ide.rider": "3.0.28",
7 | "com.unity.ide.visualstudio": "2.0.22",
8 | "com.unity.ide.vscode": "1.2.5",
9 | "com.unity.textmeshpro": "3.0.9",
10 | "com.unity.ugui": "1.0.0",
11 | "com.unity.modules.ai": "1.0.0",
12 | "com.unity.modules.androidjni": "1.0.0",
13 | "com.unity.modules.animation": "1.0.0",
14 | "com.unity.modules.assetbundle": "1.0.0",
15 | "com.unity.modules.audio": "1.0.0",
16 | "com.unity.modules.cloth": "1.0.0",
17 | "com.unity.modules.director": "1.0.0",
18 | "com.unity.modules.imageconversion": "1.0.0",
19 | "com.unity.modules.imgui": "1.0.0",
20 | "com.unity.modules.jsonserialize": "1.0.0",
21 | "com.unity.modules.particlesystem": "1.0.0",
22 | "com.unity.modules.physics": "1.0.0",
23 | "com.unity.modules.physics2d": "1.0.0",
24 | "com.unity.modules.screencapture": "1.0.0",
25 | "com.unity.modules.terrain": "1.0.0",
26 | "com.unity.modules.terrainphysics": "1.0.0",
27 | "com.unity.modules.tilemap": "1.0.0",
28 | "com.unity.modules.ui": "1.0.0",
29 | "com.unity.modules.uielements": "1.0.0",
30 | "com.unity.modules.umbra": "1.0.0",
31 | "com.unity.modules.unityanalytics": "1.0.0",
32 | "com.unity.modules.unitywebrequest": "1.0.0",
33 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
34 | "com.unity.modules.unitywebrequestaudio": "1.0.0",
35 | "com.unity.modules.unitywebrequesttexture": "1.0.0",
36 | "com.unity.modules.unitywebrequestwww": "1.0.0",
37 | "com.unity.modules.vehicles": "1.0.0",
38 | "com.unity.modules.video": "1.0.0",
39 | "com.unity.modules.vr": "1.0.0",
40 | "com.unity.modules.wind": "1.0.0",
41 | "com.unity.modules.xr": "1.0.0"
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/Assets/Scripts/IsoSpriteSortingEditor.cs:
--------------------------------------------------------------------------------
1 | #if UNITY_EDITOR
2 | using UnityEditor;
3 | using UnityEngine;
4 |
5 | #pragma warning disable 618
6 |
7 | [CustomEditor(typeof(IsoSpriteSorting))]
8 | public class IsoSpriteSortingEditor : Editor {
9 | SerializedProperty sorterPositionOffset;
10 | SerializedProperty sorterPositionOffset2;
11 |
12 | private void OnEnable() {
13 | sorterPositionOffset = serializedObject.FindProperty("SorterPositionOffset");
14 | sorterPositionOffset2 = serializedObject.FindProperty("SorterPositionOffset2");
15 | }
16 |
17 | public void OnSceneGUI() {
18 | IsoSpriteSorting sorter = (IsoSpriteSorting)target;
19 |
20 | serializedObject.Update();
21 | sorterPositionOffset.vector2Value = Handles.FreeMoveHandle(
22 | sorter.transform.position + (Vector3)sorterPositionOffset.vector2Value,
23 | Quaternion.identity,
24 | 0.08f * HandleUtility.GetHandleSize(sorter.transform.position),
25 | Vector3.zero,
26 | Handles.DotHandleCap
27 | ) - sorter.transform.position;
28 | if (sorter.sortType == IsoSpriteSorting.SortType.Line) {
29 | sorterPositionOffset2.vector2Value = Handles.FreeMoveHandle(
30 | sorter.transform.position + (Vector3)sorterPositionOffset2.vector2Value,
31 | Quaternion.identity,
32 | 0.08f * HandleUtility.GetHandleSize(sorter.transform.position),
33 | Vector3.zero,
34 | Handles.DotHandleCap
35 | ) - sorter.transform.position;
36 | Vector2 pos = sorter.transform.position;
37 | Handles.DrawLine(pos + sorterPositionOffset.vector2Value, pos + sorterPositionOffset2.vector2Value);
38 | }
39 | serializedObject.ApplyModifiedProperties();
40 | }
41 |
42 | public override void OnInspectorGUI() {
43 | DrawDefaultInspector();
44 | IsoSpriteSorting myScript = (IsoSpriteSorting)target;
45 | if (GUILayout.Button("Sort Visible Scene")) {
46 | myScript.SortScene();
47 | }
48 | }
49 | }
50 | #endif
51 |
--------------------------------------------------------------------------------
/Logs/Packages-Update.log:
--------------------------------------------------------------------------------
1 |
2 | === Wed May 15 00:24:27 2019
3 |
4 | Packages were changed.
5 | Update Mode: mergeDefaultDependencies
6 |
7 | The following packages were added:
8 | com.unity.analytics@3.2.2
9 | com.unity.purchasing@2.0.3
10 | com.unity.ads@2.0.8
11 | com.unity.textmeshpro@1.3.0
12 | com.unity.package-manager-ui@2.0.7
13 | com.unity.collab-proxy@1.2.15
14 | com.unity.modules.ai@1.0.0
15 | com.unity.modules.animation@1.0.0
16 | com.unity.modules.assetbundle@1.0.0
17 | com.unity.modules.audio@1.0.0
18 | com.unity.modules.cloth@1.0.0
19 | com.unity.modules.director@1.0.0
20 | com.unity.modules.imageconversion@1.0.0
21 | com.unity.modules.imgui@1.0.0
22 | com.unity.modules.jsonserialize@1.0.0
23 | com.unity.modules.particlesystem@1.0.0
24 | com.unity.modules.physics@1.0.0
25 | com.unity.modules.physics2d@1.0.0
26 | com.unity.modules.screencapture@1.0.0
27 | com.unity.modules.terrain@1.0.0
28 | com.unity.modules.terrainphysics@1.0.0
29 | com.unity.modules.tilemap@1.0.0
30 | com.unity.modules.ui@1.0.0
31 | com.unity.modules.uielements@1.0.0
32 | com.unity.modules.umbra@1.0.0
33 | com.unity.modules.unityanalytics@1.0.0
34 | com.unity.modules.unitywebrequest@1.0.0
35 | com.unity.modules.unitywebrequestassetbundle@1.0.0
36 | com.unity.modules.unitywebrequestaudio@1.0.0
37 | com.unity.modules.unitywebrequesttexture@1.0.0
38 | com.unity.modules.unitywebrequestwww@1.0.0
39 | com.unity.modules.vehicles@1.0.0
40 | com.unity.modules.video@1.0.0
41 | com.unity.modules.vr@1.0.0
42 | com.unity.modules.wind@1.0.0
43 | com.unity.modules.xr@1.0.0
44 |
45 | === Fri Sep 17 21:01:50 2021
46 |
47 | Packages were changed.
48 | Update Mode: updateDependencies
49 |
50 | The following packages were added:
51 | com.unity.2d.sprite@1.0.0
52 | com.unity.2d.tilemap@1.0.0
53 | com.unity.ide.rider@2.0.7
54 | com.unity.ide.visualstudio@2.0.8
55 | com.unity.ide.vscode@1.2.3
56 | com.unity.modules.androidjni@1.0.0
57 | com.unity.test-framework@1.1.24
58 | com.unity.timeline@1.4.8
59 | com.unity.ugui@1.0.0
60 | com.unity.xr.legacyinputhelpers@2.1.7
61 | The following packages were updated:
62 | com.unity.ads from version 2.0.8 to 3.7.1
63 | com.unity.analytics from version 3.2.2 to 3.5.3
64 | com.unity.collab-proxy from version 1.2.15 to 1.5.7
65 | com.unity.purchasing from version 2.0.3 to 3.2.1
66 | com.unity.textmeshpro from version 1.3.0 to 3.0.6
67 | The following packages were removed:
68 | com.unity.package-manager-ui@2.0.7
69 |
--------------------------------------------------------------------------------
/ProjectSettings/GraphicsSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!30 &1
4 | GraphicsSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 12
7 | m_Deferred:
8 | m_Mode: 1
9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
10 | m_DeferredReflections:
11 | m_Mode: 1
12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0}
13 | m_ScreenSpaceShadows:
14 | m_Mode: 1
15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
16 | m_LegacyDeferred:
17 | m_Mode: 1
18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}
19 | m_DepthNormals:
20 | m_Mode: 1
21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
22 | m_MotionVectors:
23 | m_Mode: 1
24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}
25 | m_LightHalo:
26 | m_Mode: 1
27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}
28 | m_LensFlare:
29 | m_Mode: 1
30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}
31 | m_AlwaysIncludedShaders:
32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}
34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}
35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
38 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}
39 | m_PreloadedShaders: []
40 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
41 | 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 |
--------------------------------------------------------------------------------
/Assets/Sprites/theTree.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: bc925b22fd0dad9419bdfcfbb4a3e34d
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 9
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: 1
31 | maxTextureSize: 2048
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: 0
35 | aniso: -1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 1
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 12
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 8
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 2
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 2048
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 1
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | - serializedVersion: 2
73 | buildTarget: Standalone
74 | maxTextureSize: 2048
75 | resizeAlgorithm: 0
76 | textureFormat: -1
77 | textureCompression: 1
78 | compressionQuality: 50
79 | crunchedCompression: 0
80 | allowsAlphaSplitting: 0
81 | overridden: 0
82 | androidETC2FallbackOverride: 0
83 | - serializedVersion: 2
84 | buildTarget: WebGL
85 | maxTextureSize: 2048
86 | resizeAlgorithm: 0
87 | textureFormat: -1
88 | textureCompression: 1
89 | compressionQuality: 50
90 | crunchedCompression: 0
91 | allowsAlphaSplitting: 0
92 | overridden: 0
93 | androidETC2FallbackOverride: 0
94 | spriteSheet:
95 | serializedVersion: 2
96 | sprites: []
97 | outline: []
98 | physicsShape: []
99 | bones: []
100 | spriteID: 285e415fe78b1da43a99b22465372cbe
101 | vertices: []
102 | indices:
103 | edges: []
104 | weights: []
105 | spritePackingTag:
106 | pSDRemoveMatte: 0
107 | pSDShowRemoveMatteOption: 0
108 | userData:
109 | assetBundleName:
110 | assetBundleVariant:
111 |
--------------------------------------------------------------------------------
/Assets/Sprites/BrickWall.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 687b783e7340d84469a357adb9de4da3
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 9
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: 1
31 | maxTextureSize: 2048
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: 0
35 | aniso: -1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 1
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 12
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 8
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 2
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 2048
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 1
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | - serializedVersion: 2
73 | buildTarget: Standalone
74 | maxTextureSize: 2048
75 | resizeAlgorithm: 0
76 | textureFormat: -1
77 | textureCompression: 1
78 | compressionQuality: 50
79 | crunchedCompression: 0
80 | allowsAlphaSplitting: 0
81 | overridden: 0
82 | androidETC2FallbackOverride: 0
83 | - serializedVersion: 2
84 | buildTarget: WebGL
85 | maxTextureSize: 2048
86 | resizeAlgorithm: 0
87 | textureFormat: -1
88 | textureCompression: 1
89 | compressionQuality: 50
90 | crunchedCompression: 0
91 | allowsAlphaSplitting: 0
92 | overridden: 0
93 | androidETC2FallbackOverride: 0
94 | spriteSheet:
95 | serializedVersion: 2
96 | sprites: []
97 | outline: []
98 | physicsShape: []
99 | bones: []
100 | spriteID: 7ff6c65ab28cf0a46ad7f6e0c66bb72b
101 | vertices: []
102 | indices:
103 | edges: []
104 | weights: []
105 | spritePackingTag:
106 | pSDRemoveMatte: 0
107 | pSDShowRemoveMatteOption: 0
108 | userData:
109 | assetBundleName:
110 | assetBundleVariant:
111 |
--------------------------------------------------------------------------------
/Assets/Sprites/BrickWall2.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2f5ad01ab6b10a74aad3a0dbe7ae6ea3
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 9
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: 1
31 | maxTextureSize: 2048
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: 0
35 | aniso: -1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 1
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 12
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 8
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 2
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 2048
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 1
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | - serializedVersion: 2
73 | buildTarget: Standalone
74 | maxTextureSize: 2048
75 | resizeAlgorithm: 0
76 | textureFormat: -1
77 | textureCompression: 1
78 | compressionQuality: 50
79 | crunchedCompression: 0
80 | allowsAlphaSplitting: 0
81 | overridden: 0
82 | androidETC2FallbackOverride: 0
83 | - serializedVersion: 2
84 | buildTarget: WebGL
85 | maxTextureSize: 2048
86 | resizeAlgorithm: 0
87 | textureFormat: -1
88 | textureCompression: 1
89 | compressionQuality: 50
90 | crunchedCompression: 0
91 | allowsAlphaSplitting: 0
92 | overridden: 0
93 | androidETC2FallbackOverride: 0
94 | spriteSheet:
95 | serializedVersion: 2
96 | sprites: []
97 | outline: []
98 | physicsShape: []
99 | bones: []
100 | spriteID: c49d44cd0e4cd0042a866901bd6a48b5
101 | vertices: []
102 | indices:
103 | edges: []
104 | weights: []
105 | spritePackingTag:
106 | pSDRemoveMatte: 0
107 | pSDShowRemoveMatteOption: 0
108 | userData:
109 | assetBundleName:
110 | assetBundleVariant:
111 |
--------------------------------------------------------------------------------
/Assets/Sprites/Player_Idle.png.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b6b96ec1428562c48b18db30372e7abc
3 | TextureImporter:
4 | fileIDToRecycleName: {}
5 | externalObjects: {}
6 | serializedVersion: 9
7 | mipmaps:
8 | mipMapMode: 0
9 | enableMipMap: 0
10 | sRGBTexture: 1
11 | linearTexture: 0
12 | fadeOut: 0
13 | borderMipMap: 0
14 | mipMapsPreserveCoverage: 0
15 | alphaTestReferenceValue: 0.5
16 | mipMapFadeDistanceStart: 1
17 | mipMapFadeDistanceEnd: 3
18 | bumpmap:
19 | convertToNormalMap: 0
20 | externalNormalMap: 0
21 | heightScale: 0.25
22 | normalMapFilter: 0
23 | isReadable: 0
24 | streamingMipmaps: 0
25 | streamingMipmapsPriority: 0
26 | grayScaleToAlpha: 0
27 | generateCubemap: 6
28 | cubemapConvolution: 0
29 | seamlessCubemap: 0
30 | textureFormat: 1
31 | maxTextureSize: 2048
32 | textureSettings:
33 | serializedVersion: 2
34 | filterMode: 0
35 | aniso: -1
36 | mipBias: -100
37 | wrapU: 1
38 | wrapV: 1
39 | wrapW: 1
40 | nPOTScale: 0
41 | lightmap: 0
42 | compressionQuality: 50
43 | spriteMode: 1
44 | spriteExtrude: 1
45 | spriteMeshType: 1
46 | alignment: 0
47 | spritePivot: {x: 0.5, y: 0.5}
48 | spritePixelsToUnits: 12
49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0}
50 | spriteGenerateFallbackPhysicsShape: 1
51 | alphaUsage: 1
52 | alphaIsTransparency: 1
53 | spriteTessellationDetail: -1
54 | textureType: 8
55 | textureShape: 1
56 | singleChannelComponent: 0
57 | maxTextureSizeSet: 0
58 | compressionQualitySet: 0
59 | textureFormatSet: 0
60 | platformSettings:
61 | - serializedVersion: 2
62 | buildTarget: DefaultTexturePlatform
63 | maxTextureSize: 2048
64 | resizeAlgorithm: 0
65 | textureFormat: -1
66 | textureCompression: 1
67 | compressionQuality: 50
68 | crunchedCompression: 0
69 | allowsAlphaSplitting: 0
70 | overridden: 0
71 | androidETC2FallbackOverride: 0
72 | - serializedVersion: 2
73 | buildTarget: Standalone
74 | maxTextureSize: 2048
75 | resizeAlgorithm: 0
76 | textureFormat: -1
77 | textureCompression: 1
78 | compressionQuality: 50
79 | crunchedCompression: 0
80 | allowsAlphaSplitting: 0
81 | overridden: 0
82 | androidETC2FallbackOverride: 0
83 | - serializedVersion: 2
84 | buildTarget: WebGL
85 | maxTextureSize: 2048
86 | resizeAlgorithm: 0
87 | textureFormat: -1
88 | textureCompression: 1
89 | compressionQuality: 50
90 | crunchedCompression: 0
91 | allowsAlphaSplitting: 0
92 | overridden: 0
93 | androidETC2FallbackOverride: 0
94 | spriteSheet:
95 | serializedVersion: 2
96 | sprites: []
97 | outline: []
98 | physicsShape: []
99 | bones: []
100 | spriteID: a1cdaed1a2b24774bbf3b86a0a1d88a1
101 | vertices: []
102 | indices:
103 | edges: []
104 | weights: []
105 | spritePackingTag:
106 | pSDRemoveMatte: 0
107 | pSDShowRemoveMatteOption: 0
108 | userData:
109 | assetBundleName:
110 | assetBundleVariant:
111 |
--------------------------------------------------------------------------------
/Assets/Scripts/Singleton.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | ///
4 | /// Be aware this will not prevent a non singleton constructor
5 | /// such as `T myT = new T();`
6 | /// To prevent that, add `protected T () {}` to your singleton class.
7 | ///
8 | /// As a note, this is made as MonoBehaviour because we need Coroutines.
9 | ///
10 | public class Singleton : MonoBehaviour where T : MonoBehaviour
11 | {
12 | private static T _instance;
13 |
14 | private static object _lock = new object();
15 |
16 | public static T InstanceUnsafe
17 | {
18 | get
19 | {
20 | return _instance;
21 | }
22 | }
23 |
24 |
25 | public static T Instance
26 | {
27 | get
28 | {
29 | if (applicationIsQuitting)
30 | {
31 | //Debug.LogWarning("[Singleton] Instance '" + typeof(T) +
32 | // "' already destroyed on application quit." +
33 | // " Won't create again - returning null.");
34 | return null;
35 | }
36 |
37 | lock (_lock)
38 | {
39 | if (_instance == null)
40 | {
41 | _instance = (T)FindObjectOfType(typeof(T));
42 |
43 | if (FindObjectsOfType(typeof(T)).Length > 1)
44 | {
45 | Debug.LogError("[Singleton] Something went really wrong " +
46 | " - there should never be more than 1 singleton!" +
47 | " Reopening the scene might fix it.");
48 | return _instance;
49 | }
50 |
51 | if (_instance == null)
52 | {
53 | GameObject singleton = new GameObject();
54 | _instance = singleton.AddComponent();
55 | singleton.name = "(singleton) " + typeof(T).ToString();
56 |
57 | DontDestroyOnLoad(singleton);
58 |
59 | //Debug.Log("[Singleton] An instance of " + typeof(T) +
60 | // " is needed in the scene, so '" + singleton +
61 | // "' was created with DontDestroyOnLoad.");
62 | }
63 | else
64 | {
65 | Debug.Log("[Singleton] Using instance already created: " +
66 | _instance.gameObject.name);
67 | }
68 | }
69 |
70 | return _instance;
71 | }
72 | }
73 | }
74 |
75 | private static bool applicationIsQuitting = false;
76 | ///
77 | /// When Unity quits, it destroys objects in a random order.
78 | /// In principle, a Singleton is only destroyed when application quits.
79 | /// If any script calls Instance after it have been destroyed,
80 | /// it will create a buggy ghost object that will stay on the Editor scene
81 | /// even after stopping playing the Application. Really bad!
82 | /// So, this was made to be sure we're not creating that buggy ghost object.
83 | ///
84 | void OnApplicationQuit()
85 | {
86 | applicationIsQuitting = true;
87 | }
88 | }
--------------------------------------------------------------------------------
/ProjectSettings/SceneTemplateSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "templatePinStates": [],
3 | "dependencyTypeInfos": [
4 | {
5 | "userAdded": false,
6 | "type": "UnityEngine.AnimationClip",
7 | "defaultInstantiationMode": 0
8 | },
9 | {
10 | "userAdded": false,
11 | "type": "UnityEditor.Animations.AnimatorController",
12 | "defaultInstantiationMode": 0
13 | },
14 | {
15 | "userAdded": false,
16 | "type": "UnityEngine.AnimatorOverrideController",
17 | "defaultInstantiationMode": 0
18 | },
19 | {
20 | "userAdded": false,
21 | "type": "UnityEditor.Audio.AudioMixerController",
22 | "defaultInstantiationMode": 0
23 | },
24 | {
25 | "userAdded": false,
26 | "type": "UnityEngine.ComputeShader",
27 | "defaultInstantiationMode": 1
28 | },
29 | {
30 | "userAdded": false,
31 | "type": "UnityEngine.Cubemap",
32 | "defaultInstantiationMode": 0
33 | },
34 | {
35 | "userAdded": false,
36 | "type": "UnityEngine.GameObject",
37 | "defaultInstantiationMode": 0
38 | },
39 | {
40 | "userAdded": false,
41 | "type": "UnityEditor.LightingDataAsset",
42 | "defaultInstantiationMode": 0
43 | },
44 | {
45 | "userAdded": false,
46 | "type": "UnityEngine.LightingSettings",
47 | "defaultInstantiationMode": 0
48 | },
49 | {
50 | "userAdded": false,
51 | "type": "UnityEngine.Material",
52 | "defaultInstantiationMode": 0
53 | },
54 | {
55 | "userAdded": false,
56 | "type": "UnityEditor.MonoScript",
57 | "defaultInstantiationMode": 1
58 | },
59 | {
60 | "userAdded": false,
61 | "type": "UnityEngine.PhysicMaterial",
62 | "defaultInstantiationMode": 0
63 | },
64 | {
65 | "userAdded": false,
66 | "type": "UnityEngine.PhysicsMaterial2D",
67 | "defaultInstantiationMode": 0
68 | },
69 | {
70 | "userAdded": false,
71 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile",
72 | "defaultInstantiationMode": 0
73 | },
74 | {
75 | "userAdded": false,
76 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources",
77 | "defaultInstantiationMode": 0
78 | },
79 | {
80 | "userAdded": false,
81 | "type": "UnityEngine.Rendering.VolumeProfile",
82 | "defaultInstantiationMode": 0
83 | },
84 | {
85 | "userAdded": false,
86 | "type": "UnityEditor.SceneAsset",
87 | "defaultInstantiationMode": 1
88 | },
89 | {
90 | "userAdded": false,
91 | "type": "UnityEngine.Shader",
92 | "defaultInstantiationMode": 1
93 | },
94 | {
95 | "userAdded": false,
96 | "type": "UnityEngine.ShaderVariantCollection",
97 | "defaultInstantiationMode": 1
98 | },
99 | {
100 | "userAdded": false,
101 | "type": "UnityEngine.Texture",
102 | "defaultInstantiationMode": 0
103 | },
104 | {
105 | "userAdded": false,
106 | "type": "UnityEngine.Texture2D",
107 | "defaultInstantiationMode": 0
108 | },
109 | {
110 | "userAdded": false,
111 | "type": "UnityEngine.Timeline.TimelineAsset",
112 | "defaultInstantiationMode": 0
113 | }
114 | ],
115 | "defaultDependencyTypeInfo": {
116 | "userAdded": false,
117 | "type": "",
118 | "defaultInstantiationMode": 1
119 | },
120 | "newSceneOverride": 0
121 | }
--------------------------------------------------------------------------------
/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: 4
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 | blendWeights: 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 | particleRaycastBudget: 4
33 | asyncUploadTimeSlice: 2
34 | asyncUploadBufferSize: 16
35 | resolutionScalingFixedDPIFactor: 1
36 | excludedTargetPlatforms: []
37 | - serializedVersion: 2
38 | name: Low
39 | pixelLightCount: 0
40 | shadows: 0
41 | shadowResolution: 0
42 | shadowProjection: 1
43 | shadowCascades: 1
44 | shadowDistance: 20
45 | shadowNearPlaneOffset: 3
46 | shadowCascade2Split: 0.33333334
47 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
48 | shadowmaskMode: 0
49 | blendWeights: 2
50 | textureQuality: 0
51 | anisotropicTextures: 0
52 | antiAliasing: 0
53 | softParticles: 0
54 | softVegetation: 0
55 | realtimeReflectionProbes: 0
56 | billboardsFaceCameraPosition: 0
57 | vSyncCount: 0
58 | lodBias: 0.4
59 | maximumLODLevel: 0
60 | particleRaycastBudget: 16
61 | asyncUploadTimeSlice: 2
62 | asyncUploadBufferSize: 16
63 | resolutionScalingFixedDPIFactor: 1
64 | excludedTargetPlatforms: []
65 | - serializedVersion: 2
66 | name: Medium
67 | pixelLightCount: 1
68 | shadows: 1
69 | shadowResolution: 0
70 | shadowProjection: 1
71 | shadowCascades: 1
72 | shadowDistance: 20
73 | shadowNearPlaneOffset: 3
74 | shadowCascade2Split: 0.33333334
75 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
76 | shadowmaskMode: 0
77 | blendWeights: 2
78 | textureQuality: 0
79 | anisotropicTextures: 1
80 | antiAliasing: 0
81 | softParticles: 0
82 | softVegetation: 0
83 | realtimeReflectionProbes: 0
84 | billboardsFaceCameraPosition: 0
85 | vSyncCount: 1
86 | lodBias: 0.7
87 | maximumLODLevel: 0
88 | particleRaycastBudget: 64
89 | asyncUploadTimeSlice: 2
90 | asyncUploadBufferSize: 16
91 | resolutionScalingFixedDPIFactor: 1
92 | excludedTargetPlatforms: []
93 | - serializedVersion: 2
94 | name: High
95 | pixelLightCount: 2
96 | shadows: 2
97 | shadowResolution: 1
98 | shadowProjection: 1
99 | shadowCascades: 2
100 | shadowDistance: 40
101 | shadowNearPlaneOffset: 3
102 | shadowCascade2Split: 0.33333334
103 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
104 | shadowmaskMode: 1
105 | blendWeights: 2
106 | textureQuality: 0
107 | anisotropicTextures: 1
108 | antiAliasing: 2
109 | softParticles: 0
110 | softVegetation: 1
111 | realtimeReflectionProbes: 1
112 | billboardsFaceCameraPosition: 1
113 | vSyncCount: 1
114 | lodBias: 1
115 | maximumLODLevel: 0
116 | particleRaycastBudget: 256
117 | asyncUploadTimeSlice: 2
118 | asyncUploadBufferSize: 16
119 | resolutionScalingFixedDPIFactor: 1
120 | excludedTargetPlatforms: []
121 | - serializedVersion: 2
122 | name: Very High
123 | pixelLightCount: 3
124 | shadows: 2
125 | shadowResolution: 2
126 | shadowProjection: 1
127 | shadowCascades: 2
128 | shadowDistance: 40
129 | shadowNearPlaneOffset: 3
130 | shadowCascade2Split: 0.33333334
131 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
132 | shadowmaskMode: 1
133 | blendWeights: 4
134 | textureQuality: 0
135 | anisotropicTextures: 1
136 | antiAliasing: 4
137 | softParticles: 1
138 | softVegetation: 1
139 | realtimeReflectionProbes: 1
140 | billboardsFaceCameraPosition: 1
141 | vSyncCount: 1
142 | lodBias: 1.5
143 | maximumLODLevel: 0
144 | particleRaycastBudget: 1024
145 | asyncUploadTimeSlice: 2
146 | asyncUploadBufferSize: 16
147 | resolutionScalingFixedDPIFactor: 1
148 | excludedTargetPlatforms: []
149 | - serializedVersion: 2
150 | name: Ultra
151 | pixelLightCount: 4
152 | shadows: 2
153 | shadowResolution: 2
154 | shadowProjection: 1
155 | shadowCascades: 4
156 | shadowDistance: 150
157 | shadowNearPlaneOffset: 3
158 | shadowCascade2Split: 0.33333334
159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
160 | shadowmaskMode: 1
161 | blendWeights: 4
162 | textureQuality: 0
163 | anisotropicTextures: 1
164 | antiAliasing: 4
165 | softParticles: 1
166 | softVegetation: 1
167 | realtimeReflectionProbes: 1
168 | billboardsFaceCameraPosition: 1
169 | vSyncCount: 1
170 | lodBias: 2
171 | maximumLODLevel: 0
172 | particleRaycastBudget: 4096
173 | asyncUploadTimeSlice: 2
174 | asyncUploadBufferSize: 16
175 | resolutionScalingFixedDPIFactor: 1
176 | excludedTargetPlatforms: []
177 | m_PerPlatformDefaultQuality:
178 | Android: 2
179 | Nintendo 3DS: 5
180 | Nintendo Switch: 5
181 | PS4: 5
182 | PSP2: 2
183 | Standalone: 5
184 | Tizen: 2
185 | WebGL: 3
186 | WiiU: 5
187 | Windows Store Apps: 5
188 | XboxOne: 5
189 | iPhone: 2
190 | tvOS: 2
191 |
--------------------------------------------------------------------------------
/Assets/Scripts/TopologicalSort.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | public static class TopologicalSort {
3 | private static readonly Dictionary circularDepData = new Dictionary();
4 | private static readonly List circularDepStack = new List(64);
5 |
6 | private static readonly HashSet visited = new HashSet();
7 | private static readonly List allSprites = new List(64);
8 | public static List Sort(List staticSprites, List movableSprites, List sorted) {
9 | allSprites.Clear();
10 | allSprites.AddRange(movableSprites);
11 | allSprites.AddRange(staticSprites);
12 |
13 | int allSpriteCount = allSprites.Count;
14 |
15 | for (int i = 0; i < 5; i++) {
16 | circularDepStack.Clear();
17 | circularDepData.Clear();
18 | bool removedDependency = false;
19 | for (int j = 0; j < allSpriteCount; j++) {
20 | if (RemoveCircularDependencies(allSprites[j], circularDepStack, circularDepData)) {
21 | removedDependency = true;
22 | }
23 | }
24 | if (!removedDependency) {
25 | break;
26 | }
27 | }
28 |
29 | visited.Clear();
30 | for (int i = 0; i < allSpriteCount; i++) {
31 | Visit(allSprites[i], sorted, visited);
32 | }
33 |
34 | return sorted;
35 | }
36 |
37 | private static void Visit(IsoSpriteSorting item, List sorted, HashSet visited) {
38 | int id = item.GetInstanceID();
39 | if (!visited.Contains(id)) {
40 | visited.Add(id);
41 |
42 | List dependencies = item.VisibleMovingDependencies;
43 | int dcount = dependencies.Count;
44 | for (int i = 0; i < dcount; i++) {
45 | Visit(dependencies[i], sorted, visited);
46 | }
47 | dependencies = item.VisibleStaticDependencies;
48 | dcount = dependencies.Count;
49 | for (int i = 0; i < dcount; i++) {
50 | Visit(dependencies[i], sorted, visited);
51 | }
52 |
53 | sorted.Add(item);
54 | }
55 | }
56 |
57 | private static bool RemoveCircularDependencies(IsoSpriteSorting item, List _circularDepStack, Dictionary _circularDepData) {
58 | _circularDepStack.Add(item);
59 | bool removedDependency = false;
60 |
61 | int id = item.GetInstanceID();
62 | bool alreadyVisited = _circularDepData.TryGetValue(id, out bool inProcess);
63 | if (alreadyVisited) {
64 | if (inProcess) {
65 | RemoveCircularDependencyFromStack(_circularDepStack);
66 | removedDependency = true;
67 | }
68 | } else {
69 | _circularDepData[id] = true;
70 |
71 | List dependencies = item.VisibleMovingDependencies;
72 | for (int i = 0; i < dependencies.Count; i++) {
73 | if (RemoveCircularDependencies(dependencies[i], _circularDepStack, _circularDepData)) {
74 | removedDependency = true;
75 | }
76 | }
77 | dependencies = item.VisibleStaticDependencies;
78 | for (int i = 0; i < dependencies.Count; i++) {
79 | if (RemoveCircularDependencies(dependencies[i], _circularDepStack, _circularDepData)) {
80 | removedDependency = true;
81 | }
82 | }
83 |
84 | _circularDepData[id] = false;
85 | }
86 |
87 | _circularDepStack.RemoveAt(_circularDepStack.Count - 1);
88 | return removedDependency;
89 | }
90 |
91 | private static void RemoveCircularDependencyFromStack(List _circularReferenceStack) {
92 | if (_circularReferenceStack.Count > 1) {
93 | IsoSpriteSorting startingSorter = _circularReferenceStack[_circularReferenceStack.Count - 1];
94 | int repeatIndex = 0;
95 | for (int i = _circularReferenceStack.Count - 2; i >= 0; i--) {
96 | IsoSpriteSorting sorter = _circularReferenceStack[i];
97 | if (sorter == startingSorter) {
98 | repeatIndex = i;
99 | break;
100 | }
101 | }
102 |
103 | int weakestDepIndex = -1;
104 | float longestDistance = float.MinValue;
105 | for (int i = repeatIndex; i < _circularReferenceStack.Count - 1; i++) {
106 | IsoSpriteSorting sorter1a = _circularReferenceStack[i];
107 | IsoSpriteSorting sorter2a = _circularReferenceStack[i + 1];
108 | if (sorter1a.sortType == IsoSpriteSorting.SortType.Point && sorter2a.sortType == IsoSpriteSorting.SortType.Point) {
109 | float dist = UnityEngine.Mathf.Abs(sorter1a.AsPoint.x - sorter2a.AsPoint.x);
110 | if (dist > longestDistance) {
111 | weakestDepIndex = i;
112 | longestDistance = dist;
113 | }
114 | }
115 | }
116 | if (weakestDepIndex == -1) {
117 | for (int i = repeatIndex; i < _circularReferenceStack.Count - 1; i++) {
118 | IsoSpriteSorting sorter1a = _circularReferenceStack[i];
119 | IsoSpriteSorting sorter2a = _circularReferenceStack[i + 1];
120 | float dist = UnityEngine.Mathf.Abs(sorter1a.AsPoint.x - sorter2a.AsPoint.x);
121 | if (dist > longestDistance) {
122 | weakestDepIndex = i;
123 | longestDistance = dist;
124 | }
125 | }
126 | }
127 | IsoSpriteSorting sorter1 = _circularReferenceStack[weakestDepIndex];
128 | IsoSpriteSorting sorter2 = _circularReferenceStack[weakestDepIndex + 1];
129 | sorter1.VisibleStaticDependencies.Remove(sorter2);
130 | sorter1.VisibleMovingDependencies.Remove(sorter2);
131 | }
132 | }
133 | }
134 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/Assets/Scripts/IsoSpriteSortingManager.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using UnityEngine;
3 |
4 | public class IsoSpriteSortingManager : Singleton {
5 | private static readonly List floorSpriteList = new List(256);
6 | private static readonly List staticSpriteList = new List(8192);
7 | private static readonly List currentlyVisibleStaticSpriteList = new List(256);
8 |
9 | private static readonly List moveableSpriteList = new List(256);
10 | private static readonly List currentlyVisibleMoveableSpriteList = new List(256);
11 |
12 | public static void RegisterSprite(IsoSpriteSorting newSprite) {
13 | if (!newSprite.registered) {
14 | if (newSprite.RenderBelowAll) {
15 | floorSpriteList.Add(newSprite);
16 | SortListSimple(floorSpriteList);
17 | SetSortOrderNegative(floorSpriteList);
18 | } else {
19 | if (newSprite.isMovable) {
20 | moveableSpriteList.Add(newSprite);
21 | } else {
22 | staticSpriteList.Add(newSprite);
23 | SetupStaticDependencies(newSprite);
24 | }
25 | }
26 | newSprite.registered = true;
27 | }
28 | }
29 |
30 | private static void SetupStaticDependencies(IsoSpriteSorting newSprite) {
31 | int theCount = staticSpriteList.Count;
32 | for (int i = 0; i < theCount; i++) {
33 | IsoSpriteSorting otherSprite = staticSpriteList[i];
34 | Bounds2D b1 = newSprite.cachedBounds;
35 | Bounds2D b2 = otherSprite.cachedBounds;
36 | if (b1.minX <= b2.maxX && b2.minX <= b1.maxX && b1.maxY >= b2.minY && b2.maxY >= b1.minY) { //Inline Bounds2D.Intersects
37 | int compareResult = IsoSpriteSorting.CompareIsoSorters(newSprite, otherSprite);
38 | //Debug.Log("Compared: " + newSprite.gameObject.name + " other: " + otherSprite.gameObject.name + " result: " + compareResult);
39 | if (compareResult == -1) {
40 | otherSprite.staticDependencies.Add(newSprite);
41 | newSprite.inverseStaticDependencies.Add(otherSprite);
42 | } else if (compareResult == 1) {
43 | newSprite.staticDependencies.Add(otherSprite);
44 | otherSprite.inverseStaticDependencies.Add(newSprite);
45 | }
46 | }
47 | }
48 | }
49 |
50 | public static void UnregisterSprite(IsoSpriteSorting spriteToRemove) {
51 | if (spriteToRemove.registered) {
52 | if (spriteToRemove.RenderBelowAll) {
53 | floorSpriteList.Remove(spriteToRemove);
54 | } else {
55 | if (spriteToRemove.isMovable) {
56 | moveableSpriteList.Remove(spriteToRemove);
57 | } else {
58 | staticSpriteList.Remove(spriteToRemove);
59 | RemoveStaticDependencies(spriteToRemove);
60 | }
61 | }
62 | spriteToRemove.registered = false;
63 | }
64 | }
65 |
66 | private static void RemoveStaticDependencies(IsoSpriteSorting spriteToRemove) {
67 | for (int i = 0; i < spriteToRemove.inverseStaticDependencies.Count; i++) {
68 | IsoSpriteSorting otherSprite = spriteToRemove.inverseStaticDependencies[i];
69 | otherSprite.staticDependencies.Remove(spriteToRemove);
70 | }
71 | spriteToRemove.inverseStaticDependencies.Clear();
72 | spriteToRemove.staticDependencies.Clear();
73 | }
74 |
75 | private void Update() {
76 | UpdateSorting();
77 | }
78 |
79 | private void LateUpdate() {
80 | for (int i = 0; i < moveableSpriteList.Count; i++) {
81 | moveableSpriteList[i].LateUpdateHasChanged();
82 | }
83 | }
84 |
85 | private static readonly List sortedSprites = new List(64);
86 | public static void UpdateSorting() {
87 | ChechCacheRefreshes(moveableSpriteList);
88 | FilterListByVisibility(staticSpriteList, currentlyVisibleStaticSpriteList);
89 | FilterListByVisibility(moveableSpriteList, currentlyVisibleMoveableSpriteList);
90 |
91 | ClearMovingDependencies(currentlyVisibleStaticSpriteList);
92 | ClearMovingDependencies(currentlyVisibleMoveableSpriteList);
93 |
94 | AddMovingDependencies(currentlyVisibleMoveableSpriteList, currentlyVisibleStaticSpriteList);
95 |
96 | sortedSprites.Clear();
97 | TopologicalSort.Sort(currentlyVisibleStaticSpriteList, currentlyVisibleMoveableSpriteList, sortedSprites);
98 | SetSortOrderBasedOnListOrder(sortedSprites);
99 | }
100 |
101 | private static void ChechCacheRefreshes(List sorters) {
102 | for (int i = 0; i < sorters.Count; i++) {
103 | sorters[i].CheckCacheRefresh();
104 | }
105 | }
106 |
107 | private static void AddMovingDependencies(List moveableList, List staticList) {
108 | int moveableCount = moveableList.Count;
109 | int staticCount = staticList.Count;
110 | for (int i = 0; i < moveableCount; i++) {
111 | IsoSpriteSorting moveSprite1 = moveableList[i];
112 | //Add Moving Dependencies to static sprites
113 | for (int j = 0; j < staticCount; j++) {
114 | IsoSpriteSorting staticSprite = staticList[j];
115 | if (CalculateBoundsIntersection(moveSprite1, staticSprite)) {
116 | int compareResult = IsoSpriteSorting.CompareIsoSorters(moveSprite1, staticSprite);
117 | if (compareResult == -1) {
118 | staticSprite.movingDependencies.Add(moveSprite1);
119 | } else if (compareResult == 1) {
120 | moveSprite1.movingDependencies.Add(staticSprite);
121 | }
122 | }
123 | }
124 | //Add Moving Dependencies to Moving Sprites
125 | for (int j = 0; j < moveableCount; j++) {
126 | IsoSpriteSorting moveSprite2 = moveableList[j];
127 | if (CalculateBoundsIntersection(moveSprite1, moveSprite2)) {
128 | int compareResult = IsoSpriteSorting.CompareIsoSorters(moveSprite1, moveSprite2);
129 | if (compareResult == -1) {
130 | moveSprite2.movingDependencies.Add(moveSprite1);
131 | }
132 | }
133 | }
134 | }
135 | }
136 |
137 | private static void ClearMovingDependencies(List sprites) {
138 | int count = sprites.Count;
139 | for (int i = 0; i < count; i++) {
140 | sprites[i].movingDependencies.Clear();
141 | }
142 | }
143 |
144 | private static bool CalculateBoundsIntersection(IsoSpriteSorting sprite, IsoSpriteSorting otherSprite) {
145 | return sprite.cachedBounds.Intersects(otherSprite.cachedBounds);
146 | }
147 |
148 | private static void SetSortOrderBasedOnListOrder(List spriteList) {
149 | int orderCurrent = 0;
150 | int count = spriteList.Count;
151 | for (int i = 0; i < count; ++i) {
152 | spriteList[i].RendererSortingOrder = orderCurrent;
153 | orderCurrent += 2;
154 | }
155 | }
156 |
157 | private static void SetSortOrderNegative(List spriteList) {
158 | int order = (-spriteList.Count - 1) * 2;
159 | for (int i = 0; i < spriteList.Count; i++) {
160 | spriteList[i].RendererSortingOrder = order;
161 | order += 2;
162 | }
163 | }
164 |
165 | private const float SORT_RANGE = 80f;
166 | public static void FilterListByVisibility(List fullList, List destinationList) {
167 | destinationList.Clear();
168 | if (Camera.main != null) {
169 | Vector2 cameraPos = Camera.main.transform.position;
170 | float cameraPosX = cameraPos.x;
171 | float cameraPosY = cameraPos.y;
172 | int count = fullList.Count;
173 | for (int i = 0; i < count; i++) {
174 | IsoSpriteSorting sprite = fullList[i];
175 | if (sprite.forceSort) {
176 | destinationList.Add(sprite);
177 | sprite.forceSort = false;
178 | } else {
179 | float diffX = sprite.SortingPoint1.x - cameraPosX;
180 | float diffY = sprite.SortingPoint1.y - cameraPosY;
181 | if (diffX < SORT_RANGE && diffX > -SORT_RANGE && diffY < SORT_RANGE && diffX > -SORT_RANGE) {
182 | for (int j = 0; j < sprite.renderersToSort.Length; j++) {
183 | //if (sprite.renderersToSort[j] == null)
184 | //{
185 | // UnityEngine.Debug.Log(sprite.gameObject.name);
186 | //}
187 | if (sprite.renderersToSort[j].isVisible) {
188 | destinationList.Add(sprite);
189 | break;
190 | }
191 | }
192 | }
193 | }
194 | }
195 | }
196 | }
197 |
198 | private static void SortListSimple(List list) {
199 | list.Sort((a, b) => {
200 | if (!a || !b) {
201 | return 0;
202 | } else {
203 | return IsoSpriteSorting.CompareIsoSorters(a, b);
204 | }
205 | });
206 | }
207 | }
208 |
--------------------------------------------------------------------------------
/Packages/packages-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "com.unity.2d.sprite": {
4 | "version": "1.0.0",
5 | "depth": 0,
6 | "source": "builtin",
7 | "dependencies": {}
8 | },
9 | "com.unity.2d.tilemap": {
10 | "version": "1.0.0",
11 | "depth": 0,
12 | "source": "builtin",
13 | "dependencies": {}
14 | },
15 | "com.unity.collab-proxy": {
16 | "version": "2.2.0",
17 | "depth": 0,
18 | "source": "registry",
19 | "dependencies": {},
20 | "url": "https://packages.unity.com"
21 | },
22 | "com.unity.ext.nunit": {
23 | "version": "1.0.6",
24 | "depth": 1,
25 | "source": "registry",
26 | "dependencies": {},
27 | "url": "https://packages.unity.com"
28 | },
29 | "com.unity.ide.rider": {
30 | "version": "3.0.28",
31 | "depth": 0,
32 | "source": "registry",
33 | "dependencies": {
34 | "com.unity.ext.nunit": "1.0.6"
35 | },
36 | "url": "https://packages.unity.com"
37 | },
38 | "com.unity.ide.visualstudio": {
39 | "version": "2.0.22",
40 | "depth": 0,
41 | "source": "registry",
42 | "dependencies": {
43 | "com.unity.test-framework": "1.1.9"
44 | },
45 | "url": "https://packages.unity.com"
46 | },
47 | "com.unity.ide.vscode": {
48 | "version": "1.2.5",
49 | "depth": 0,
50 | "source": "registry",
51 | "dependencies": {},
52 | "url": "https://packages.unity.com"
53 | },
54 | "com.unity.test-framework": {
55 | "version": "1.1.33",
56 | "depth": 1,
57 | "source": "registry",
58 | "dependencies": {
59 | "com.unity.ext.nunit": "1.0.6",
60 | "com.unity.modules.imgui": "1.0.0",
61 | "com.unity.modules.jsonserialize": "1.0.0"
62 | },
63 | "url": "https://packages.unity.com"
64 | },
65 | "com.unity.textmeshpro": {
66 | "version": "3.0.9",
67 | "depth": 0,
68 | "source": "registry",
69 | "dependencies": {
70 | "com.unity.ugui": "1.0.0"
71 | },
72 | "url": "https://packages.unity.com"
73 | },
74 | "com.unity.ugui": {
75 | "version": "1.0.0",
76 | "depth": 0,
77 | "source": "builtin",
78 | "dependencies": {
79 | "com.unity.modules.ui": "1.0.0",
80 | "com.unity.modules.imgui": "1.0.0"
81 | }
82 | },
83 | "com.unity.modules.ai": {
84 | "version": "1.0.0",
85 | "depth": 0,
86 | "source": "builtin",
87 | "dependencies": {}
88 | },
89 | "com.unity.modules.androidjni": {
90 | "version": "1.0.0",
91 | "depth": 0,
92 | "source": "builtin",
93 | "dependencies": {}
94 | },
95 | "com.unity.modules.animation": {
96 | "version": "1.0.0",
97 | "depth": 0,
98 | "source": "builtin",
99 | "dependencies": {}
100 | },
101 | "com.unity.modules.assetbundle": {
102 | "version": "1.0.0",
103 | "depth": 0,
104 | "source": "builtin",
105 | "dependencies": {}
106 | },
107 | "com.unity.modules.audio": {
108 | "version": "1.0.0",
109 | "depth": 0,
110 | "source": "builtin",
111 | "dependencies": {}
112 | },
113 | "com.unity.modules.cloth": {
114 | "version": "1.0.0",
115 | "depth": 0,
116 | "source": "builtin",
117 | "dependencies": {
118 | "com.unity.modules.physics": "1.0.0"
119 | }
120 | },
121 | "com.unity.modules.director": {
122 | "version": "1.0.0",
123 | "depth": 0,
124 | "source": "builtin",
125 | "dependencies": {
126 | "com.unity.modules.audio": "1.0.0",
127 | "com.unity.modules.animation": "1.0.0"
128 | }
129 | },
130 | "com.unity.modules.imageconversion": {
131 | "version": "1.0.0",
132 | "depth": 0,
133 | "source": "builtin",
134 | "dependencies": {}
135 | },
136 | "com.unity.modules.imgui": {
137 | "version": "1.0.0",
138 | "depth": 0,
139 | "source": "builtin",
140 | "dependencies": {}
141 | },
142 | "com.unity.modules.jsonserialize": {
143 | "version": "1.0.0",
144 | "depth": 0,
145 | "source": "builtin",
146 | "dependencies": {}
147 | },
148 | "com.unity.modules.particlesystem": {
149 | "version": "1.0.0",
150 | "depth": 0,
151 | "source": "builtin",
152 | "dependencies": {}
153 | },
154 | "com.unity.modules.physics": {
155 | "version": "1.0.0",
156 | "depth": 0,
157 | "source": "builtin",
158 | "dependencies": {}
159 | },
160 | "com.unity.modules.physics2d": {
161 | "version": "1.0.0",
162 | "depth": 0,
163 | "source": "builtin",
164 | "dependencies": {}
165 | },
166 | "com.unity.modules.screencapture": {
167 | "version": "1.0.0",
168 | "depth": 0,
169 | "source": "builtin",
170 | "dependencies": {
171 | "com.unity.modules.imageconversion": "1.0.0"
172 | }
173 | },
174 | "com.unity.modules.subsystems": {
175 | "version": "1.0.0",
176 | "depth": 1,
177 | "source": "builtin",
178 | "dependencies": {
179 | "com.unity.modules.jsonserialize": "1.0.0"
180 | }
181 | },
182 | "com.unity.modules.terrain": {
183 | "version": "1.0.0",
184 | "depth": 0,
185 | "source": "builtin",
186 | "dependencies": {}
187 | },
188 | "com.unity.modules.terrainphysics": {
189 | "version": "1.0.0",
190 | "depth": 0,
191 | "source": "builtin",
192 | "dependencies": {
193 | "com.unity.modules.physics": "1.0.0",
194 | "com.unity.modules.terrain": "1.0.0"
195 | }
196 | },
197 | "com.unity.modules.tilemap": {
198 | "version": "1.0.0",
199 | "depth": 0,
200 | "source": "builtin",
201 | "dependencies": {
202 | "com.unity.modules.physics2d": "1.0.0"
203 | }
204 | },
205 | "com.unity.modules.ui": {
206 | "version": "1.0.0",
207 | "depth": 0,
208 | "source": "builtin",
209 | "dependencies": {}
210 | },
211 | "com.unity.modules.uielements": {
212 | "version": "1.0.0",
213 | "depth": 0,
214 | "source": "builtin",
215 | "dependencies": {
216 | "com.unity.modules.ui": "1.0.0",
217 | "com.unity.modules.imgui": "1.0.0",
218 | "com.unity.modules.jsonserialize": "1.0.0",
219 | "com.unity.modules.uielementsnative": "1.0.0"
220 | }
221 | },
222 | "com.unity.modules.uielementsnative": {
223 | "version": "1.0.0",
224 | "depth": 1,
225 | "source": "builtin",
226 | "dependencies": {
227 | "com.unity.modules.ui": "1.0.0",
228 | "com.unity.modules.imgui": "1.0.0",
229 | "com.unity.modules.jsonserialize": "1.0.0"
230 | }
231 | },
232 | "com.unity.modules.umbra": {
233 | "version": "1.0.0",
234 | "depth": 0,
235 | "source": "builtin",
236 | "dependencies": {}
237 | },
238 | "com.unity.modules.unityanalytics": {
239 | "version": "1.0.0",
240 | "depth": 0,
241 | "source": "builtin",
242 | "dependencies": {
243 | "com.unity.modules.unitywebrequest": "1.0.0",
244 | "com.unity.modules.jsonserialize": "1.0.0"
245 | }
246 | },
247 | "com.unity.modules.unitywebrequest": {
248 | "version": "1.0.0",
249 | "depth": 0,
250 | "source": "builtin",
251 | "dependencies": {}
252 | },
253 | "com.unity.modules.unitywebrequestassetbundle": {
254 | "version": "1.0.0",
255 | "depth": 0,
256 | "source": "builtin",
257 | "dependencies": {
258 | "com.unity.modules.assetbundle": "1.0.0",
259 | "com.unity.modules.unitywebrequest": "1.0.0"
260 | }
261 | },
262 | "com.unity.modules.unitywebrequestaudio": {
263 | "version": "1.0.0",
264 | "depth": 0,
265 | "source": "builtin",
266 | "dependencies": {
267 | "com.unity.modules.unitywebrequest": "1.0.0",
268 | "com.unity.modules.audio": "1.0.0"
269 | }
270 | },
271 | "com.unity.modules.unitywebrequesttexture": {
272 | "version": "1.0.0",
273 | "depth": 0,
274 | "source": "builtin",
275 | "dependencies": {
276 | "com.unity.modules.unitywebrequest": "1.0.0",
277 | "com.unity.modules.imageconversion": "1.0.0"
278 | }
279 | },
280 | "com.unity.modules.unitywebrequestwww": {
281 | "version": "1.0.0",
282 | "depth": 0,
283 | "source": "builtin",
284 | "dependencies": {
285 | "com.unity.modules.unitywebrequest": "1.0.0",
286 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
287 | "com.unity.modules.unitywebrequestaudio": "1.0.0",
288 | "com.unity.modules.audio": "1.0.0",
289 | "com.unity.modules.assetbundle": "1.0.0",
290 | "com.unity.modules.imageconversion": "1.0.0"
291 | }
292 | },
293 | "com.unity.modules.vehicles": {
294 | "version": "1.0.0",
295 | "depth": 0,
296 | "source": "builtin",
297 | "dependencies": {
298 | "com.unity.modules.physics": "1.0.0"
299 | }
300 | },
301 | "com.unity.modules.video": {
302 | "version": "1.0.0",
303 | "depth": 0,
304 | "source": "builtin",
305 | "dependencies": {
306 | "com.unity.modules.audio": "1.0.0",
307 | "com.unity.modules.ui": "1.0.0",
308 | "com.unity.modules.unitywebrequest": "1.0.0"
309 | }
310 | },
311 | "com.unity.modules.vr": {
312 | "version": "1.0.0",
313 | "depth": 0,
314 | "source": "builtin",
315 | "dependencies": {
316 | "com.unity.modules.jsonserialize": "1.0.0",
317 | "com.unity.modules.physics": "1.0.0",
318 | "com.unity.modules.xr": "1.0.0"
319 | }
320 | },
321 | "com.unity.modules.wind": {
322 | "version": "1.0.0",
323 | "depth": 0,
324 | "source": "builtin",
325 | "dependencies": {}
326 | },
327 | "com.unity.modules.xr": {
328 | "version": "1.0.0",
329 | "depth": 0,
330 | "source": "builtin",
331 | "dependencies": {
332 | "com.unity.modules.physics": "1.0.0",
333 | "com.unity.modules.jsonserialize": "1.0.0",
334 | "com.unity.modules.subsystems": "1.0.0"
335 | }
336 | }
337 | }
338 | }
339 |
--------------------------------------------------------------------------------
/Assets/Scripts/IsoSpriteSorting.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections;
3 | using System.Collections.Generic;
4 | using UnityEngine;
5 |
6 | public class IsoSpriteSorting : MonoBehaviour {
7 | public bool isMovable;
8 | [SerializeField]
9 | private bool renderBelowAll;
10 | public bool RenderBelowAll {
11 | get { return renderBelowAll; }
12 | set { renderBelowAll = value; }
13 | }
14 |
15 | [NonSerialized]
16 | public bool registered = false;
17 | [NonSerialized]
18 | public bool forceSort;
19 |
20 | [NonSerialized]
21 | public readonly List staticDependencies = new List(16);
22 | [NonSerialized]
23 | public readonly List inverseStaticDependencies = new List(16);
24 | [NonSerialized]
25 | public readonly List movingDependencies = new List(8);
26 |
27 | private readonly List visibleStaticDependencies = new List(16);
28 |
29 | private int visibleStaticLastRefreshFrame = 0;
30 | public List VisibleStaticDependencies {
31 | get {
32 | if (visibleStaticLastRefreshFrame < Time.frameCount) {
33 | IsoSpriteSortingManager.FilterListByVisibility(staticDependencies, visibleStaticDependencies);
34 | visibleStaticLastRefreshFrame = Time.frameCount;
35 | }
36 | return visibleStaticDependencies;
37 | }
38 | }
39 |
40 | public List VisibleMovingDependencies {
41 | get {
42 | return movingDependencies;
43 | }
44 | }
45 |
46 | public enum SortType {
47 | Point,
48 | Line
49 | }
50 |
51 | public SortType sortType = SortType.Point;
52 |
53 | public Vector2 SorterPositionOffset = new Vector2();
54 | public Vector2 SorterPositionOffset2 = new Vector2();
55 | private Transform[] renderersToSortTransforms;
56 | public Renderer[] renderersToSort;
57 |
58 | private Transform t;
59 |
60 | [NonSerialized] public Vector2 SortingPoint1;
61 | [NonSerialized] public Vector2 SortingPoint2;
62 | private int lastRefreshedFrame;
63 | public void RefreshCache() {
64 | if (renderersToSort.Length > 0) {
65 | cachedBounds = new Bounds2D(renderersToSort[0].bounds);
66 | Vector2 pos = t.position;
67 | SortingPoint1 = SorterPositionOffset + pos;
68 | SortingPoint2 = SorterPositionOffset2 + pos;
69 | }
70 | lastRefreshedFrame = Time.frameCount;
71 | }
72 |
73 | public Vector2 AsPoint {
74 | get {
75 | if (sortType == SortType.Line)
76 | return (SortingPoint1 + SortingPoint2) / 2;
77 | else
78 | return SortingPoint1;
79 | }
80 | }
81 |
82 | private float SortingLineCenterHeight {
83 | get {
84 | if (sortType == SortType.Line) {
85 | return (SortingPoint1.y + SortingPoint2.y) / 2;
86 | } else {
87 | Debug.LogError("calling line center height on point type");
88 | return SortingPoint1.y;
89 | }
90 | }
91 | }
92 |
93 | #if UNITY_EDITOR
94 | public void SortScene() {
95 | IsoSpriteSorting[] isoSorters = FindObjectsOfType(typeof(IsoSpriteSorting)) as IsoSpriteSorting[];
96 | for (int i = 0; i < isoSorters.Length; i++) {
97 | isoSorters[i].Setup();
98 | }
99 | IsoSpriteSortingManager.UpdateSorting();
100 | for (int i = 0; i < isoSorters.Length; i++) {
101 | isoSorters[i].Unregister();
102 | }
103 | UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(UnityEngine.SceneManagement.SceneManager.GetActiveScene());
104 | }
105 | #endif
106 |
107 | private void Awake() {
108 | t = transform; //This needs to be here AND in the setup function
109 | }
110 |
111 | IEnumerator Start() {
112 | if (Application.isPlaying) {
113 | _ = IsoSpriteSortingManager.Instance; //bring the instance into existence so the Update function will run;
114 | yield return null;
115 | Setup();
116 | }
117 | }
118 |
119 | public void CheckCacheRefresh() {
120 | if (isMovable && ShouldRefresh()) {
121 | RefreshCache();
122 | }
123 | }
124 |
125 | private void OnEnable() {
126 | RefreshCache();
127 | }
128 |
129 | private bool ShouldRefresh() {
130 | if (t.hasChanged) {
131 | return true;
132 | }
133 | if (renderersToSortTransforms != null) {
134 | for (int i = 0; i < renderersToSortTransforms.Length; i++) {
135 | Transform rendT = renderersToSortTransforms[i];
136 | if (rendT.hasChanged) {
137 | rendT.hasChanged = false;
138 | return true;
139 | }
140 | }
141 | }
142 | return false;
143 | }
144 |
145 | public void LateUpdateHasChanged() {
146 | if (t.hasChanged && lastRefreshedFrame == Time.frameCount) { //If it didn't refresh this frame, the transform may have moved between Update and LateUpdate
147 | t.hasChanged = false;
148 | }
149 | }
150 |
151 | private void Setup() {
152 | t = transform; //This needs to be here AND in the Awake function
153 | SetRenderersToSort();
154 | RefreshCache();
155 | IsoSpriteSortingManager.RegisterSprite(this);
156 | }
157 |
158 | private void SetRenderersToSort() {
159 | if (renderersToSort == null || renderersToSort.Length == 0) {
160 | renderersToSort = GetComponentsInChildren(true);
161 | }
162 | renderersToSortTransforms = new Transform[renderersToSort.Length];
163 | for (int i = 0; i < renderersToSort.Length; i++) {
164 | renderersToSortTransforms[i] = renderersToSort[i].transform;
165 | }
166 | }
167 |
168 | public static int CompairIsoSortersBasic(IsoSpriteSorting sprite1, IsoSpriteSorting sprite2) {
169 | float y1 = sprite1.sortType == SortType.Point ? sprite1.SortingPoint1.y : sprite1.SortingLineCenterHeight;
170 | float y2 = sprite2.sortType == SortType.Point ? sprite2.SortingPoint1.y : sprite2.SortingLineCenterHeight;
171 | return y2.CompareTo(y1);
172 | }
173 |
174 | //A result of -1 means sprite1 is above sprite2 in physical space
175 | public static int CompareIsoSorters(IsoSpriteSorting sprite1, IsoSpriteSorting sprite2) {
176 | if (sprite1.sortType == SortType.Point && sprite2.sortType == SortType.Point) {
177 | //Debug.Log(sprite1.name + " - " + sprite1.SortingPoint1 + " sprite2: " + sprite2.name + " - " + sprite2.SortingPoint1);
178 | return sprite2.SortingPoint1.y.CompareTo(sprite1.SortingPoint1.y);
179 | } else if (sprite1.sortType == SortType.Line && sprite2.sortType == SortType.Line) {
180 | return CompareLineAndLine(sprite1, sprite2);
181 | } else if (sprite1.sortType == SortType.Point && sprite2.sortType == SortType.Line) {
182 | return ComparePointAndLine(sprite1.SortingPoint1, sprite2);
183 | } else if (sprite1.sortType == SortType.Line && sprite2.sortType == SortType.Point) {
184 | return -ComparePointAndLine(sprite2.SortingPoint1, sprite1);
185 | } else {
186 | return 0;
187 | }
188 | }
189 |
190 | private static int CompareLineAndLine(IsoSpriteSorting line1, IsoSpriteSorting line2) {
191 | Vector2 line1Point1 = line1.SortingPoint1;
192 | Vector2 line1Point2 = line1.SortingPoint2;
193 | Vector2 line2Point1 = line2.SortingPoint1;
194 | Vector2 line2Point2 = line2.SortingPoint2;
195 |
196 | int comp1 = ComparePointAndLine(line1Point1, line2);
197 | int comp2 = ComparePointAndLine(line1Point2, line2);
198 | int oneVStwo = int.MinValue;
199 | if (comp1 == comp2) //Both points in line 1 are above or below line2
200 | {
201 | oneVStwo = comp1;
202 | }
203 |
204 | int comp3 = ComparePointAndLine(line2Point1, line1);
205 | int comp4 = ComparePointAndLine(line2Point2, line1);
206 | int twoVSone = int.MinValue;
207 | if (comp3 == comp4) //Both points in line 2 are above or below line1
208 | {
209 | twoVSone = -comp3;
210 | }
211 |
212 | if (oneVStwo != int.MinValue && twoVSone != int.MinValue) {
213 | if (oneVStwo == twoVSone) //the two comparisons agree about the ordering
214 | {
215 | return oneVStwo;
216 | }
217 | return CompareLineCenters(line1, line2);
218 | } else if (oneVStwo != int.MinValue) {
219 | return oneVStwo;
220 | } else if (twoVSone != int.MinValue) {
221 | return twoVSone;
222 | } else {
223 | return CompareLineCenters(line1, line2);
224 | }
225 | }
226 |
227 | private static int CompareLineCenters(IsoSpriteSorting line1, IsoSpriteSorting line2) {
228 | return -line1.SortingLineCenterHeight.CompareTo(line2.SortingLineCenterHeight);
229 | }
230 |
231 | private static int ComparePointAndLine(Vector3 point, IsoSpriteSorting line) {
232 | float pointY = point.y;
233 | if (pointY > line.SortingPoint1.y && pointY > line.SortingPoint2.y) {
234 | return -1;
235 | } else if (pointY < line.SortingPoint1.y && pointY < line.SortingPoint2.y) {
236 | return 1;
237 | } else {
238 | float slope = (line.SortingPoint2.y - line.SortingPoint1.y) / (line.SortingPoint2.x - line.SortingPoint1.x);
239 | float intercept = line.SortingPoint1.y - (slope * line.SortingPoint1.x);
240 | float yOnLineForPoint = (slope * point.x) + intercept;
241 | return yOnLineForPoint > point.y ? 1 : -1;
242 | }
243 | }
244 |
245 | private static bool PointWithinLineArea(Vector3 point, Vector3 linePoint1, Vector3 linePoint2) {
246 | bool xMatch = Mathf.Abs(linePoint1.x - point.x) + Mathf.Abs(linePoint2.x - point.x) == Mathf.Abs(linePoint1.x - linePoint2.x);
247 | bool yMatch = Mathf.Abs(linePoint1.y - point.y) + Mathf.Abs(linePoint2.y - point.y) == Mathf.Abs(linePoint1.y - linePoint2.y);
248 | return xMatch && yMatch;
249 | }
250 |
251 | public int RendererSortingOrder {
252 | get {
253 | if (renderersToSort.Length > 0) {
254 | return renderersToSort[0].sortingOrder;
255 | } else {
256 | return 0;
257 | }
258 | }
259 | set {
260 | for (int i = 0; i < renderersToSort.Length; i++) {
261 | renderersToSort[i].sortingOrder = (i == 0) ? value : value + 1;
262 | }
263 | }
264 | }
265 |
266 | [NonSerialized] public Bounds2D cachedBounds;
267 |
268 | public void SetRenderBelowAllAndReRegister(bool _renderBelowAll) {
269 | IsoSpriteSortingManager.UnregisterSprite(this);
270 | renderBelowAll = _renderBelowAll;
271 | IsoSpriteSortingManager.RegisterSprite(this);
272 | }
273 |
274 | void OnDestroy() {
275 | if (Application.isPlaying) {
276 | Unregister();
277 | }
278 | }
279 |
280 | private void Unregister() {
281 | IsoSpriteSortingManager.UnregisterSprite(this);
282 | }
283 | }
284 |
--------------------------------------------------------------------------------
/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: 15
7 | productGUID: 8c64f3775f29c1d41ab78581139cd96a
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: IsoSpriteSortingDemo
17 | defaultCursor: {fileID: 0}
18 | cursorHotspot: {x: 0, y: 0}
19 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1}
20 | m_ShowUnitySplashScreen: 1
21 | m_ShowUnitySplashLogo: 1
22 | m_SplashScreenOverlayOpacity: 1
23 | m_SplashScreenAnimation: 1
24 | m_SplashScreenLogoStyle: 1
25 | m_SplashScreenDrawMode: 0
26 | m_SplashScreenBackgroundAnimationZoom: 1
27 | m_SplashScreenLogoAnimationZoom: 1
28 | m_SplashScreenBackgroundLandscapeAspect: 1
29 | m_SplashScreenBackgroundPortraitAspect: 1
30 | m_SplashScreenBackgroundLandscapeUvs:
31 | serializedVersion: 2
32 | x: 0
33 | y: 0
34 | width: 1
35 | height: 1
36 | m_SplashScreenBackgroundPortraitUvs:
37 | serializedVersion: 2
38 | x: 0
39 | y: 0
40 | width: 1
41 | height: 1
42 | m_SplashScreenLogos: []
43 | m_VirtualRealitySplashScreen: {fileID: 0}
44 | m_HolographicTrackingLossScreen: {fileID: 0}
45 | defaultScreenWidth: 1024
46 | defaultScreenHeight: 768
47 | defaultScreenWidthWeb: 960
48 | defaultScreenHeightWeb: 600
49 | m_StereoRenderingPath: 0
50 | m_ActiveColorSpace: 0
51 | m_MTRendering: 1
52 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000
53 | iosShowActivityIndicatorOnLoading: -1
54 | androidShowActivityIndicatorOnLoading: -1
55 | iosAppInBackgroundBehavior: 0
56 | displayResolutionDialog: 1
57 | iosAllowHTTPDownload: 1
58 | allowedAutorotateToPortrait: 1
59 | allowedAutorotateToPortraitUpsideDown: 1
60 | allowedAutorotateToLandscapeRight: 1
61 | allowedAutorotateToLandscapeLeft: 1
62 | useOSAutorotation: 1
63 | use32BitDisplayBuffer: 1
64 | preserveFramebufferAlpha: 0
65 | disableDepthAndStencilBuffers: 0
66 | androidStartInFullscreen: 1
67 | androidRenderOutsideSafeArea: 0
68 | androidBlitType: 0
69 | defaultIsNativeResolution: 1
70 | macRetinaSupport: 1
71 | runInBackground: 1
72 | captureSingleScreen: 0
73 | muteOtherAudioSources: 0
74 | Prepare IOS For Recording: 0
75 | Force IOS Speakers When Recording: 0
76 | deferSystemGesturesMode: 0
77 | hideHomeButton: 0
78 | submitAnalytics: 1
79 | usePlayerLog: 1
80 | bakeCollisionMeshes: 0
81 | forceSingleInstance: 0
82 | resizableWindow: 0
83 | useMacAppStoreValidation: 0
84 | macAppStoreCategory: public.app-category.games
85 | gpuSkinning: 1
86 | graphicsJobs: 0
87 | xboxPIXTextureCapture: 0
88 | xboxEnableAvatar: 0
89 | xboxEnableKinect: 0
90 | xboxEnableKinectAutoTracking: 0
91 | xboxEnableFitness: 0
92 | visibleInBackground: 1
93 | allowFullscreenSwitch: 1
94 | graphicsJobMode: 0
95 | fullscreenMode: 1
96 | xboxSpeechDB: 0
97 | xboxEnableHeadOrientation: 0
98 | xboxEnableGuest: 0
99 | xboxEnablePIXSampling: 0
100 | metalFramebufferOnly: 0
101 | xboxOneResolution: 0
102 | xboxOneSResolution: 0
103 | xboxOneXResolution: 3
104 | xboxOneMonoLoggingLevel: 0
105 | xboxOneLoggingLevel: 1
106 | xboxOneDisableEsram: 0
107 | xboxOnePresentImmediateThreshold: 0
108 | switchQueueCommandMemory: 0
109 | switchQueueControlMemory: 16384
110 | switchQueueComputeMemory: 262144
111 | switchNVNShaderPoolsGranularity: 33554432
112 | switchNVNDefaultPoolsGranularity: 16777216
113 | switchNVNOtherPoolsGranularity: 16777216
114 | vulkanEnableSetSRGBWrite: 0
115 | m_SupportedAspectRatios:
116 | 4:3: 1
117 | 5:4: 1
118 | 16:10: 1
119 | 16:9: 1
120 | Others: 1
121 | bundleVersion: 0.1
122 | preloadedAssets: []
123 | metroInputSource: 0
124 | wsaTransparentSwapchain: 0
125 | m_HolographicPauseOnTrackingLoss: 1
126 | xboxOneDisableKinectGpuReservation: 1
127 | xboxOneEnable7thCore: 1
128 | isWsaHolographicRemotingEnabled: 0
129 | vrSettings:
130 | cardboard:
131 | depthFormat: 0
132 | enableTransitionView: 0
133 | daydream:
134 | depthFormat: 0
135 | useSustainedPerformanceMode: 0
136 | enableVideoLayer: 0
137 | useProtectedVideoMemory: 0
138 | minimumSupportedHeadTracking: 0
139 | maximumSupportedHeadTracking: 1
140 | hololens:
141 | depthFormat: 1
142 | depthBufferSharingEnabled: 1
143 | oculus:
144 | sharedDepthBuffer: 1
145 | dashSupport: 1
146 | enable360StereoCapture: 0
147 | protectGraphicsMemory: 0
148 | enableFrameTimingStats: 0
149 | useHDRDisplay: 0
150 | m_ColorGamuts: 00000000
151 | targetPixelDensity: 30
152 | resolutionScalingMode: 0
153 | androidSupportedAspectRatio: 1
154 | androidMaxAspectRatio: 2.1
155 | applicationIdentifier: {}
156 | buildNumber: {}
157 | AndroidBundleVersionCode: 1
158 | AndroidMinSdkVersion: 16
159 | AndroidTargetSdkVersion: 0
160 | AndroidPreferredInstallLocation: 1
161 | aotOptions:
162 | stripEngineCode: 1
163 | iPhoneStrippingLevel: 0
164 | iPhoneScriptCallOptimization: 0
165 | ForceInternetPermission: 0
166 | ForceSDCardPermission: 0
167 | CreateWallpaper: 0
168 | APKExpansionFiles: 0
169 | keepLoadedShadersAlive: 0
170 | StripUnusedMeshComponents: 1
171 | VertexChannelCompressionMask: 4054
172 | iPhoneSdkVersion: 988
173 | iOSTargetOSVersionString: 9.0
174 | tvOSSdkVersion: 0
175 | tvOSRequireExtendedGameController: 0
176 | tvOSTargetOSVersionString: 9.0
177 | uIPrerenderedIcon: 0
178 | uIRequiresPersistentWiFi: 0
179 | uIRequiresFullScreen: 1
180 | uIStatusBarHidden: 1
181 | uIExitOnSuspend: 0
182 | uIStatusBarStyle: 0
183 | iPhoneSplashScreen: {fileID: 0}
184 | iPhoneHighResSplashScreen: {fileID: 0}
185 | iPhoneTallHighResSplashScreen: {fileID: 0}
186 | iPhone47inSplashScreen: {fileID: 0}
187 | iPhone55inPortraitSplashScreen: {fileID: 0}
188 | iPhone55inLandscapeSplashScreen: {fileID: 0}
189 | iPhone58inPortraitSplashScreen: {fileID: 0}
190 | iPhone58inLandscapeSplashScreen: {fileID: 0}
191 | iPadPortraitSplashScreen: {fileID: 0}
192 | iPadHighResPortraitSplashScreen: {fileID: 0}
193 | iPadLandscapeSplashScreen: {fileID: 0}
194 | iPadHighResLandscapeSplashScreen: {fileID: 0}
195 | appleTVSplashScreen: {fileID: 0}
196 | appleTVSplashScreen2x: {fileID: 0}
197 | tvOSSmallIconLayers: []
198 | tvOSSmallIconLayers2x: []
199 | tvOSLargeIconLayers: []
200 | tvOSLargeIconLayers2x: []
201 | tvOSTopShelfImageLayers: []
202 | tvOSTopShelfImageLayers2x: []
203 | tvOSTopShelfImageWideLayers: []
204 | tvOSTopShelfImageWideLayers2x: []
205 | iOSLaunchScreenType: 0
206 | iOSLaunchScreenPortrait: {fileID: 0}
207 | iOSLaunchScreenLandscape: {fileID: 0}
208 | iOSLaunchScreenBackgroundColor:
209 | serializedVersion: 2
210 | rgba: 0
211 | iOSLaunchScreenFillPct: 100
212 | iOSLaunchScreenSize: 100
213 | iOSLaunchScreenCustomXibPath:
214 | iOSLaunchScreeniPadType: 0
215 | iOSLaunchScreeniPadImage: {fileID: 0}
216 | iOSLaunchScreeniPadBackgroundColor:
217 | serializedVersion: 2
218 | rgba: 0
219 | iOSLaunchScreeniPadFillPct: 100
220 | iOSLaunchScreeniPadSize: 100
221 | iOSLaunchScreeniPadCustomXibPath:
222 | iOSUseLaunchScreenStoryboard: 0
223 | iOSLaunchScreenCustomStoryboardPath:
224 | iOSDeviceRequirements: []
225 | iOSURLSchemes: []
226 | iOSBackgroundModes: 0
227 | iOSMetalForceHardShadows: 0
228 | metalEditorSupport: 1
229 | metalAPIValidation: 1
230 | iOSRenderExtraFrameOnPause: 0
231 | appleDeveloperTeamID:
232 | iOSManualSigningProvisioningProfileID:
233 | tvOSManualSigningProvisioningProfileID:
234 | iOSManualSigningProvisioningProfileType: 0
235 | tvOSManualSigningProvisioningProfileType: 0
236 | appleEnableAutomaticSigning: 0
237 | iOSRequireARKit: 0
238 | iOSAutomaticallyDetectAndAddCapabilities: 1
239 | appleEnableProMotion: 0
240 | clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea
241 | templatePackageId: com.unity.template.3d@1.3.0
242 | templateDefaultScene: Assets/Scenes/SampleScene.unity
243 | AndroidTargetArchitectures: 5
244 | AndroidSplashScreenScale: 0
245 | androidSplashScreen: {fileID: 0}
246 | AndroidKeystoreName:
247 | AndroidKeyaliasName:
248 | AndroidBuildApkPerCpuArchitecture: 0
249 | AndroidTVCompatibility: 1
250 | AndroidIsGame: 1
251 | AndroidEnableTango: 0
252 | androidEnableBanner: 1
253 | androidUseLowAccuracyLocation: 0
254 | m_AndroidBanners:
255 | - width: 320
256 | height: 180
257 | banner: {fileID: 0}
258 | androidGamepadSupportLevel: 0
259 | resolutionDialogBanner: {fileID: 0}
260 | m_BuildTargetIcons: []
261 | m_BuildTargetPlatformIcons: []
262 | m_BuildTargetBatching:
263 | - m_BuildTarget: Standalone
264 | m_StaticBatching: 1
265 | m_DynamicBatching: 0
266 | - m_BuildTarget: tvOS
267 | m_StaticBatching: 1
268 | m_DynamicBatching: 0
269 | - m_BuildTarget: Android
270 | m_StaticBatching: 1
271 | m_DynamicBatching: 0
272 | - m_BuildTarget: iPhone
273 | m_StaticBatching: 1
274 | m_DynamicBatching: 0
275 | - m_BuildTarget: WebGL
276 | m_StaticBatching: 0
277 | m_DynamicBatching: 0
278 | m_BuildTargetGraphicsAPIs:
279 | - m_BuildTarget: AndroidPlayer
280 | m_APIs: 0b00000008000000
281 | m_Automatic: 1
282 | - m_BuildTarget: iOSSupport
283 | m_APIs: 10000000
284 | m_Automatic: 1
285 | - m_BuildTarget: AppleTVSupport
286 | m_APIs: 10000000
287 | m_Automatic: 0
288 | - m_BuildTarget: WebGLSupport
289 | m_APIs: 0b000000
290 | m_Automatic: 1
291 | m_BuildTargetVRSettings:
292 | - m_BuildTarget: Standalone
293 | m_Enabled: 0
294 | m_Devices:
295 | - Oculus
296 | - OpenVR
297 | m_BuildTargetEnableVuforiaSettings: []
298 | openGLRequireES31: 0
299 | openGLRequireES31AEP: 0
300 | m_TemplateCustomTags: {}
301 | mobileMTRendering:
302 | Android: 1
303 | iPhone: 1
304 | tvOS: 1
305 | m_BuildTargetGroupLightmapEncodingQuality: []
306 | m_BuildTargetGroupLightmapSettings: []
307 | playModeTestRunnerEnabled: 0
308 | runPlayModeTestAsEditModeTest: 0
309 | actionOnDotNetUnhandledException: 1
310 | enableInternalProfiler: 0
311 | logObjCUncaughtExceptions: 1
312 | enableCrashReportAPI: 0
313 | cameraUsageDescription:
314 | locationUsageDescription:
315 | microphoneUsageDescription:
316 | switchNetLibKey:
317 | switchSocketMemoryPoolSize: 6144
318 | switchSocketAllocatorPoolSize: 128
319 | switchSocketConcurrencyLimit: 14
320 | switchScreenResolutionBehavior: 2
321 | switchUseCPUProfiler: 0
322 | switchApplicationID: 0x01004b9000490000
323 | switchNSODependencies:
324 | switchTitleNames_0:
325 | switchTitleNames_1:
326 | switchTitleNames_2:
327 | switchTitleNames_3:
328 | switchTitleNames_4:
329 | switchTitleNames_5:
330 | switchTitleNames_6:
331 | switchTitleNames_7:
332 | switchTitleNames_8:
333 | switchTitleNames_9:
334 | switchTitleNames_10:
335 | switchTitleNames_11:
336 | switchTitleNames_12:
337 | switchTitleNames_13:
338 | switchTitleNames_14:
339 | switchPublisherNames_0:
340 | switchPublisherNames_1:
341 | switchPublisherNames_2:
342 | switchPublisherNames_3:
343 | switchPublisherNames_4:
344 | switchPublisherNames_5:
345 | switchPublisherNames_6:
346 | switchPublisherNames_7:
347 | switchPublisherNames_8:
348 | switchPublisherNames_9:
349 | switchPublisherNames_10:
350 | switchPublisherNames_11:
351 | switchPublisherNames_12:
352 | switchPublisherNames_13:
353 | switchPublisherNames_14:
354 | switchIcons_0: {fileID: 0}
355 | switchIcons_1: {fileID: 0}
356 | switchIcons_2: {fileID: 0}
357 | switchIcons_3: {fileID: 0}
358 | switchIcons_4: {fileID: 0}
359 | switchIcons_5: {fileID: 0}
360 | switchIcons_6: {fileID: 0}
361 | switchIcons_7: {fileID: 0}
362 | switchIcons_8: {fileID: 0}
363 | switchIcons_9: {fileID: 0}
364 | switchIcons_10: {fileID: 0}
365 | switchIcons_11: {fileID: 0}
366 | switchIcons_12: {fileID: 0}
367 | switchIcons_13: {fileID: 0}
368 | switchIcons_14: {fileID: 0}
369 | switchSmallIcons_0: {fileID: 0}
370 | switchSmallIcons_1: {fileID: 0}
371 | switchSmallIcons_2: {fileID: 0}
372 | switchSmallIcons_3: {fileID: 0}
373 | switchSmallIcons_4: {fileID: 0}
374 | switchSmallIcons_5: {fileID: 0}
375 | switchSmallIcons_6: {fileID: 0}
376 | switchSmallIcons_7: {fileID: 0}
377 | switchSmallIcons_8: {fileID: 0}
378 | switchSmallIcons_9: {fileID: 0}
379 | switchSmallIcons_10: {fileID: 0}
380 | switchSmallIcons_11: {fileID: 0}
381 | switchSmallIcons_12: {fileID: 0}
382 | switchSmallIcons_13: {fileID: 0}
383 | switchSmallIcons_14: {fileID: 0}
384 | switchManualHTML:
385 | switchAccessibleURLs:
386 | switchLegalInformation:
387 | switchMainThreadStackSize: 1048576
388 | switchPresenceGroupId:
389 | switchLogoHandling: 0
390 | switchReleaseVersion: 0
391 | switchDisplayVersion: 1.0.0
392 | switchStartupUserAccount: 0
393 | switchTouchScreenUsage: 0
394 | switchSupportedLanguagesMask: 0
395 | switchLogoType: 0
396 | switchApplicationErrorCodeCategory:
397 | switchUserAccountSaveDataSize: 0
398 | switchUserAccountSaveDataJournalSize: 0
399 | switchApplicationAttribute: 0
400 | switchCardSpecSize: -1
401 | switchCardSpecClock: -1
402 | switchRatingsMask: 0
403 | switchRatingsInt_0: 0
404 | switchRatingsInt_1: 0
405 | switchRatingsInt_2: 0
406 | switchRatingsInt_3: 0
407 | switchRatingsInt_4: 0
408 | switchRatingsInt_5: 0
409 | switchRatingsInt_6: 0
410 | switchRatingsInt_7: 0
411 | switchRatingsInt_8: 0
412 | switchRatingsInt_9: 0
413 | switchRatingsInt_10: 0
414 | switchRatingsInt_11: 0
415 | switchLocalCommunicationIds_0:
416 | switchLocalCommunicationIds_1:
417 | switchLocalCommunicationIds_2:
418 | switchLocalCommunicationIds_3:
419 | switchLocalCommunicationIds_4:
420 | switchLocalCommunicationIds_5:
421 | switchLocalCommunicationIds_6:
422 | switchLocalCommunicationIds_7:
423 | switchParentalControl: 0
424 | switchAllowsScreenshot: 1
425 | switchAllowsVideoCapturing: 1
426 | switchAllowsRuntimeAddOnContentInstall: 0
427 | switchDataLossConfirmation: 0
428 | switchUserAccountLockEnabled: 0
429 | switchSystemResourceMemory: 16777216
430 | switchSupportedNpadStyles: 3
431 | switchNativeFsCacheSize: 32
432 | switchIsHoldTypeHorizontal: 0
433 | switchSupportedNpadCount: 8
434 | switchSocketConfigEnabled: 0
435 | switchTcpInitialSendBufferSize: 32
436 | switchTcpInitialReceiveBufferSize: 64
437 | switchTcpAutoSendBufferSizeMax: 256
438 | switchTcpAutoReceiveBufferSizeMax: 256
439 | switchUdpSendBufferSize: 9
440 | switchUdpReceiveBufferSize: 42
441 | switchSocketBufferEfficiency: 4
442 | switchSocketInitializeEnabled: 1
443 | switchNetworkInterfaceManagerInitializeEnabled: 1
444 | switchPlayerConnectionEnabled: 1
445 | ps4NPAgeRating: 12
446 | ps4NPTitleSecret:
447 | ps4NPTrophyPackPath:
448 | ps4ParentalLevel: 11
449 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000
450 | ps4Category: 0
451 | ps4MasterVersion: 01.00
452 | ps4AppVersion: 01.00
453 | ps4AppType: 0
454 | ps4ParamSfxPath:
455 | ps4VideoOutPixelFormat: 0
456 | ps4VideoOutInitialWidth: 1920
457 | ps4VideoOutBaseModeInitialWidth: 1920
458 | ps4VideoOutReprojectionRate: 60
459 | ps4PronunciationXMLPath:
460 | ps4PronunciationSIGPath:
461 | ps4BackgroundImagePath:
462 | ps4StartupImagePath:
463 | ps4StartupImagesFolder:
464 | ps4IconImagesFolder:
465 | ps4SaveDataImagePath:
466 | ps4SdkOverride:
467 | ps4BGMPath:
468 | ps4ShareFilePath:
469 | ps4ShareOverlayImagePath:
470 | ps4PrivacyGuardImagePath:
471 | ps4NPtitleDatPath:
472 | ps4RemotePlayKeyAssignment: -1
473 | ps4RemotePlayKeyMappingDir:
474 | ps4PlayTogetherPlayerCount: 0
475 | ps4EnterButtonAssignment: 1
476 | ps4ApplicationParam1: 0
477 | ps4ApplicationParam2: 0
478 | ps4ApplicationParam3: 0
479 | ps4ApplicationParam4: 0
480 | ps4DownloadDataSize: 0
481 | ps4GarlicHeapSize: 2048
482 | ps4ProGarlicHeapSize: 2560
483 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ
484 | ps4pnSessions: 1
485 | ps4pnPresence: 1
486 | ps4pnFriends: 1
487 | ps4pnGameCustomData: 1
488 | playerPrefsSupport: 0
489 | enableApplicationExit: 0
490 | resetTempFolder: 1
491 | restrictedAudioUsageRights: 0
492 | ps4UseResolutionFallback: 0
493 | ps4ReprojectionSupport: 0
494 | ps4UseAudio3dBackend: 0
495 | ps4SocialScreenEnabled: 0
496 | ps4ScriptOptimizationLevel: 0
497 | ps4Audio3dVirtualSpeakerCount: 14
498 | ps4attribCpuUsage: 0
499 | ps4PatchPkgPath:
500 | ps4PatchLatestPkgPath:
501 | ps4PatchChangeinfoPath:
502 | ps4PatchDayOne: 0
503 | ps4attribUserManagement: 0
504 | ps4attribMoveSupport: 0
505 | ps4attrib3DSupport: 0
506 | ps4attribShareSupport: 0
507 | ps4attribExclusiveVR: 0
508 | ps4disableAutoHideSplash: 0
509 | ps4videoRecordingFeaturesUsed: 0
510 | ps4contentSearchFeaturesUsed: 0
511 | ps4attribEyeToEyeDistanceSettingVR: 0
512 | ps4IncludedModules: []
513 | monoEnv:
514 | splashScreenBackgroundSourceLandscape: {fileID: 0}
515 | splashScreenBackgroundSourcePortrait: {fileID: 0}
516 | spritePackerPolicy:
517 | webGLMemorySize: 256
518 | webGLExceptionSupport: 1
519 | webGLNameFilesAsHashes: 0
520 | webGLDataCaching: 1
521 | webGLDebugSymbols: 0
522 | webGLEmscriptenArgs:
523 | webGLModulesDirectory:
524 | webGLTemplate: APPLICATION:Default
525 | webGLAnalyzeBuildSize: 0
526 | webGLUseEmbeddedResources: 0
527 | webGLCompressionFormat: 1
528 | webGLLinkerTarget: 1
529 | webGLThreadsSupport: 0
530 | scriptingDefineSymbols: {}
531 | platformArchitecture: {}
532 | scriptingBackend: {}
533 | il2cppCompilerConfiguration: {}
534 | managedStrippingLevel: {}
535 | incrementalIl2cppBuild: {}
536 | allowUnsafeCode: 0
537 | additionalIl2CppArgs:
538 | scriptingRuntimeVersion: 1
539 | apiCompatibilityLevelPerPlatform: {}
540 | m_RenderingPath: 1
541 | m_MobileRenderingPath: 1
542 | metroPackageName: Template_3D
543 | metroPackageVersion:
544 | metroCertificatePath:
545 | metroCertificatePassword:
546 | metroCertificateSubject:
547 | metroCertificateIssuer:
548 | metroCertificateNotAfter: 0000000000000000
549 | metroApplicationDescription: Template_3D
550 | wsaImages: {}
551 | metroTileShortName:
552 | metroTileShowName: 0
553 | metroMediumTileShowName: 0
554 | metroLargeTileShowName: 0
555 | metroWideTileShowName: 0
556 | metroSupportStreamingInstall: 0
557 | metroLastRequiredScene: 0
558 | metroDefaultTileSize: 1
559 | metroTileForegroundText: 2
560 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
561 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628,
562 | a: 1}
563 | metroSplashScreenUseBackgroundColor: 0
564 | platformCapabilities: {}
565 | metroTargetDeviceFamilies: {}
566 | metroFTAName:
567 | metroFTAFileTypes: []
568 | metroProtocolName:
569 | metroCompilationOverrides: 1
570 | XboxOneProductId:
571 | XboxOneUpdateKey:
572 | XboxOneSandboxId:
573 | XboxOneContentId:
574 | XboxOneTitleId:
575 | XboxOneSCId:
576 | XboxOneGameOsOverridePath:
577 | XboxOnePackagingOverridePath:
578 | XboxOneAppManifestOverridePath:
579 | XboxOneVersion: 1.0.0.0
580 | XboxOnePackageEncryption: 0
581 | XboxOnePackageUpdateGranularity: 2
582 | XboxOneDescription:
583 | XboxOneLanguage:
584 | - enus
585 | XboxOneCapability: []
586 | XboxOneGameRating: {}
587 | XboxOneIsContentPackage: 0
588 | XboxOneEnableGPUVariability: 1
589 | XboxOneSockets: {}
590 | XboxOneSplashScreen: {fileID: 0}
591 | XboxOneAllowedProductIds: []
592 | XboxOnePersistentLocalStorageSize: 0
593 | XboxOneXTitleMemory: 8
594 | xboxOneScriptCompiler: 1
595 | XboxOneOverrideIdentityName:
596 | vrEditorSettings:
597 | daydream:
598 | daydreamIconForeground: {fileID: 0}
599 | daydreamIconBackground: {fileID: 0}
600 | cloudServicesEnabled:
601 | UNet: 1
602 | luminIcon:
603 | m_Name:
604 | m_ModelFolderPath:
605 | m_PortalFolderPath:
606 | luminCert:
607 | m_CertPath:
608 | m_PrivateKeyPath:
609 | luminIsChannelApp: 0
610 | luminVersion:
611 | m_VersionCode: 1
612 | m_VersionName:
613 | facebookSdkVersion: 7.9.4
614 | facebookAppId:
615 | facebookCookies: 1
616 | facebookLogging: 1
617 | facebookStatus: 1
618 | facebookXfbml: 0
619 | facebookFrictionlessRequests: 1
620 | apiCompatibilityLevel: 6
621 | cloudProjectId:
622 | framebufferDepthMemorylessMode: 0
623 | projectName:
624 | organizationId:
625 | cloudEnabled: 0
626 | enableNativePlatformBackendsForNewInputSystem: 0
627 | disableOldInputManagerSupport: 0
628 | legacyClampBlendShapeWeights: 0
629 |
--------------------------------------------------------------------------------
/Assets/Scenes/DemoScene.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: 12
47 | m_GIWorkflowMode: 1
48 | m_GISettings:
49 | serializedVersion: 2
50 | m_BounceScale: 1
51 | m_IndirectOutputScale: 1
52 | m_AlbedoBoost: 1
53 | m_EnvironmentLightingMode: 0
54 | m_EnableBakedLightmaps: 0
55 | m_EnableRealtimeLightmaps: 0
56 | m_LightmapEditorSettings:
57 | serializedVersion: 12
58 | m_Resolution: 2
59 | m_BakeResolution: 40
60 | m_AtlasSize: 1024
61 | m_AO: 0
62 | m_AOMaxDistance: 1
63 | m_CompAOExponent: 1
64 | m_CompAOExponentDirect: 0
65 | m_ExtractAmbientOcclusion: 0
66 | m_Padding: 2
67 | m_LightmapParameters: {fileID: 0}
68 | m_LightmapsBakeMode: 1
69 | m_TextureCompression: 1
70 | m_FinalGather: 0
71 | m_FinalGatherFiltering: 1
72 | m_FinalGatherRayCount: 256
73 | m_ReflectionCompression: 2
74 | m_MixedBakeMode: 2
75 | m_BakeBackend: 1
76 | m_PVRSampling: 1
77 | m_PVRDirectSampleCount: 32
78 | m_PVRSampleCount: 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_LightingSettings: {fileID: 837981395}
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 | maxJobWorkers: 0
122 | preserveTilesOutsideBounds: 0
123 | debug:
124 | m_Flags: 0
125 | m_NavMeshData: {fileID: 0}
126 | --- !u!1 &390935946
127 | GameObject:
128 | m_ObjectHideFlags: 0
129 | m_CorrespondingSourceObject: {fileID: 0}
130 | m_PrefabInstance: {fileID: 0}
131 | m_PrefabAsset: {fileID: 0}
132 | serializedVersion: 6
133 | m_Component:
134 | - component: {fileID: 390935948}
135 | - component: {fileID: 390935951}
136 | - component: {fileID: 390935947}
137 | - component: {fileID: 390935949}
138 | - component: {fileID: 390935950}
139 | - component: {fileID: 390935952}
140 | m_Layer: 0
141 | m_Name: Player
142 | m_TagString: Untagged
143 | m_Icon: {fileID: 0}
144 | m_NavMeshLayer: 0
145 | m_StaticEditorFlags: 0
146 | m_IsActive: 1
147 | --- !u!212 &390935947
148 | SpriteRenderer:
149 | m_ObjectHideFlags: 0
150 | m_CorrespondingSourceObject: {fileID: 0}
151 | m_PrefabInstance: {fileID: 0}
152 | m_PrefabAsset: {fileID: 0}
153 | m_GameObject: {fileID: 390935946}
154 | m_Enabled: 1
155 | m_CastShadows: 0
156 | m_ReceiveShadows: 0
157 | m_DynamicOccludee: 1
158 | m_StaticShadowCaster: 0
159 | m_MotionVectors: 1
160 | m_LightProbeUsage: 1
161 | m_ReflectionProbeUsage: 1
162 | m_RayTracingMode: 0
163 | m_RayTraceProcedural: 0
164 | m_RenderingLayerMask: 1
165 | m_RendererPriority: 0
166 | m_Materials:
167 | - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
168 | m_StaticBatchInfo:
169 | firstSubMesh: 0
170 | subMeshCount: 0
171 | m_StaticBatchRoot: {fileID: 0}
172 | m_ProbeAnchor: {fileID: 0}
173 | m_LightProbeVolumeOverride: {fileID: 0}
174 | m_ScaleInLightmap: 1
175 | m_ReceiveGI: 1
176 | m_PreserveUVs: 0
177 | m_IgnoreNormalsForChartDetection: 0
178 | m_ImportantGI: 0
179 | m_StitchLightmapSeams: 0
180 | m_SelectedEditorRenderState: 0
181 | m_MinimumChartSize: 4
182 | m_AutoUVMaxDistance: 0.5
183 | m_AutoUVMaxAngle: 89
184 | m_LightmapParameters: {fileID: 0}
185 | m_SortingLayerID: 0
186 | m_SortingLayer: 0
187 | m_SortingOrder: 2
188 | m_Sprite: {fileID: 21300000, guid: b6b96ec1428562c48b18db30372e7abc, type: 3}
189 | m_Color: {r: 0.13756847, g: 1, b: 0, a: 1}
190 | m_FlipX: 0
191 | m_FlipY: 0
192 | m_DrawMode: 0
193 | m_Size: {x: 0.15, y: 0.4}
194 | m_AdaptiveModeThreshold: 0.5
195 | m_SpriteTileMode: 0
196 | m_WasSpriteAssigned: 1
197 | m_MaskInteraction: 0
198 | m_SpriteSortPoint: 0
199 | --- !u!4 &390935948
200 | Transform:
201 | m_ObjectHideFlags: 0
202 | m_CorrespondingSourceObject: {fileID: 0}
203 | m_PrefabInstance: {fileID: 0}
204 | m_PrefabAsset: {fileID: 0}
205 | m_GameObject: {fileID: 390935946}
206 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
207 | m_LocalPosition: {x: 0.97, y: 0.48, z: 0}
208 | m_LocalScale: {x: 1, y: 1, z: 1}
209 | m_ConstrainProportionsScale: 0
210 | m_Children: []
211 | m_Father: {fileID: 0}
212 | m_RootOrder: 1
213 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
214 | --- !u!114 &390935949
215 | MonoBehaviour:
216 | m_ObjectHideFlags: 0
217 | m_CorrespondingSourceObject: {fileID: 0}
218 | m_PrefabInstance: {fileID: 0}
219 | m_PrefabAsset: {fileID: 0}
220 | m_GameObject: {fileID: 390935946}
221 | m_Enabled: 1
222 | m_EditorHideFlags: 0
223 | m_Script: {fileID: 11500000, guid: 646d68c34334abe44bb05cf2f10a53a3, type: 3}
224 | m_Name:
225 | m_EditorClassIdentifier:
226 | isMovable: 1
227 | renderBelowAll: 0
228 | sortType: 0
229 | SorterPositionOffset: {x: 0, y: -1.6350486}
230 | SorterPositionOffset2: {x: 0, y: 0}
231 | renderersToSort:
232 | - {fileID: 390935947}
233 | --- !u!58 &390935950
234 | CircleCollider2D:
235 | m_ObjectHideFlags: 0
236 | m_CorrespondingSourceObject: {fileID: 0}
237 | m_PrefabInstance: {fileID: 0}
238 | m_PrefabAsset: {fileID: 0}
239 | m_GameObject: {fileID: 390935946}
240 | m_Enabled: 1
241 | m_Density: 1
242 | m_Material: {fileID: 0}
243 | m_IsTrigger: 0
244 | m_UsedByEffector: 0
245 | m_UsedByComposite: 0
246 | m_Offset: {x: 0, y: -1.5680823}
247 | serializedVersion: 2
248 | m_Radius: 0.3
249 | --- !u!114 &390935951
250 | MonoBehaviour:
251 | m_ObjectHideFlags: 0
252 | m_CorrespondingSourceObject: {fileID: 0}
253 | m_PrefabInstance: {fileID: 0}
254 | m_PrefabAsset: {fileID: 0}
255 | m_GameObject: {fileID: 390935946}
256 | m_Enabled: 1
257 | m_EditorHideFlags: 0
258 | m_Script: {fileID: 11500000, guid: 18b7f21f390627840a4ec108cc550373, type: 3}
259 | m_Name:
260 | m_EditorClassIdentifier:
261 | t: {fileID: 390935948}
262 | rgd: {fileID: 390935952}
263 | --- !u!50 &390935952
264 | Rigidbody2D:
265 | serializedVersion: 4
266 | m_ObjectHideFlags: 0
267 | m_CorrespondingSourceObject: {fileID: 0}
268 | m_PrefabInstance: {fileID: 0}
269 | m_PrefabAsset: {fileID: 0}
270 | m_GameObject: {fileID: 390935946}
271 | m_BodyType: 0
272 | m_Simulated: 1
273 | m_UseFullKinematicContacts: 0
274 | m_UseAutoMass: 0
275 | m_Mass: 2.33
276 | m_LinearDrag: 0
277 | m_AngularDrag: 9.72
278 | m_GravityScale: 0
279 | m_Material: {fileID: 0}
280 | m_Interpolate: 1
281 | m_SleepingMode: 1
282 | m_CollisionDetection: 0
283 | m_Constraints: 0
284 | --- !u!1 &516553214
285 | GameObject:
286 | m_ObjectHideFlags: 0
287 | m_CorrespondingSourceObject: {fileID: 0}
288 | m_PrefabInstance: {fileID: 0}
289 | m_PrefabAsset: {fileID: 0}
290 | serializedVersion: 6
291 | m_Component:
292 | - component: {fileID: 516553218}
293 | - component: {fileID: 516553217}
294 | - component: {fileID: 516553216}
295 | - component: {fileID: 516553215}
296 | m_Layer: 0
297 | m_Name: BrickWall (1)
298 | m_TagString: Untagged
299 | m_Icon: {fileID: 0}
300 | m_NavMeshLayer: 0
301 | m_StaticEditorFlags: 0
302 | m_IsActive: 1
303 | --- !u!60 &516553215
304 | PolygonCollider2D:
305 | m_ObjectHideFlags: 0
306 | m_CorrespondingSourceObject: {fileID: 0}
307 | m_PrefabInstance: {fileID: 0}
308 | m_PrefabAsset: {fileID: 0}
309 | m_GameObject: {fileID: 516553214}
310 | m_Enabled: 1
311 | m_Density: 1
312 | m_Material: {fileID: 0}
313 | m_IsTrigger: 0
314 | m_UsedByEffector: 0
315 | m_UsedByComposite: 0
316 | m_Offset: {x: 0, y: 0}
317 | m_SpriteTilingProperty:
318 | border: {x: 0, y: 0, z: 0, w: 0}
319 | pivot: {x: 0.5, y: 0.5}
320 | oldSize: {x: 4.6666665, y: 3.5}
321 | newSize: {x: 0.15, y: 0.4}
322 | adaptiveTilingThreshold: 0.5
323 | drawMode: 0
324 | adaptiveTiling: 0
325 | m_AutoTiling: 0
326 | m_Points:
327 | m_Paths:
328 | - - {x: 1.5514507, y: 0.55306756}
329 | - {x: -2.3496652, y: -1.3834469}
330 | - {x: -1.4916701, y: -1.7890868}
331 | - {x: 2.3110547, y: 0.13266182}
332 | --- !u!114 &516553216
333 | MonoBehaviour:
334 | m_ObjectHideFlags: 0
335 | m_CorrespondingSourceObject: {fileID: 0}
336 | m_PrefabInstance: {fileID: 0}
337 | m_PrefabAsset: {fileID: 0}
338 | m_GameObject: {fileID: 516553214}
339 | m_Enabled: 1
340 | m_EditorHideFlags: 0
341 | m_Script: {fileID: 11500000, guid: 646d68c34334abe44bb05cf2f10a53a3, type: 3}
342 | m_Name:
343 | m_EditorClassIdentifier:
344 | isMovable: 1
345 | renderBelowAll: 0
346 | sortType: 1
347 | SorterPositionOffset: {x: 2.2763543, y: 0.1265924}
348 | SorterPositionOffset2: {x: -2.3427062, y: -1.3827682}
349 | renderersToSort:
350 | - {fileID: 516553217}
351 | --- !u!212 &516553217
352 | SpriteRenderer:
353 | m_ObjectHideFlags: 0
354 | m_CorrespondingSourceObject: {fileID: 0}
355 | m_PrefabInstance: {fileID: 0}
356 | m_PrefabAsset: {fileID: 0}
357 | m_GameObject: {fileID: 516553214}
358 | m_Enabled: 1
359 | m_CastShadows: 0
360 | m_ReceiveShadows: 0
361 | m_DynamicOccludee: 1
362 | m_StaticShadowCaster: 0
363 | m_MotionVectors: 1
364 | m_LightProbeUsage: 1
365 | m_ReflectionProbeUsage: 1
366 | m_RayTracingMode: 0
367 | m_RayTraceProcedural: 0
368 | m_RenderingLayerMask: 1
369 | m_RendererPriority: 0
370 | m_Materials:
371 | - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
372 | m_StaticBatchInfo:
373 | firstSubMesh: 0
374 | subMeshCount: 0
375 | m_StaticBatchRoot: {fileID: 0}
376 | m_ProbeAnchor: {fileID: 0}
377 | m_LightProbeVolumeOverride: {fileID: 0}
378 | m_ScaleInLightmap: 1
379 | m_ReceiveGI: 1
380 | m_PreserveUVs: 0
381 | m_IgnoreNormalsForChartDetection: 0
382 | m_ImportantGI: 0
383 | m_StitchLightmapSeams: 0
384 | m_SelectedEditorRenderState: 0
385 | m_MinimumChartSize: 4
386 | m_AutoUVMaxDistance: 0.5
387 | m_AutoUVMaxAngle: 89
388 | m_LightmapParameters: {fileID: 0}
389 | m_SortingLayerID: 0
390 | m_SortingLayer: 0
391 | m_SortingOrder: 0
392 | m_Sprite: {fileID: 21300000, guid: 2f5ad01ab6b10a74aad3a0dbe7ae6ea3, type: 3}
393 | m_Color: {r: 1, g: 1, b: 1, a: 1}
394 | m_FlipX: 0
395 | m_FlipY: 0
396 | m_DrawMode: 0
397 | m_Size: {x: 0.15, y: 0.4}
398 | m_AdaptiveModeThreshold: 0.5
399 | m_SpriteTileMode: 0
400 | m_WasSpriteAssigned: 1
401 | m_MaskInteraction: 0
402 | m_SpriteSortPoint: 0
403 | --- !u!4 &516553218
404 | Transform:
405 | m_ObjectHideFlags: 0
406 | m_CorrespondingSourceObject: {fileID: 0}
407 | m_PrefabInstance: {fileID: 0}
408 | m_PrefabAsset: {fileID: 0}
409 | m_GameObject: {fileID: 516553214}
410 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
411 | m_LocalPosition: {x: -6.36, y: -0.94, z: 0}
412 | m_LocalScale: {x: 1, y: 1, z: 1}
413 | m_ConstrainProportionsScale: 0
414 | m_Children: []
415 | m_Father: {fileID: 0}
416 | m_RootOrder: 5
417 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
418 | --- !u!1 &548565856
419 | GameObject:
420 | m_ObjectHideFlags: 0
421 | m_CorrespondingSourceObject: {fileID: 0}
422 | m_PrefabInstance: {fileID: 0}
423 | m_PrefabAsset: {fileID: 0}
424 | serializedVersion: 6
425 | m_Component:
426 | - component: {fileID: 548565860}
427 | - component: {fileID: 548565859}
428 | - component: {fileID: 548565858}
429 | - component: {fileID: 548565857}
430 | m_Layer: 0
431 | m_Name: BrickWall
432 | m_TagString: Untagged
433 | m_Icon: {fileID: 0}
434 | m_NavMeshLayer: 0
435 | m_StaticEditorFlags: 0
436 | m_IsActive: 1
437 | --- !u!60 &548565857
438 | PolygonCollider2D:
439 | m_ObjectHideFlags: 0
440 | m_CorrespondingSourceObject: {fileID: 0}
441 | m_PrefabInstance: {fileID: 0}
442 | m_PrefabAsset: {fileID: 0}
443 | m_GameObject: {fileID: 548565856}
444 | m_Enabled: 1
445 | m_Density: 1
446 | m_Material: {fileID: 0}
447 | m_IsTrigger: 0
448 | m_UsedByEffector: 0
449 | m_UsedByComposite: 0
450 | m_Offset: {x: 0, y: 0}
451 | m_SpriteTilingProperty:
452 | border: {x: 0, y: 0, z: 0, w: 0}
453 | pivot: {x: 0.5, y: 0.5}
454 | oldSize: {x: 4.6666665, y: 3.5}
455 | newSize: {x: 0.15, y: 0.4}
456 | adaptiveTilingThreshold: 0.5
457 | drawMode: 0
458 | adaptiveTiling: 0
459 | m_AutoTiling: 0
460 | m_Points:
461 | m_Paths:
462 | - - {x: -1.4510143, y: 0.55306756}
463 | - {x: -2.325516, y: 0.15400887}
464 | - {x: 1.5107949, y: -1.789087}
465 | - {x: 2.319105, y: -1.380645}
466 | --- !u!114 &548565858
467 | MonoBehaviour:
468 | m_ObjectHideFlags: 0
469 | m_CorrespondingSourceObject: {fileID: 0}
470 | m_PrefabInstance: {fileID: 0}
471 | m_PrefabAsset: {fileID: 0}
472 | m_GameObject: {fileID: 548565856}
473 | m_Enabled: 1
474 | m_EditorHideFlags: 0
475 | m_Script: {fileID: 11500000, guid: 646d68c34334abe44bb05cf2f10a53a3, type: 3}
476 | m_Name:
477 | m_EditorClassIdentifier:
478 | isMovable: 1
479 | renderBelowAll: 0
480 | sortType: 1
481 | SorterPositionOffset: {x: 2.3606417, y: -1.3737345}
482 | SorterPositionOffset2: {x: -2.3105102, y: 0.19493532}
483 | renderersToSort:
484 | - {fileID: 548565859}
485 | --- !u!212 &548565859
486 | SpriteRenderer:
487 | m_ObjectHideFlags: 0
488 | m_CorrespondingSourceObject: {fileID: 0}
489 | m_PrefabInstance: {fileID: 0}
490 | m_PrefabAsset: {fileID: 0}
491 | m_GameObject: {fileID: 548565856}
492 | m_Enabled: 1
493 | m_CastShadows: 0
494 | m_ReceiveShadows: 0
495 | m_DynamicOccludee: 1
496 | m_StaticShadowCaster: 0
497 | m_MotionVectors: 1
498 | m_LightProbeUsage: 1
499 | m_ReflectionProbeUsage: 1
500 | m_RayTracingMode: 0
501 | m_RayTraceProcedural: 0
502 | m_RenderingLayerMask: 1
503 | m_RendererPriority: 0
504 | m_Materials:
505 | - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
506 | m_StaticBatchInfo:
507 | firstSubMesh: 0
508 | subMeshCount: 0
509 | m_StaticBatchRoot: {fileID: 0}
510 | m_ProbeAnchor: {fileID: 0}
511 | m_LightProbeVolumeOverride: {fileID: 0}
512 | m_ScaleInLightmap: 1
513 | m_ReceiveGI: 1
514 | m_PreserveUVs: 0
515 | m_IgnoreNormalsForChartDetection: 0
516 | m_ImportantGI: 0
517 | m_StitchLightmapSeams: 0
518 | m_SelectedEditorRenderState: 0
519 | m_MinimumChartSize: 4
520 | m_AutoUVMaxDistance: 0.5
521 | m_AutoUVMaxAngle: 89
522 | m_LightmapParameters: {fileID: 0}
523 | m_SortingLayerID: 0
524 | m_SortingLayer: 0
525 | m_SortingOrder: 3
526 | m_Sprite: {fileID: 21300000, guid: 687b783e7340d84469a357adb9de4da3, type: 3}
527 | m_Color: {r: 1, g: 1, b: 1, a: 1}
528 | m_FlipX: 0
529 | m_FlipY: 0
530 | m_DrawMode: 0
531 | m_Size: {x: 0.15, y: 0.4}
532 | m_AdaptiveModeThreshold: 0.5
533 | m_SpriteTileMode: 0
534 | m_WasSpriteAssigned: 1
535 | m_MaskInteraction: 0
536 | m_SpriteSortPoint: 0
537 | --- !u!4 &548565860
538 | Transform:
539 | m_ObjectHideFlags: 0
540 | m_CorrespondingSourceObject: {fileID: 0}
541 | m_PrefabInstance: {fileID: 0}
542 | m_PrefabAsset: {fileID: 0}
543 | m_GameObject: {fileID: 548565856}
544 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
545 | m_LocalPosition: {x: 2.8, y: -2.28, z: 0}
546 | m_LocalScale: {x: 1, y: 1, z: 1}
547 | m_ConstrainProportionsScale: 0
548 | m_Children: []
549 | m_Father: {fileID: 0}
550 | m_RootOrder: 4
551 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
552 | --- !u!850595691 &837981395
553 | LightingSettings:
554 | m_ObjectHideFlags: 0
555 | m_CorrespondingSourceObject: {fileID: 0}
556 | m_PrefabInstance: {fileID: 0}
557 | m_PrefabAsset: {fileID: 0}
558 | m_Name: Settings.lighting
559 | serializedVersion: 4
560 | m_GIWorkflowMode: 1
561 | m_EnableBakedLightmaps: 0
562 | m_EnableRealtimeLightmaps: 0
563 | m_RealtimeEnvironmentLighting: 1
564 | m_BounceScale: 1
565 | m_AlbedoBoost: 1
566 | m_IndirectOutputScale: 1
567 | m_UsingShadowmask: 1
568 | m_BakeBackend: 1
569 | m_LightmapMaxSize: 1024
570 | m_BakeResolution: 40
571 | m_Padding: 2
572 | m_LightmapCompression: 3
573 | m_AO: 0
574 | m_AOMaxDistance: 1
575 | m_CompAOExponent: 1
576 | m_CompAOExponentDirect: 0
577 | m_ExtractAO: 0
578 | m_MixedBakeMode: 2
579 | m_LightmapsBakeMode: 1
580 | m_FilterMode: 1
581 | m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0}
582 | m_ExportTrainingData: 0
583 | m_TrainingDataDestination: TrainingData
584 | m_RealtimeResolution: 2
585 | m_ForceWhiteAlbedo: 0
586 | m_ForceUpdates: 0
587 | m_FinalGather: 0
588 | m_FinalGatherRayCount: 256
589 | m_FinalGatherFiltering: 1
590 | m_PVRCulling: 1
591 | m_PVRSampling: 1
592 | m_PVRDirectSampleCount: 32
593 | m_PVRSampleCount: 500
594 | m_PVREnvironmentSampleCount: 500
595 | m_PVREnvironmentReferencePointCount: 2048
596 | m_LightProbeSampleCountMultiplier: 4
597 | m_PVRBounces: 2
598 | m_PVRMinBounces: 2
599 | m_PVREnvironmentMIS: 0
600 | m_PVRFilteringMode: 2
601 | m_PVRDenoiserTypeDirect: 0
602 | m_PVRDenoiserTypeIndirect: 0
603 | m_PVRDenoiserTypeAO: 0
604 | m_PVRFilterTypeDirect: 0
605 | m_PVRFilterTypeIndirect: 0
606 | m_PVRFilterTypeAO: 0
607 | m_PVRFilteringGaussRadiusDirect: 1
608 | m_PVRFilteringGaussRadiusIndirect: 5
609 | m_PVRFilteringGaussRadiusAO: 2
610 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
611 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
612 | m_PVRFilteringAtrousPositionSigmaAO: 1
613 | m_PVRTiledBaking: 0
614 | --- !u!1 &957813590
615 | GameObject:
616 | m_ObjectHideFlags: 0
617 | m_CorrespondingSourceObject: {fileID: 0}
618 | m_PrefabInstance: {fileID: 0}
619 | m_PrefabAsset: {fileID: 0}
620 | serializedVersion: 6
621 | m_Component:
622 | - component: {fileID: 957813593}
623 | - component: {fileID: 957813592}
624 | - component: {fileID: 957813591}
625 | m_Layer: 0
626 | m_Name: Main Camera
627 | m_TagString: MainCamera
628 | m_Icon: {fileID: 0}
629 | m_NavMeshLayer: 0
630 | m_StaticEditorFlags: 0
631 | m_IsActive: 1
632 | --- !u!81 &957813591
633 | AudioListener:
634 | m_ObjectHideFlags: 0
635 | m_CorrespondingSourceObject: {fileID: 0}
636 | m_PrefabInstance: {fileID: 0}
637 | m_PrefabAsset: {fileID: 0}
638 | m_GameObject: {fileID: 957813590}
639 | m_Enabled: 1
640 | --- !u!20 &957813592
641 | Camera:
642 | m_ObjectHideFlags: 0
643 | m_CorrespondingSourceObject: {fileID: 0}
644 | m_PrefabInstance: {fileID: 0}
645 | m_PrefabAsset: {fileID: 0}
646 | m_GameObject: {fileID: 957813590}
647 | m_Enabled: 1
648 | serializedVersion: 2
649 | m_ClearFlags: 1
650 | m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0}
651 | m_projectionMatrixMode: 1
652 | m_GateFitMode: 2
653 | m_FOVAxisMode: 0
654 | m_SensorSize: {x: 36, y: 24}
655 | m_LensShift: {x: 0, y: 0}
656 | m_FocalLength: 50
657 | m_NormalizedViewPortRect:
658 | serializedVersion: 2
659 | x: 0
660 | y: 0
661 | width: 1
662 | height: 1
663 | near clip plane: 0.3
664 | far clip plane: 1000
665 | field of view: 60
666 | orthographic: 1
667 | orthographic size: 5
668 | m_Depth: -1
669 | m_CullingMask:
670 | serializedVersion: 2
671 | m_Bits: 4294967295
672 | m_RenderingPath: -1
673 | m_TargetTexture: {fileID: 0}
674 | m_TargetDisplay: 0
675 | m_TargetEye: 3
676 | m_HDR: 1
677 | m_AllowMSAA: 1
678 | m_AllowDynamicResolution: 0
679 | m_ForceIntoRT: 0
680 | m_OcclusionCulling: 1
681 | m_StereoConvergence: 10
682 | m_StereoSeparation: 0.022
683 | --- !u!4 &957813593
684 | Transform:
685 | m_ObjectHideFlags: 0
686 | m_CorrespondingSourceObject: {fileID: 0}
687 | m_PrefabInstance: {fileID: 0}
688 | m_PrefabAsset: {fileID: 0}
689 | m_GameObject: {fileID: 957813590}
690 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
691 | m_LocalPosition: {x: 0, y: 0, z: -10}
692 | m_LocalScale: {x: 1, y: 1, z: 1}
693 | m_ConstrainProportionsScale: 0
694 | m_Children: []
695 | m_Father: {fileID: 0}
696 | m_RootOrder: 0
697 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
698 | --- !u!1 &1750251654
699 | GameObject:
700 | m_ObjectHideFlags: 0
701 | m_CorrespondingSourceObject: {fileID: 0}
702 | m_PrefabInstance: {fileID: 0}
703 | m_PrefabAsset: {fileID: 0}
704 | serializedVersion: 6
705 | m_Component:
706 | - component: {fileID: 1750251658}
707 | - component: {fileID: 1750251657}
708 | - component: {fileID: 1750251656}
709 | - component: {fileID: 1750251655}
710 | m_Layer: 0
711 | m_Name: Tree
712 | m_TagString: Untagged
713 | m_Icon: {fileID: 0}
714 | m_NavMeshLayer: 0
715 | m_StaticEditorFlags: 0
716 | m_IsActive: 1
717 | --- !u!58 &1750251655
718 | CircleCollider2D:
719 | m_ObjectHideFlags: 0
720 | m_CorrespondingSourceObject: {fileID: 0}
721 | m_PrefabInstance: {fileID: 0}
722 | m_PrefabAsset: {fileID: 0}
723 | m_GameObject: {fileID: 1750251654}
724 | m_Enabled: 1
725 | m_Density: 1
726 | m_Material: {fileID: 0}
727 | m_IsTrigger: 0
728 | m_UsedByEffector: 0
729 | m_UsedByComposite: 0
730 | m_Offset: {x: 0.12, y: -2.59}
731 | serializedVersion: 2
732 | m_Radius: 0.2
733 | --- !u!114 &1750251656
734 | MonoBehaviour:
735 | m_ObjectHideFlags: 0
736 | m_CorrespondingSourceObject: {fileID: 0}
737 | m_PrefabInstance: {fileID: 0}
738 | m_PrefabAsset: {fileID: 0}
739 | m_GameObject: {fileID: 1750251654}
740 | m_Enabled: 1
741 | m_EditorHideFlags: 0
742 | m_Script: {fileID: 11500000, guid: 646d68c34334abe44bb05cf2f10a53a3, type: 3}
743 | m_Name:
744 | m_EditorClassIdentifier:
745 | isMovable: 1
746 | renderBelowAll: 0
747 | sortType: 0
748 | SorterPositionOffset: {x: 0.12794042, y: -2.6825585}
749 | SorterPositionOffset2: {x: 0, y: 0}
750 | renderersToSort:
751 | - {fileID: 1750251657}
752 | --- !u!212 &1750251657
753 | SpriteRenderer:
754 | m_ObjectHideFlags: 0
755 | m_CorrespondingSourceObject: {fileID: 0}
756 | m_PrefabInstance: {fileID: 0}
757 | m_PrefabAsset: {fileID: 0}
758 | m_GameObject: {fileID: 1750251654}
759 | m_Enabled: 1
760 | m_CastShadows: 0
761 | m_ReceiveShadows: 0
762 | m_DynamicOccludee: 1
763 | m_StaticShadowCaster: 0
764 | m_MotionVectors: 1
765 | m_LightProbeUsage: 1
766 | m_ReflectionProbeUsage: 1
767 | m_RayTracingMode: 0
768 | m_RayTraceProcedural: 0
769 | m_RenderingLayerMask: 1
770 | m_RendererPriority: 0
771 | m_Materials:
772 | - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
773 | m_StaticBatchInfo:
774 | firstSubMesh: 0
775 | subMeshCount: 0
776 | m_StaticBatchRoot: {fileID: 0}
777 | m_ProbeAnchor: {fileID: 0}
778 | m_LightProbeVolumeOverride: {fileID: 0}
779 | m_ScaleInLightmap: 1
780 | m_ReceiveGI: 1
781 | m_PreserveUVs: 0
782 | m_IgnoreNormalsForChartDetection: 0
783 | m_ImportantGI: 0
784 | m_StitchLightmapSeams: 0
785 | m_SelectedEditorRenderState: 0
786 | m_MinimumChartSize: 4
787 | m_AutoUVMaxDistance: 0.5
788 | m_AutoUVMaxAngle: 89
789 | m_LightmapParameters: {fileID: 0}
790 | m_SortingLayerID: 0
791 | m_SortingLayer: 0
792 | m_SortingOrder: 4
793 | m_Sprite: {fileID: 21300000, guid: bc925b22fd0dad9419bdfcfbb4a3e34d, type: 3}
794 | m_Color: {r: 1, g: 1, b: 1, a: 1}
795 | m_FlipX: 0
796 | m_FlipY: 0
797 | m_DrawMode: 0
798 | m_Size: {x: 0.15, y: 0.4}
799 | m_AdaptiveModeThreshold: 0.5
800 | m_SpriteTileMode: 0
801 | m_WasSpriteAssigned: 1
802 | m_MaskInteraction: 0
803 | m_SpriteSortPoint: 0
804 | --- !u!4 &1750251658
805 | Transform:
806 | m_ObjectHideFlags: 0
807 | m_CorrespondingSourceObject: {fileID: 0}
808 | m_PrefabInstance: {fileID: 0}
809 | m_PrefabAsset: {fileID: 0}
810 | m_GameObject: {fileID: 1750251654}
811 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
812 | m_LocalPosition: {x: -3.78, y: -0.1, z: 0}
813 | m_LocalScale: {x: 1, y: 1, z: 1}
814 | m_ConstrainProportionsScale: 0
815 | m_Children: []
816 | m_Father: {fileID: 0}
817 | m_RootOrder: 2
818 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
819 | --- !u!1 &1786415546
820 | GameObject:
821 | m_ObjectHideFlags: 0
822 | m_CorrespondingSourceObject: {fileID: 0}
823 | m_PrefabInstance: {fileID: 0}
824 | m_PrefabAsset: {fileID: 0}
825 | serializedVersion: 6
826 | m_Component:
827 | - component: {fileID: 1786415550}
828 | - component: {fileID: 1786415549}
829 | - component: {fileID: 1786415548}
830 | - component: {fileID: 1786415547}
831 | m_Layer: 0
832 | m_Name: Tree (1)
833 | m_TagString: Untagged
834 | m_Icon: {fileID: 0}
835 | m_NavMeshLayer: 0
836 | m_StaticEditorFlags: 0
837 | m_IsActive: 1
838 | --- !u!58 &1786415547
839 | CircleCollider2D:
840 | m_ObjectHideFlags: 0
841 | m_CorrespondingSourceObject: {fileID: 0}
842 | m_PrefabInstance: {fileID: 0}
843 | m_PrefabAsset: {fileID: 0}
844 | m_GameObject: {fileID: 1786415546}
845 | m_Enabled: 1
846 | m_Density: 1
847 | m_Material: {fileID: 0}
848 | m_IsTrigger: 0
849 | m_UsedByEffector: 0
850 | m_UsedByComposite: 0
851 | m_Offset: {x: 0.12, y: -2.59}
852 | serializedVersion: 2
853 | m_Radius: 0.2
854 | --- !u!114 &1786415548
855 | MonoBehaviour:
856 | m_ObjectHideFlags: 0
857 | m_CorrespondingSourceObject: {fileID: 0}
858 | m_PrefabInstance: {fileID: 0}
859 | m_PrefabAsset: {fileID: 0}
860 | m_GameObject: {fileID: 1786415546}
861 | m_Enabled: 1
862 | m_EditorHideFlags: 0
863 | m_Script: {fileID: 11500000, guid: 646d68c34334abe44bb05cf2f10a53a3, type: 3}
864 | m_Name:
865 | m_EditorClassIdentifier:
866 | isMovable: 1
867 | renderBelowAll: 0
868 | sortType: 0
869 | SorterPositionOffset: {x: 0.12794018, y: -2.6825585}
870 | SorterPositionOffset2: {x: 0, y: 0}
871 | renderersToSort:
872 | - {fileID: 1786415549}
873 | --- !u!212 &1786415549
874 | SpriteRenderer:
875 | m_ObjectHideFlags: 0
876 | m_CorrespondingSourceObject: {fileID: 0}
877 | m_PrefabInstance: {fileID: 0}
878 | m_PrefabAsset: {fileID: 0}
879 | m_GameObject: {fileID: 1786415546}
880 | m_Enabled: 1
881 | m_CastShadows: 0
882 | m_ReceiveShadows: 0
883 | m_DynamicOccludee: 1
884 | m_StaticShadowCaster: 0
885 | m_MotionVectors: 1
886 | m_LightProbeUsage: 1
887 | m_ReflectionProbeUsage: 1
888 | m_RayTracingMode: 0
889 | m_RayTraceProcedural: 0
890 | m_RenderingLayerMask: 1
891 | m_RendererPriority: 0
892 | m_Materials:
893 | - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
894 | m_StaticBatchInfo:
895 | firstSubMesh: 0
896 | subMeshCount: 0
897 | m_StaticBatchRoot: {fileID: 0}
898 | m_ProbeAnchor: {fileID: 0}
899 | m_LightProbeVolumeOverride: {fileID: 0}
900 | m_ScaleInLightmap: 1
901 | m_ReceiveGI: 1
902 | m_PreserveUVs: 0
903 | m_IgnoreNormalsForChartDetection: 0
904 | m_ImportantGI: 0
905 | m_StitchLightmapSeams: 0
906 | m_SelectedEditorRenderState: 0
907 | m_MinimumChartSize: 4
908 | m_AutoUVMaxDistance: 0.5
909 | m_AutoUVMaxAngle: 89
910 | m_LightmapParameters: {fileID: 0}
911 | m_SortingLayerID: 0
912 | m_SortingLayer: 0
913 | m_SortingOrder: 1
914 | m_Sprite: {fileID: 21300000, guid: bc925b22fd0dad9419bdfcfbb4a3e34d, type: 3}
915 | m_Color: {r: 0.45817018, g: 0.6792453, b: 0.47273794, a: 1}
916 | m_FlipX: 0
917 | m_FlipY: 0
918 | m_DrawMode: 0
919 | m_Size: {x: 0.15, y: 0.4}
920 | m_AdaptiveModeThreshold: 0.5
921 | m_SpriteTileMode: 0
922 | m_WasSpriteAssigned: 1
923 | m_MaskInteraction: 0
924 | m_SpriteSortPoint: 0
925 | --- !u!4 &1786415550
926 | Transform:
927 | m_ObjectHideFlags: 0
928 | m_CorrespondingSourceObject: {fileID: 0}
929 | m_PrefabInstance: {fileID: 0}
930 | m_PrefabAsset: {fileID: 0}
931 | m_GameObject: {fileID: 1786415546}
932 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
933 | m_LocalPosition: {x: 5.65, y: 0.84, z: 0}
934 | m_LocalScale: {x: 1, y: 1, z: 1}
935 | m_ConstrainProportionsScale: 0
936 | m_Children: []
937 | m_Father: {fileID: 0}
938 | m_RootOrder: 3
939 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
940 |
--------------------------------------------------------------------------------