├── Assets
├── ExtraTools
│ ├── Scripts
│ │ ├── ExtraTools.asmdef
│ │ ├── Editor
│ │ │ ├── EditorUtils.cs.meta
│ │ │ ├── ExtraTools.Editor.asmdef.meta
│ │ │ ├── ReadOnlyDrawer.cs.meta
│ │ │ ├── RequiredFieldDrawer.cs.meta
│ │ │ ├── ExtraTools.Editor.asmdef
│ │ │ ├── ReadOnlyDrawer.cs
│ │ │ ├── RequiredFieldDrawer.cs
│ │ │ └── EditorUtils.cs
│ │ ├── Editor.meta
│ │ ├── ExtraTools.asmdef.meta
│ │ ├── PopUp.cs.meta
│ │ ├── Utils.cs.meta
│ │ ├── Singleton.cs.meta
│ │ ├── AudioPlayer.cs.meta
│ │ ├── RequiredField.cs.meta
│ │ ├── ResourceManager.cs.meta
│ │ ├── CoroutineStarter.cs.meta
│ │ ├── ReadOnlyAttribute.cs.meta
│ │ ├── ReadOnlyAttribute.cs
│ │ ├── CoroutineStarter.cs
│ │ ├── RequiredField.cs
│ │ ├── Singleton.cs
│ │ ├── PopUp.cs
│ │ ├── ResourceManager.cs
│ │ ├── Utils.cs
│ │ └── AudioPlayer.cs
│ ├── Prefabs
│ │ ├── PopUp.prefab.meta
│ │ ├── PopUpButton.prefab.meta
│ │ └── PopUpButton.prefab
│ ├── Prefabs.meta
│ ├── Resources.meta
│ ├── Scripts.meta
│ └── Resources
│ │ ├── ExtraTools.meta
│ │ └── ExtraTools
│ │ ├── Mixer.mixer.meta
│ │ └── Mixer.mixer
├── Demo
│ ├── ExtraTools.Demo.asmdef.meta
│ ├── Scripts
│ │ ├── StringDemo.cs.meta
│ │ ├── DemoRandomListItem.cs.meta
│ │ ├── UI.meta
│ │ ├── DemoGetComponent.cs
│ │ ├── UI
│ │ │ ├── InGame.cs.meta
│ │ │ ├── MainMenu.cs.meta
│ │ │ ├── Pause.cs.meta
│ │ │ ├── UIManager.cs.meta
│ │ │ ├── InGame.cs
│ │ │ ├── Pause.cs
│ │ │ ├── UIManager.cs
│ │ │ └── MainMenu.cs
│ │ ├── DemoAudioPlayer.cs.meta
│ │ ├── DemoGetComponent.cs.meta
│ │ ├── DemoResource.cs.meta
│ │ ├── ReadOnlyDemo.cs.meta
│ │ ├── DemoPropertyBlocks.cs.meta
│ │ ├── DemoResourceManager.cs.meta
│ │ ├── RequiredFieldDemo.cs.meta
│ │ ├── ReadOnlyDemo.cs
│ │ ├── RequiredFieldDemo.cs
│ │ ├── DemoResource.cs
│ │ ├── DemoRandomListItem.cs
│ │ ├── StringDemo.cs
│ │ ├── DemoResourceManager.cs
│ │ ├── DemoPropertyBlocks.cs
│ │ └── DemoAudioPlayer.cs
│ ├── Audio
│ │ ├── click1.ogg
│ │ ├── click2.ogg
│ │ ├── click3.ogg
│ │ ├── click4.ogg
│ │ ├── click5.ogg
│ │ ├── game_over.ogg
│ │ ├── final_round.ogg
│ │ ├── AgainAndAgain.mp3
│ │ ├── Alchemist's Castle - Bossfight Theme.ogg
│ │ ├── Credits.txt
│ │ ├── Credits.txt.meta
│ │ ├── click1.ogg.meta
│ │ ├── click2.ogg.meta
│ │ ├── click3.ogg.meta
│ │ ├── click4.ogg.meta
│ │ ├── click5.ogg.meta
│ │ ├── final_round.ogg.meta
│ │ ├── game_over.ogg.meta
│ │ ├── AgainAndAgain.mp3.meta
│ │ └── Alchemist's Castle - Bossfight Theme.ogg.meta
│ ├── Prefabs
│ │ ├── TestCube.prefab.meta
│ │ └── TestCube.prefab
│ ├── Scenes
│ │ ├── DemoUI.unity.meta
│ │ ├── DemoAudioPlayer.unity.meta
│ │ ├── DemoRandomItem.unity.meta
│ │ ├── DemoStrings.unity.meta
│ │ ├── DemoGetComponent.unity.meta
│ │ ├── DemoPropertyBlocks.unity.meta
│ │ ├── DemoResourceManager.unity.meta
│ │ ├── DemoInspectorHighlight.unity.meta
│ │ ├── DemoReadOnlyAttribute.unity.meta
│ │ ├── DemoStrings.unity
│ │ ├── DemoRandomItem.unity
│ │ ├── DemoInspectorHighlight.unity
│ │ ├── DemoReadOnlyAttribute.unity
│ │ ├── DemoGetComponent.unity
│ │ └── DemoResourceManager.unity
│ ├── Audio.meta
│ ├── Prefabs.meta
│ ├── Scenes.meta
│ ├── Scripts.meta
│ ├── Materials.meta
│ ├── Materials
│ │ ├── TestingPropertyBlocks.mat.meta
│ │ └── TestingPropertyBlocks.mat
│ └── ExtraTools.Demo.asmdef
├── Demo.meta
└── ExtraTools.meta
├── Utils.unitypackage
├── AudioPlayer.unitypackage
├── PopUpWindow.unitypackage
├── .gitattributes
├── ProjectSettings
├── ProjectVersion.txt
├── ClusterInputManager.asset
├── NetworkManager.asset
├── XRSettings.asset
├── VersionControlSettings.asset
├── TimeManager.asset
├── VFXManager.asset
├── EditorBuildSettings.asset
├── AudioManager.asset
├── RiderScriptEditorPersistedState.asset
├── TagManager.asset
├── PresetManager.asset
├── UnityConnectSettings.asset
├── DynamicsManager.asset
├── PackageManagerSettings.asset
├── MemorySettings.asset
├── EditorSettings.asset
├── Physics2DSettings.asset
├── NavMeshAreas.asset
├── GraphicsSettings.asset
├── QualitySettings.asset
├── SceneTemplateSettings.json
└── InputManager.asset
├── README.md
├── .idea
└── .idea.ExtraTools
│ └── .idea
│ ├── encodings.xml
│ ├── vcs.xml
│ └── projectSettingsUpdater.xml
├── ExtraTools.sln.DotSettings
├── .gitignore
├── LICENSE
├── Packages
├── manifest.json
└── packages-lock.json
├── UserSettings
└── EditorUserSettings.asset
└── Logs
└── Packages-Update.log
/Assets/ExtraTools/Scripts/ExtraTools.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ExtraTools"
3 | }
4 |
--------------------------------------------------------------------------------
/Utils.unitypackage:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antonsem/ExtraTools/HEAD/Utils.unitypackage
--------------------------------------------------------------------------------
/AudioPlayer.unitypackage:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antonsem/ExtraTools/HEAD/AudioPlayer.unitypackage
--------------------------------------------------------------------------------
/PopUpWindow.unitypackage:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antonsem/ExtraTools/HEAD/PopUpWindow.unitypackage
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.ogg filter=lfs diff=lfs merge=lfs -text
2 | *.mp3 filter=lfs diff=lfs merge=lfs -text
3 |
--------------------------------------------------------------------------------
/ProjectSettings/ProjectVersion.txt:
--------------------------------------------------------------------------------
1 | m_EditorVersion: 2022.3.1f1
2 | m_EditorVersionWithRevision: 2022.3.1f1 (f18e0c1b5784)
3 |
--------------------------------------------------------------------------------
/Assets/Demo/ExtraTools.Demo.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 78c49e88e05041968784ec73f8d1a5bf
3 | timeCreated: 1687098696
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/StringDemo.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b7d76bddd8e044c4a924186dffff5053
3 | timeCreated: 1657021000
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/DemoRandomListItem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: adbc53c381f043efa8bccf592a3ce46c
3 | timeCreated: 1630834168
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/Editor/EditorUtils.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3ca61f1ba3974a92a08347426201dfbb
3 | timeCreated: 1687102800
--------------------------------------------------------------------------------
/Assets/Demo/Audio/click1.ogg:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:59175ac17cd49a68dd736285738441287636112a84a6f7ce0d89921bda5a5360
3 | size 4983
4 |
--------------------------------------------------------------------------------
/Assets/Demo/Audio/click2.ogg:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:c394b46bc6737f7f7edfbfa3031ce621b7a43d498d456d6198364eee9cd3e306
3 | size 4656
4 |
--------------------------------------------------------------------------------
/Assets/Demo/Audio/click3.ogg:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:e3e7fc7ccd9c5cfdf77bffa05aee10d4973812076c76dc889ba2b16ea434127f
3 | size 4880
4 |
--------------------------------------------------------------------------------
/Assets/Demo/Audio/click4.ogg:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:9c02bbfc872b50eb8750adf4b7c343120f19f5d2f04ab06a7a8948368a77b872
3 | size 4558
4 |
--------------------------------------------------------------------------------
/Assets/Demo/Audio/click5.ogg:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:52d41e0bb012731bf2a391d53ffb52265ef21589c7701e66b391d5e36a65b293
3 | size 4532
4 |
--------------------------------------------------------------------------------
/Assets/Demo/Audio/game_over.ogg:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:d9fe4a9817c5ebb740f0be3dc0ff63d9acaae064e4b11dd6d0aa3daa05c38e47
3 | size 13610
4 |
--------------------------------------------------------------------------------
/Assets/Demo/Audio/final_round.ogg:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:0aad0d7abd1f12d52173da2267e2b4e671da3f33c0dbb78f0ba1c727dbcd9d86
3 | size 12026
4 |
--------------------------------------------------------------------------------
/Assets/Demo/Audio/AgainAndAgain.mp3:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:e5b463a024b44e00680359500f978faa7e69141f9f22380395ce510cd5ff3216
3 | size 5716096
4 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # ExtraTools
2 | Some extra tools and shortcuts I use in Unity.
3 | I'm keeping a blog the stuff I'm adding here.
4 | Check it out if you are confused: https://www.anton.website/blog/
5 |
--------------------------------------------------------------------------------
/Assets/Demo/Audio/Alchemist's Castle - Bossfight Theme.ogg:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:f84097f90ff20e47e555372038a37024eaef0932b6de459143ac2b4852e76251
3 | size 5508129
4 |
--------------------------------------------------------------------------------
/Assets/Demo/Audio/Credits.txt:
--------------------------------------------------------------------------------
1 | Again and Again
2 | Downloaded from freesfx.co.uk
3 |
4 | Alchemist's Castle - Bossfight Theme
5 | Alchemist's Castle OST
6 |
7 | Sounds and voice over
8 | Downloaded from Kenney.nl
--------------------------------------------------------------------------------
/.idea/.idea.ExtraTools/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Assets/Demo.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 626519b1addb4304f93b14f7d2df43f6
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Demo/Audio/Credits.txt.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c08d94147db5d3541a865f4caef52ad5
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Demo/Prefabs/TestCube.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ab6556399aebed84e903e82f3cea6cfb
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Demo/Scenes/DemoUI.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6fea12341c94c3b4bbdc19c6ab91ab24
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/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/Demo/Audio.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 40c6fd2d35216004e8fe432861547c59
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Demo/Prefabs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 780123de46860c740bd2ae87b881a738
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Demo/Scenes.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ccdd8489ec59fb545a7835dafdf44827
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Demo/Scenes/DemoAudioPlayer.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: cd76a09e31f44be45bb5d032230b42de
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Demo/Scenes/DemoRandomItem.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 965596d15976ae542a9db668c77adaff
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Demo/Scenes/DemoStrings.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5b071845fc2e7a84ca83593f4ef3907e
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Demo/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 011e2dc06ff04134e9bee11582aab451
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/ExtraTools.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: bb8a4a33a2a7790428dd7d0ee9032d88
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Prefabs/PopUp.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: bddeb75bbfea8cb458b2c4573cdefe54
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Demo/Materials.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1670571e8a347b04abaa6c1420453486
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Demo/Scenes/DemoGetComponent.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 99c9720ab356a0642a771bea13969a05
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Demo/Scenes/DemoPropertyBlocks.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 66d2816e306f4a64ea71318be4b93b7a
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Demo/Scenes/DemoResourceManager.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ecdf6e0f2c59fee46be7f642621e0f89
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/UI.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2cd3d6731d52cb2498f61d5c2b2bb650
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Prefabs/PopUpButton.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b36acdb245d8c3e4a907a2ad8e263fd1
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/.idea/.idea.ExtraTools/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Assets/Demo/Scenes/DemoInspectorHighlight.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 243b583b9e2955749b865ab48329aaa9
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Demo/Scenes/DemoReadOnlyAttribute.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a53e26378520e3845a00094309642da7
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Prefabs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 188b2baa8614e8744b9d381b6984f94f
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Resources.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ec57f392d4f1f7942b1821daf60cab99
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: eccbe5dd12f0e6e4d9754d722f90d4a4
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/ProjectSettings/XRSettings.asset:
--------------------------------------------------------------------------------
1 | {
2 | "m_SettingKeys": [
3 | "VR Device Disabled",
4 | "VR Device User Alert"
5 | ],
6 | "m_SettingValues": [
7 | "False",
8 | "False"
9 | ]
10 | }
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 04ceebf7a96ae2340ae293a2ef8cffbb
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/ExtraTools.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 55acc4e34e3ae1d43bde89a2d1bd22ef
3 | AssemblyDefinitionImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Resources/ExtraTools.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5a16ec3f01466c947b7103876bfdd206
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/Editor/ExtraTools.Editor.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b55930dca592c904685b0bc9efbf80aa
3 | AssemblyDefinitionImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/.idea/.idea.ExtraTools/.idea/projectSettingsUpdater.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/Assets/Demo/Materials/TestingPropertyBlocks.mat.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: bb309f5a9f1095c47b46e8f13fbf9db9
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 2100000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Resources/ExtraTools/Mixer.mixer.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 12d34a883644fef4396f29d08e17333d
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 24100000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
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 |
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/DemoGetComponent.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | namespace ExtraTools.Test.Scripts
4 | {
5 | public class DemoGetComponent : MonoBehaviour
6 | {
7 | public BoxCollider col;
8 |
9 | private void Start()
10 | {
11 | transform.EnsureComponent(out col, true, true);
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/UI/InGame.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0f0f03490bd232d4bbb00b5f01850189
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/UI/MainMenu.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d170bebd4df988745a5d6b2320fe9996
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/UI/Pause.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 160914077819dd6438d31d25d4c95b3f
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/PopUp.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 36180d7d080e93c4eb0c096fd12f8f2b
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/Utils.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 38afa79d1fb7a67499db1723ceb28e6a
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/DemoAudioPlayer.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5fe12fcedce7dd74d8ecf64158f0dc6e
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/DemoGetComponent.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7646fd2ddbccbb04ea1da91275ddbe12
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/DemoResource.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 85f2943ed2a2d904c8c2c80eeeb49213
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/ReadOnlyDemo.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2eaf82143acb90a40bac95abd8daf470
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/UI/UIManager.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5d60cc85b073eb9448f771e19a6e1ed3
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/Singleton.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5a4e8e9c1daa2a04fb8042de23599157
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/DemoPropertyBlocks.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fda104e228c53934b9c663f39904f1ac
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/DemoResourceManager.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ef6d2fdf416e0f94bb715b0b5c6b1df7
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/RequiredFieldDemo.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a2db754354dfc564cb86f537246b2899
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/AudioPlayer.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d10510bcfd0cf9447a95511dc5f5aa4f
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/RequiredField.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f008c4fb989b8f9409b057b71daf93d6
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/ResourceManager.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 765be3ab999899a46b24e0a4aa780fdd
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/CoroutineStarter.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 64fd585fe44763f4397dc82a7f09421d
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/ReadOnlyAttribute.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 587ec238b8b570248ad10b4e2b2af15d
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/Editor/ReadOnlyDrawer.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4e1d33c5f8944c149b5eac641e9b7340
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/Editor/RequiredFieldDrawer.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 90d9dd78279bc0b48917519538096099
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/EditorBuildSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1045 &1
4 | EditorBuildSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_Scenes:
8 | - enabled: 1
9 | path: Assets/ExtraTools/Demo/Scenes/TestGetComponent.unity
10 | guid: 99c9720ab356a0642a771bea13969a05
11 | m_configObjects: {}
12 |
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/ReadOnlyDemo.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | namespace ExtraTools.Test.Scripts
4 | {
5 | public class ReadOnlyDemo : MonoBehaviour
6 | {
7 | #pragma warning disable 0414
8 | [ReadOnly(true)] public Rigidbody rigid;
9 | [SerializeField, ReadOnly] private float testFloatValue = 123;
10 | #pragma warning restore 0414
11 | }
12 | }
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/RequiredFieldDemo.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | namespace ExtraTools.Test.Scripts
4 | {
5 | public class RequiredFieldDemo : MonoBehaviour
6 | {
7 | [RequiredField] public GameObject shouldBeAssigned;
8 | [RequiredField(FieldColor.Yellow)] public GameObject yellowField;
9 | [SerializeField, RequiredField(FieldColor.Blue)] private GameObject serializedHighlight;
10 | }
11 | }
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/UI/InGame.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using UnityEngine.UI;
3 |
4 | namespace ExtraTools.Test
5 | {
6 | public class InGame : MonoBehaviour
7 | {
8 | [SerializeField] private Button pause;
9 |
10 | private void Start()
11 | {
12 | pause.onClick.AddListener(OnPause);
13 | }
14 |
15 | private static void OnPause()
16 | {
17 | UIManager.Instance.SetWindow(Window.Pause);
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/DemoResource.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | namespace ExtraTools.Test.Scripts
4 | {
5 | public class DemoResource : MonoBehaviour
6 | {
7 | private void Awake()
8 | {
9 | Debug.Log($"Awake invoked on {this}", this);
10 | }
11 |
12 | private void Start()
13 | {
14 | Debug.Log($"Start invoked on {this}", this);
15 | }
16 |
17 | private void OnEnable()
18 | {
19 | Debug.Log($"OnEnable invoked on {this}", this);
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/ExtraTools.sln.DotSettings:
--------------------------------------------------------------------------------
1 |
2 | True
3 | True
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/ReadOnlyAttribute.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | namespace ExtraTools
4 | {
5 | public class ReadOnlyAttribute : PropertyAttribute
6 | {
7 | ///
8 | /// Writes a warning if the value of this field is null
9 | ///
10 | public readonly bool errorIfNull;
11 |
12 | public ReadOnlyAttribute()
13 | {
14 | errorIfNull = true;
15 | }
16 |
17 | public ReadOnlyAttribute(bool errorIfNull)
18 | {
19 | this.errorIfNull = errorIfNull;
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/Assets/Demo/ExtraTools.Demo.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ExtraTools.Tests",
3 | "rootNamespace": "",
4 | "references": [
5 | "GUID:55acc4e34e3ae1d43bde89a2d1bd22ef",
6 | "GUID:b55930dca592c904685b0bc9efbf80aa"
7 | ],
8 | "includePlatforms": [],
9 | "excludePlatforms": [],
10 | "allowUnsafeCode": false,
11 | "overrideReferences": false,
12 | "precompiledReferences": [],
13 | "autoReferenced": true,
14 | "defineConstraints": [],
15 | "versionDefines": [],
16 | "noEngineReferences": false
17 | }
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/Editor/ExtraTools.Editor.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ExtraTools.Editor",
3 | "rootNamespace": "",
4 | "references": [
5 | "GUID:55acc4e34e3ae1d43bde89a2d1bd22ef"
6 | ],
7 | "includePlatforms": [
8 | "Editor"
9 | ],
10 | "excludePlatforms": [],
11 | "allowUnsafeCode": false,
12 | "overrideReferences": false,
13 | "precompiledReferences": [],
14 | "autoReferenced": true,
15 | "defineConstraints": [],
16 | "versionDefines": [],
17 | "noEngineReferences": false
18 | }
--------------------------------------------------------------------------------
/ProjectSettings/RiderScriptEditorPersistedState.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: 0}
13 | m_Name:
14 | m_EditorClassIdentifier: Unity.Rider.Editor:Packages.Rider.Editor:RiderScriptEditorPersistedState
15 | lastWriteTicks: -8585502892089615493
16 |
--------------------------------------------------------------------------------
/Assets/Demo/Audio/click1.ogg.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 040721904f9850442b8fd1392531e90b
3 | AudioImporter:
4 | externalObjects: {}
5 | serializedVersion: 6
6 | defaultSettings:
7 | loadType: 0
8 | sampleRateSetting: 0
9 | sampleRateOverride: 44100
10 | compressionFormat: 1
11 | quality: 1
12 | conversionMode: 0
13 | platformSettingOverrides: {}
14 | forceToMono: 0
15 | normalize: 1
16 | preloadAudioData: 1
17 | loadInBackground: 0
18 | ambisonic: 0
19 | 3D: 1
20 | userData:
21 | assetBundleName:
22 | assetBundleVariant:
23 |
--------------------------------------------------------------------------------
/Assets/Demo/Audio/click2.ogg.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: bc720806c5d813843aba203ee1823205
3 | AudioImporter:
4 | externalObjects: {}
5 | serializedVersion: 6
6 | defaultSettings:
7 | loadType: 0
8 | sampleRateSetting: 0
9 | sampleRateOverride: 44100
10 | compressionFormat: 1
11 | quality: 1
12 | conversionMode: 0
13 | platformSettingOverrides: {}
14 | forceToMono: 0
15 | normalize: 1
16 | preloadAudioData: 1
17 | loadInBackground: 0
18 | ambisonic: 0
19 | 3D: 1
20 | userData:
21 | assetBundleName:
22 | assetBundleVariant:
23 |
--------------------------------------------------------------------------------
/Assets/Demo/Audio/click3.ogg.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a87e5104af772cd43aedb43c2e882c7c
3 | AudioImporter:
4 | externalObjects: {}
5 | serializedVersion: 6
6 | defaultSettings:
7 | loadType: 0
8 | sampleRateSetting: 0
9 | sampleRateOverride: 44100
10 | compressionFormat: 1
11 | quality: 1
12 | conversionMode: 0
13 | platformSettingOverrides: {}
14 | forceToMono: 0
15 | normalize: 1
16 | preloadAudioData: 1
17 | loadInBackground: 0
18 | ambisonic: 0
19 | 3D: 1
20 | userData:
21 | assetBundleName:
22 | assetBundleVariant:
23 |
--------------------------------------------------------------------------------
/Assets/Demo/Audio/click4.ogg.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c3d8c2e43052d514fa4d11666be9a36d
3 | AudioImporter:
4 | externalObjects: {}
5 | serializedVersion: 6
6 | defaultSettings:
7 | loadType: 0
8 | sampleRateSetting: 0
9 | sampleRateOverride: 44100
10 | compressionFormat: 1
11 | quality: 1
12 | conversionMode: 0
13 | platformSettingOverrides: {}
14 | forceToMono: 0
15 | normalize: 1
16 | preloadAudioData: 1
17 | loadInBackground: 0
18 | ambisonic: 0
19 | 3D: 1
20 | userData:
21 | assetBundleName:
22 | assetBundleVariant:
23 |
--------------------------------------------------------------------------------
/Assets/Demo/Audio/click5.ogg.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 53decd8e55a6d54409d07d985ec72bab
3 | AudioImporter:
4 | externalObjects: {}
5 | serializedVersion: 6
6 | defaultSettings:
7 | loadType: 0
8 | sampleRateSetting: 0
9 | sampleRateOverride: 44100
10 | compressionFormat: 1
11 | quality: 1
12 | conversionMode: 0
13 | platformSettingOverrides: {}
14 | forceToMono: 0
15 | normalize: 1
16 | preloadAudioData: 1
17 | loadInBackground: 0
18 | ambisonic: 0
19 | 3D: 1
20 | userData:
21 | assetBundleName:
22 | assetBundleVariant:
23 |
--------------------------------------------------------------------------------
/Assets/Demo/Audio/final_round.ogg.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: dbfacb1d7eadc2149afa327355158cc9
3 | AudioImporter:
4 | externalObjects: {}
5 | serializedVersion: 6
6 | defaultSettings:
7 | loadType: 0
8 | sampleRateSetting: 0
9 | sampleRateOverride: 44100
10 | compressionFormat: 1
11 | quality: 1
12 | conversionMode: 0
13 | platformSettingOverrides: {}
14 | forceToMono: 0
15 | normalize: 1
16 | preloadAudioData: 1
17 | loadInBackground: 0
18 | ambisonic: 0
19 | 3D: 1
20 | userData:
21 | assetBundleName:
22 | assetBundleVariant:
23 |
--------------------------------------------------------------------------------
/Assets/Demo/Audio/game_over.ogg.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e0a5e867629ae7b4083a252cfd1e30ea
3 | AudioImporter:
4 | externalObjects: {}
5 | serializedVersion: 6
6 | defaultSettings:
7 | loadType: 0
8 | sampleRateSetting: 0
9 | sampleRateOverride: 44100
10 | compressionFormat: 1
11 | quality: 1
12 | conversionMode: 0
13 | platformSettingOverrides: {}
14 | forceToMono: 0
15 | normalize: 1
16 | preloadAudioData: 1
17 | loadInBackground: 0
18 | ambisonic: 0
19 | 3D: 1
20 | userData:
21 | assetBundleName:
22 | assetBundleVariant:
23 |
--------------------------------------------------------------------------------
/Assets/Demo/Audio/AgainAndAgain.mp3.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 89c8902b5852b2b499b2ee52f091a677
3 | AudioImporter:
4 | externalObjects: {}
5 | serializedVersion: 6
6 | defaultSettings:
7 | loadType: 0
8 | sampleRateSetting: 0
9 | sampleRateOverride: 44100
10 | compressionFormat: 1
11 | quality: 1
12 | conversionMode: 0
13 | platformSettingOverrides: {}
14 | forceToMono: 1
15 | normalize: 1
16 | preloadAudioData: 1
17 | loadInBackground: 0
18 | ambisonic: 0
19 | 3D: 1
20 | userData:
21 | assetBundleName:
22 | assetBundleVariant:
23 |
--------------------------------------------------------------------------------
/Assets/Demo/Audio/Alchemist's Castle - Bossfight Theme.ogg.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d67884b91056444408a7d3b1d29e9d99
3 | AudioImporter:
4 | externalObjects: {}
5 | serializedVersion: 6
6 | defaultSettings:
7 | loadType: 0
8 | sampleRateSetting: 0
9 | sampleRateOverride: 44100
10 | compressionFormat: 1
11 | quality: 1
12 | conversionMode: 0
13 | platformSettingOverrides: {}
14 | forceToMono: 1
15 | normalize: 1
16 | preloadAudioData: 1
17 | loadInBackground: 0
18 | ambisonic: 0
19 | 3D: 1
20 | userData:
21 | assetBundleName:
22 | assetBundleVariant:
23 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | [Ll]ibrary/
2 | [Tt]emp/
3 | [Oo]bj/
4 | [Bb]uild/
5 | [Bb]uilds/
6 | Assets/AssetStoreTools*
7 |
8 | # Visual Studio cache directory
9 | .vs/
10 |
11 | # Autogenerated VS/MD/Consulo solution and project files
12 | ExportedObj/
13 | .consulo/
14 | *.csproj
15 | *.unityproj
16 | *.sln
17 | *.suo
18 | *.tmp
19 | *.user
20 | *.userprefs
21 | *.pidb
22 | *.booproj
23 | *.svd
24 | *.pdb
25 | *.opendb
26 |
27 | # Unity3D generated meta files
28 | *.pidb.meta
29 | *.pdb.meta
30 |
31 | # Unity3D Generated File On Crash Reports
32 | sysinfo.txt
33 |
34 | # Builds
35 | *.apk
36 | *.unitypackage
37 | .idea/
38 | Logs/
39 | UserSettings/
40 |
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/UI/Pause.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using UnityEngine.UI;
3 |
4 | namespace ExtraTools.Test
5 | {
6 | public class Pause : MonoBehaviour
7 | {
8 | [SerializeField] private Button resume;
9 | [SerializeField] private Button mainMenu;
10 |
11 | private void Start()
12 | {
13 | resume.onClick.AddListener(OnResume);
14 | mainMenu.onClick.AddListener(OnMainMenu);
15 | }
16 |
17 | private static void OnResume()
18 | {
19 | UIManager.Instance.SetWindow(Window.InGame);
20 | }
21 |
22 | private static void OnMainMenu()
23 | {
24 | UIManager.Instance.SetWindow(Window.MainMenu);
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/DemoRandomListItem.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using UnityEngine;
3 |
4 | namespace ExtraTools.Test.Scripts
5 | {
6 | public class DemoRandomListItem : MonoBehaviour
7 | {
8 | [SerializeField] private string[] strings;
9 | [SerializeField] private List floats;
10 | [SerializeField] private List transforms;
11 |
12 | private void Update()
13 | {
14 | if (Input.GetKeyDown(KeyCode.Alpha1))
15 | {
16 | Debug.Log(strings.GetRandom());
17 | }
18 |
19 | if (Input.GetKeyDown(KeyCode.Alpha2))
20 | {
21 | Debug.Log(floats.GetRandom());
22 | }
23 |
24 | if (Input.GetKeyDown(KeyCode.Alpha3))
25 | {
26 | Debug.Log(transforms.GetRandom());
27 | }
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/StringDemo.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | namespace ExtraTools
4 | {
5 | public class StringDemo : MonoBehaviour
6 | {
7 | [Header("Empty string")]
8 | [SerializeField] private string testString;
9 |
10 | [Header("String formatting")]
11 | [SerializeField, ReadOnly] private string stringToFormat = "First parameter: {0}, second parameter: {1}";
12 | [Space, SerializeField] private string[] parameters;
13 |
14 | private void Update()
15 | {
16 | if (Input.GetKeyDown(KeyCode.Alpha1))
17 | {
18 | Debug.Log($"testString is not null or empty: {testString.IsValid()}");
19 | }
20 |
21 | if (Input.GetKeyDown(KeyCode.Alpha2))
22 | {
23 | Debug.Log($"Formatted string: {stringToFormat.Format(parameters)}");
24 | }
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/DemoResourceManager.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | namespace ExtraTools.Test.Scripts
4 | {
5 | public class DemoResourceManager : MonoBehaviour
6 | {
7 | private void Update()
8 | {
9 | if (Input.GetKeyDown(KeyCode.G))
10 | {
11 | ResourceManager.Instance.testPrefab.Get();
12 | }
13 |
14 | if (Input.GetKeyDown(KeyCode.U))
15 | {
16 | ResourceManager.Instance.testPrefab.DestroyUnused();
17 | }
18 |
19 | if (Input.GetKeyDown(KeyCode.A))
20 | {
21 | ResourceManager.Instance.testPrefab.RemoveAll();
22 | }
23 |
24 | if (Input.GetKeyDown(KeyCode.D))
25 | {
26 | ResourceManager.Instance.testPrefab.DestroyAll();
27 | }
28 |
29 | if (Input.GetKeyDown(KeyCode.P))
30 | {
31 | ResourceManager.Instance.testPrefab.Prepare(10);
32 | }
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/CoroutineStarter.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | namespace ExtraTools
4 | {
5 | ///
6 | /// This is an empty MonoBehaviour. Its only purpose is to run coroutines
7 | ///
8 | public class CoroutineStarter : MonoBehaviour
9 | {
10 | private static CoroutineStarter _instance;
11 |
12 | public static CoroutineStarter Get
13 | {
14 | get
15 | {
16 | // Instance required for the first time, we look for it
17 | if (_instance) return _instance;
18 |
19 | _instance = FindObjectOfType();
20 |
21 | // Object not found, we create a temporary one
22 | if (_instance) return _instance;
23 |
24 | _instance = new GameObject($"Temp Instance of {typeof(CoroutineStarter)}", typeof(CoroutineStarter))
25 | .GetComponent();
26 |
27 | return _instance;
28 | }
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/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/ExtraTools/Scripts/Editor/ReadOnlyDrawer.cs:
--------------------------------------------------------------------------------
1 | using UnityEditor;
2 | using UnityEngine;
3 |
4 | namespace ExtraTools.Editor
5 | {
6 | [CustomPropertyDrawer(typeof(ReadOnlyAttribute))]
7 | public class ReadOnlyDrawer : PropertyDrawer
8 | {
9 | private const string NULL_ERROR =
10 | "Read Only field {0} is not assigned on {1}!";
11 |
12 | public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
13 | {
14 | var att = attribute as ReadOnlyAttribute;
15 |
16 | if (att.errorIfNull && property.GetValue().Equals(null))
17 | {
18 | Debug.LogErrorFormat(property.serializedObject.targetObject, NULL_ERROR, label.text,
19 | property.serializedObject.targetObject);
20 | }
21 |
22 | var previousGUIState = GUI.enabled;
23 | GUI.enabled = false;
24 | EditorGUI.PropertyField(position, property, label);
25 | GUI.enabled = previousGUIState;
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/UI/UIManager.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | namespace ExtraTools.Test
4 | {
5 | public enum Window
6 | {
7 | None,
8 | MainMenu,
9 | InGame,
10 | Pause
11 | }
12 |
13 | public class UIManager : Singleton
14 | {
15 | [SerializeField] private MainMenu mainMenu;
16 | [SerializeField] private InGame inGame;
17 | [SerializeField] private Pause pause;
18 | [SerializeField] private PopUp popUp;
19 |
20 | ///
21 | /// Set a specific UI window
22 | ///
23 | /// Type of the window to be set
24 | public void SetWindow(Window window)
25 | {
26 | mainMenu.gameObject.SetActive(window == Window.MainMenu);
27 | inGame.gameObject.SetActive(window == Window.InGame);
28 | pause.gameObject.SetActive(window == Window.Pause);
29 | }
30 |
31 | public void PopUpMessage(string msg, Sprite img = null, params MessageButton[] buttons)
32 | {
33 | popUp.Register(msg, img, buttons);
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Anton Semchenko
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/ProjectSettings/DynamicsManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!55 &1
4 | PhysicsManager:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 7
7 | m_Gravity: {x: 0, y: -9.81, z: 0}
8 | m_DefaultMaterial: {fileID: 0}
9 | m_BounceThreshold: 2
10 | m_SleepThreshold: 0.005
11 | m_DefaultContactOffset: 0.01
12 | m_DefaultSolverIterations: 6
13 | m_DefaultSolverVelocityIterations: 1
14 | m_QueriesHitBackfaces: 0
15 | m_QueriesHitTriggers: 1
16 | m_EnableAdaptiveForce: 0
17 | m_ClothInterCollisionDistance: 0
18 | m_ClothInterCollisionStiffness: 0
19 | m_ContactsGeneration: 1
20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
21 | m_AutoSimulation: 1
22 | m_AutoSyncTransforms: 1
23 | m_ClothInterCollisionSettingsToggle: 0
24 | m_ContactPairsMode: 0
25 | m_BroadphaseType: 0
26 | m_WorldBounds:
27 | m_Center: {x: 0, y: 0, z: 0}
28 | m_Extent: {x: 250, y: 250, z: 250}
29 | m_WorldSubdivisions: 8
30 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/Editor/RequiredFieldDrawer.cs:
--------------------------------------------------------------------------------
1 | using UnityEditor;
2 | using UnityEngine;
3 |
4 | namespace ExtraTools.Editor
5 | {
6 | ///
7 | /// Credit for this tip goes to Rodrigo Devora
8 | /// Got it from the twitter: https://twitter.com/Rodrigo_Devora/status/1204031607583264769
9 | ///
10 | [CustomPropertyDrawer(typeof(RequiredField))]
11 | public class RequiredFieldDrawer : PropertyDrawer
12 | {
13 | private const string ERROR =
14 | "Required field {0} is not assigned on {1}!";
15 |
16 | public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
17 | {
18 | var field = attribute as RequiredField;
19 |
20 | if (!property.GetValue().Equals(null))
21 | {
22 | EditorGUI.PropertyField(position, property, label);
23 | return;
24 | }
25 |
26 | if (field.debugError)
27 | {
28 | Debug.LogErrorFormat(property.serializedObject.targetObject, ERROR, label.text,
29 | property.serializedObject.targetObject);
30 | }
31 |
32 | var previousGUIColor = GUI.color;
33 | GUI.color = field.color;
34 | EditorGUI.PropertyField(position, property, label);
35 | GUI.color = previousGUIColor;
36 | }
37 | }
38 | }
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/UI/MainMenu.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using UnityEngine.UI;
3 |
4 | namespace ExtraTools.Test
5 | {
6 | public class MainMenu : MonoBehaviour
7 | {
8 | [SerializeField] private Button newGame;
9 | [SerializeField] private Button sendMessage;
10 | [SerializeField] private Button sendFiveMessages;
11 | [SerializeField] private Sprite messageSprite;
12 |
13 | private void Start()
14 | {
15 | newGame.onClick.AddListener(OnStartGame);
16 | sendMessage.onClick.AddListener(SendMessage);
17 | sendFiveMessages.onClick.AddListener(SendFiveMessages);
18 | }
19 |
20 | private static void OnStartGame()
21 | {
22 | UIManager.Instance.SetWindow(Window.InGame);
23 | }
24 |
25 | private void SendMessage()
26 | {
27 | MessageButton[] buttons =
28 | {
29 | new("Yes", () => Debug.Log("Yes")),
30 | new("No", () => Debug.Log("No")),
31 | new("Cancel", () => Debug.Log("Cancel"))
32 | };
33 |
34 | UIManager.Instance.PopUpMessage("This is a generic warning message. You can click on any button...",
35 | messageSprite, buttons);
36 | }
37 |
38 | private static void SendFiveMessages()
39 | {
40 | for (int i = 0; i < 5; i++)
41 | {
42 | UIManager.Instance.PopUpMessage($"message {i.ToString()}");
43 | }
44 | }
45 | }
46 | }
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/ProjectSettings/EditorSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!159 &1
4 | EditorSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 11
7 | m_SerializationMode: 2
8 | m_LineEndingsForNewScripts: 2
9 | m_DefaultBehaviorMode: 0
10 | m_PrefabRegularEnvironment: {fileID: 0}
11 | m_PrefabUIEnvironment: {fileID: 0}
12 | m_SpritePackerMode: 0
13 | m_SpritePackerPaddingPower: 1
14 | m_EtcTextureCompressorBehavior: 1
15 | m_EtcTextureFastCompressor: 1
16 | m_EtcTextureNormalCompressor: 2
17 | m_EtcTextureBestCompressor: 4
18 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmref
19 | m_ProjectGenerationRootNamespace:
20 | m_EnableTextureStreamingInEditMode: 1
21 | m_EnableTextureStreamingInPlayMode: 1
22 | m_AsyncShaderCompilation: 1
23 | m_CachingShaderPreprocessor: 1
24 | m_PrefabModeAllowAutoSave: 1
25 | m_EnterPlayModeOptionsEnabled: 0
26 | m_EnterPlayModeOptions: 3
27 | m_GameObjectNamingDigits: 1
28 | m_GameObjectNamingScheme: 2
29 | m_AssetNamingUsesSpace: 1
30 | m_UseLegacyProbeSampleCount: 1
31 | m_SerializeInlineMappingsOnOneLine: 0
32 | m_DisableCookiesInLightmapper: 1
33 | m_AssetPipelineMode: 1
34 | m_CacheServerMode: 0
35 | m_CacheServerEndpoint:
36 | m_CacheServerNamespacePrefix: default
37 | m_CacheServerEnableDownload: 1
38 | m_CacheServerEnableUpload: 1
39 | m_CacheServerEnableAuth: 0
40 | m_CacheServerEnableTls: 0
41 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/RequiredField.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | namespace ExtraTools
4 | {
5 | public enum FieldColor
6 | {
7 | Red,
8 | Green,
9 | Blue,
10 | Yellow
11 | }
12 |
13 | ///
14 | /// Credit for this tip goes to Rodrigo Devora
15 | /// Got it from the twitter: https://twitter.com/Rodrigo_Devora/status/1204031607583264769
16 | ///
17 | public class RequiredField : PropertyAttribute
18 | {
19 | public readonly Color color;
20 | public readonly bool debugError;
21 |
22 | public RequiredField()
23 | {
24 | debugError = true;
25 | color = Color.red;
26 | }
27 |
28 | public RequiredField(FieldColor color)
29 | {
30 | debugError = true;
31 | this.color = color switch
32 | {
33 | FieldColor.Red => Color.red,
34 | FieldColor.Green => Color.green,
35 | FieldColor.Blue => Color.blue,
36 | FieldColor.Yellow => Color.yellow,
37 | _ => Color.red
38 | };
39 | }
40 |
41 | public RequiredField(Color color)
42 | {
43 | debugError = true;
44 | this.color = color;
45 | }
46 |
47 | public RequiredField(bool debugError = true, FieldColor color = FieldColor.Red)
48 | {
49 | this.debugError = debugError;
50 | this.color = color switch
51 | {
52 | FieldColor.Red => Color.red,
53 | FieldColor.Green => Color.green,
54 | FieldColor.Blue => Color.blue,
55 | FieldColor.Yellow => Color.yellow,
56 | _ => Color.red
57 | };
58 | }
59 | }
60 | }
--------------------------------------------------------------------------------
/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: 3
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_AutoSyncTransforms: 1
28 | m_AlwaysShowColliders: 0
29 | m_ShowColliderSleep: 1
30 | m_ShowColliderContacts: 0
31 | m_ShowColliderAABB: 0
32 | m_ContactArrowScale: 0.2
33 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
34 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
35 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
36 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
37 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
38 |
--------------------------------------------------------------------------------
/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.ide.rider": "3.0.24",
6 | "com.unity.ide.visualstudio": "2.0.18",
7 | "com.unity.ugui": "1.0.0",
8 | "com.unity.modules.ai": "1.0.0",
9 | "com.unity.modules.androidjni": "1.0.0",
10 | "com.unity.modules.animation": "1.0.0",
11 | "com.unity.modules.assetbundle": "1.0.0",
12 | "com.unity.modules.audio": "1.0.0",
13 | "com.unity.modules.cloth": "1.0.0",
14 | "com.unity.modules.director": "1.0.0",
15 | "com.unity.modules.imageconversion": "1.0.0",
16 | "com.unity.modules.imgui": "1.0.0",
17 | "com.unity.modules.jsonserialize": "1.0.0",
18 | "com.unity.modules.particlesystem": "1.0.0",
19 | "com.unity.modules.physics": "1.0.0",
20 | "com.unity.modules.physics2d": "1.0.0",
21 | "com.unity.modules.screencapture": "1.0.0",
22 | "com.unity.modules.terrain": "1.0.0",
23 | "com.unity.modules.terrainphysics": "1.0.0",
24 | "com.unity.modules.tilemap": "1.0.0",
25 | "com.unity.modules.ui": "1.0.0",
26 | "com.unity.modules.uielements": "1.0.0",
27 | "com.unity.modules.umbra": "1.0.0",
28 | "com.unity.modules.unityanalytics": "1.0.0",
29 | "com.unity.modules.unitywebrequest": "1.0.0",
30 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
31 | "com.unity.modules.unitywebrequestaudio": "1.0.0",
32 | "com.unity.modules.unitywebrequesttexture": "1.0.0",
33 | "com.unity.modules.unitywebrequestwww": "1.0.0",
34 | "com.unity.modules.vehicles": "1.0.0",
35 | "com.unity.modules.video": "1.0.0",
36 | "com.unity.modules.vr": "1.0.0",
37 | "com.unity.modules.wind": "1.0.0",
38 | "com.unity.modules.xr": "1.0.0"
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/Singleton.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | namespace ExtraTools
4 | {
5 | public abstract class Singleton : MonoBehaviour where T : Singleton
6 | {
7 | private bool _isQuitting = false;
8 | private static T _instance = null;
9 | public static T Instance
10 | {
11 | get
12 | {
13 | // Instance required for the first time, we look for it
14 | if (_instance != null) return _instance;
15 | _instance = FindObjectOfType(typeof(T)) as T;
16 |
17 | // Object not found, we create a temporary one
18 | if (_instance != null) return _instance;
19 | Debug.LogWarning($"No instance of {typeof(T)}, a temporary one is created.");
20 | _instance = new GameObject($"Temp Instance of {typeof(T)}", typeof(T)).GetComponent();
21 |
22 | // Problem during the creation, this should not happen
23 | if (_instance == null)
24 | Debug.LogError($"Problem during the creation of {typeof(T)}");
25 | return _instance;
26 | }
27 | }
28 |
29 | // If no other monobehaviour request the instance in an awake function
30 | // executing before this one, no need to search the object.
31 | private void Awake()
32 | {
33 | if (_instance) return;
34 | _instance = this as T;
35 | _instance.Init();
36 | }
37 |
38 | // This function is called when the instance is used the first time
39 | // Put all the initializations you need here, as you would do in Awake
40 | public virtual void Init() {}
41 |
42 | private void OnApplicationQuit()
43 | {
44 | _isQuitting = true;
45 | }
46 |
47 | // Make sure the instance isn't referenced anymore when the object is destroyed
48 | protected virtual void OnDestroy()
49 | {
50 | if (!_isQuitting && _instance == this)
51 | _instance = null;
52 | }
53 | }
54 | }
--------------------------------------------------------------------------------
/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: 56530451540d5d0e0b0d5e27472207441516407979717536792c1b60bbb0633d
10 | flags: 0
11 | RecentlyUsedSceneGuid-1:
12 | value: 0204070357035a0c555b5e72157007444316487a7c7172637d704b67b0e4356f
13 | flags: 0
14 | RecentlyUsedSceneGuid-2:
15 | value: 5557510754075a0f5c0d557613705d4414151c297d7125662c2b4462e3e2666c
16 | flags: 0
17 | RecentlyUsedScenePath-0:
18 | value: 224247031146466f081d186d23205a1e1304571e293b32050467083debf42d
19 | flags: 0
20 | RecentlyUsedScenePath-1:
21 | value: 224247031146466f081d186d23205a1e1304571e293b3211382d143cd2ec3521e7f578fce9332b25
22 | flags: 0
23 | RecentlyUsedScenePath-2:
24 | value: 224247031146467e151a1e23242c501c05582c2f3f3c69032e2c1336f1af003df1f303c0a92f31352d1b
25 | flags: 0
26 | RecentlyUsedScenePath-3:
27 | value: 224247031146467e151a1e23242c501c05582c2f3f3c69032e2c1336f1af003df1f317fce333300c3503f63916701431fb1e10
28 | flags: 0
29 | RecentlyUsedScenePath-4:
30 | value: 224247031146467e151a1e23242c501c05582c2f3f3c69032e2c1336f1af003df1f304ecf4352a2e3a07c23d0a3f063ae0441c05ff1f13
31 | flags: 0
32 | vcSharedLogLevel:
33 | value: 0d5e400f0650
34 | flags: 0
35 | m_VCAutomaticAdd: 1
36 | m_VCDebugCom: 0
37 | m_VCDebugCmd: 0
38 | m_VCDebugOut: 0
39 | m_SemanticMergeMode: 2
40 | m_DesiredImportWorkerCount: 2
41 | m_StandbyImportWorkerCount: 2
42 | m_IdleImportWorkerShutdownDelay: 60000
43 | m_VCShowFailedCheckout: 1
44 | m_VCOverwriteFailedCheckoutAssets: 1
45 | m_VCProjectOverlayIcons: 1
46 | m_VCHierarchyOverlayIcons: 1
47 | m_VCOtherOverlayIcons: 1
48 | m_VCAllowAsyncUpdate: 1
49 | m_ArtifactGarbageCollection: 1
50 |
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/DemoPropertyBlocks.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics;
2 | using UnityEngine;
3 | using Debug = UnityEngine.Debug;
4 |
5 | namespace ExtraTools.Test.Scripts
6 | {
7 | public class DemoPropertyBlocks : MonoBehaviour
8 | {
9 | [SerializeField] private Renderer[] renderers;
10 |
11 | private static readonly int colorHash = Shader.PropertyToID("_Color");
12 | private const string colorName = "_Color";
13 |
14 | private void Update()
15 | {
16 | if (Input.GetKeyDown(KeyCode.Space))
17 | {
18 | ChangeColor();
19 | }
20 |
21 | if (Input.GetKeyDown(KeyCode.Alpha1))
22 | {
23 | Stopwatch stopwatch = new Stopwatch();
24 | stopwatch.Start();
25 |
26 | for (var i = 0; i < 100000; i++)
27 | {
28 | ChangeColorsHash();
29 | }
30 |
31 | stopwatch.Stop();
32 | Debug.Log(
33 | $"It took {stopwatch.Elapsed.Milliseconds.ToString()}ms to change color of {renderers.Length.ToString()} 100000 times using hash.");
34 | }
35 |
36 | if (Input.GetKeyDown(KeyCode.Alpha2))
37 | {
38 | Stopwatch stopwatch = new Stopwatch();
39 | stopwatch.Start();
40 |
41 | for (var i = 0; i < 100000; i++)
42 | {
43 | ChangeColorsString();
44 | }
45 |
46 | stopwatch.Stop();
47 | Debug.Log(
48 | $"It took {stopwatch.Elapsed.Milliseconds.ToString()}ms to change color of {renderers.Length.ToString()} 100000 times using string.");
49 | }
50 | }
51 |
52 | private void ChangeColor()
53 | {
54 | foreach (Renderer rend in renderers)
55 | {
56 | rend.SetProperty(colorHash, Random.ColorHSV());
57 | }
58 | }
59 |
60 | private void ChangeColorsHash()
61 | {
62 | foreach (Renderer rend in renderers)
63 | {
64 | rend.SetProperty(colorHash, Color.grey);
65 | }
66 | }
67 |
68 | private void ChangeColorsString()
69 | {
70 | foreach (Renderer rend in renderers)
71 | {
72 | rend.SetProperty(colorName, Color.grey);
73 | }
74 | }
75 | }
76 | }
--------------------------------------------------------------------------------
/Assets/Demo/Scripts/DemoAudioPlayer.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using UnityEngine.UI;
3 |
4 | namespace ExtraTools.Test.Scripts
5 | {
6 | public class DemoAudioPlayer : MonoBehaviour
7 | {
8 | [SerializeField] private AudioClip[] clips;
9 | [SerializeField] private AudioClip[] music;
10 | [SerializeField] private Button playRandomSound;
11 | [SerializeField] private Button changeMusic;
12 | [SerializeField] private Toggle playPauseMusic;
13 | [SerializeField] private Slider masterSound;
14 | [SerializeField] private Slider musicSound;
15 | [SerializeField] private Slider sfxSound;
16 |
17 | [SerializeField] private string masterLabel = "MasterVolume";
18 | [SerializeField] private string musicLabel = "MusicVolume";
19 | [SerializeField] private string sfxLabel = "SFXVolume";
20 |
21 | private void Awake()
22 | {
23 | playRandomSound.onClick.AddListener(OnPlayRandom);
24 | playPauseMusic.onValueChanged.AddListener(OnPlayMusic);
25 | changeMusic.onClick.AddListener(OnChangeMusic);
26 | masterSound.onValueChanged.AddListener(OnSetMaster);
27 | musicSound.onValueChanged.AddListener(OnSetMusic);
28 | sfxSound.onValueChanged.AddListener(OnSetSFX);
29 | }
30 |
31 | private void OnSetMaster(float val)
32 | {
33 | AudioPlayer.SetVolume(masterLabel, val, true);
34 | }
35 |
36 | private void OnSetMusic(float val)
37 | {
38 | AudioPlayer.SetVolume(musicLabel, val, true);
39 | }
40 |
41 | private void OnSetSFX(float val)
42 | {
43 | AudioPlayer.SetVolume(sfxLabel, val, true);
44 | }
45 |
46 | private void OnChangeMusic()
47 | {
48 | AudioPlayer.PlayMusic(music[Random.Range(0, music.Length)], musicLabel);
49 | }
50 |
51 | private void OnPlayMusic(bool val)
52 | {
53 | if (val)
54 | {
55 | AudioPlayer.PlayMusic(music[0], musicLabel, 1);
56 | return;
57 | }
58 |
59 | AudioPlayer.StopMusic(musicLabel);
60 | }
61 |
62 | private void OnPlayRandom()
63 | {
64 | AudioPlayer.PlayOneShot(clips[Random.Range(0, clips.Length)]);
65 | }
66 | }
67 | }
--------------------------------------------------------------------------------
/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 | m_PreloadedShaders: []
39 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
40 | type: 0}
41 | m_CustomRenderPipeline: {fileID: 0}
42 | m_TransparencySortMode: 0
43 | m_TransparencySortAxis: {x: 0, y: 0, z: 1}
44 | m_DefaultRenderingPath: 1
45 | m_DefaultMobileRenderingPath: 1
46 | m_TierSettings: []
47 | m_LightmapStripping: 0
48 | m_FogStripping: 0
49 | m_InstancingStripping: 0
50 | m_LightmapKeepPlain: 1
51 | m_LightmapKeepDirCombined: 1
52 | m_LightmapKeepDynamicPlain: 1
53 | m_LightmapKeepDynamicDirCombined: 1
54 | m_LightmapKeepShadowMask: 1
55 | m_LightmapKeepSubtractive: 1
56 | m_FogKeepLinear: 1
57 | m_FogKeepExp: 1
58 | m_FogKeepExp2: 1
59 | m_AlbedoSwatchInfos: []
60 | m_LightsUseLinearIntensity: 0
61 | m_LightsUseColorTemperature: 0
62 |
--------------------------------------------------------------------------------
/Assets/Demo/Materials/TestingPropertyBlocks.mat:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!21 &2100000
4 | Material:
5 | serializedVersion: 6
6 | m_ObjectHideFlags: 0
7 | m_CorrespondingSourceObject: {fileID: 0}
8 | m_PrefabInstance: {fileID: 0}
9 | m_PrefabAsset: {fileID: 0}
10 | m_Name: TestingPropertyBlocks
11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
12 | m_ShaderKeywords:
13 | m_LightmapFlags: 4
14 | m_EnableInstancingVariants: 0
15 | m_DoubleSidedGI: 0
16 | m_CustomRenderQueue: -1
17 | stringTagMap: {}
18 | disabledShaderPasses: []
19 | m_SavedProperties:
20 | serializedVersion: 3
21 | m_TexEnvs:
22 | - _BumpMap:
23 | m_Texture: {fileID: 0}
24 | m_Scale: {x: 1, y: 1}
25 | m_Offset: {x: 0, y: 0}
26 | - _DetailAlbedoMap:
27 | m_Texture: {fileID: 0}
28 | m_Scale: {x: 1, y: 1}
29 | m_Offset: {x: 0, y: 0}
30 | - _DetailMask:
31 | m_Texture: {fileID: 0}
32 | m_Scale: {x: 1, y: 1}
33 | m_Offset: {x: 0, y: 0}
34 | - _DetailNormalMap:
35 | m_Texture: {fileID: 0}
36 | m_Scale: {x: 1, y: 1}
37 | m_Offset: {x: 0, y: 0}
38 | - _EmissionMap:
39 | m_Texture: {fileID: 0}
40 | m_Scale: {x: 1, y: 1}
41 | m_Offset: {x: 0, y: 0}
42 | - _MainTex:
43 | m_Texture: {fileID: 0}
44 | m_Scale: {x: 1, y: 1}
45 | m_Offset: {x: 0, y: 0}
46 | - _MetallicGlossMap:
47 | m_Texture: {fileID: 0}
48 | m_Scale: {x: 1, y: 1}
49 | m_Offset: {x: 0, y: 0}
50 | - _OcclusionMap:
51 | m_Texture: {fileID: 0}
52 | m_Scale: {x: 1, y: 1}
53 | m_Offset: {x: 0, y: 0}
54 | - _ParallaxMap:
55 | m_Texture: {fileID: 0}
56 | m_Scale: {x: 1, y: 1}
57 | m_Offset: {x: 0, y: 0}
58 | m_Floats:
59 | - _BumpScale: 1
60 | - _Cutoff: 0.5
61 | - _DetailNormalMapScale: 1
62 | - _DstBlend: 0
63 | - _GlossMapScale: 1
64 | - _Glossiness: 0.5
65 | - _GlossyReflections: 1
66 | - _Metallic: 0
67 | - _Mode: 0
68 | - _OcclusionStrength: 1
69 | - _Parallax: 0.02
70 | - _SmoothnessTextureChannel: 0
71 | - _SpecularHighlights: 1
72 | - _SrcBlend: 1
73 | - _UVSec: 0
74 | - _ZWrite: 1
75 | m_Colors:
76 | - _Color: {r: 1, g: 1, b: 1, a: 1}
77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
78 | m_BuildTextureStacks: []
79 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/Editor/EditorUtils.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.IO;
3 | using System.Reflection;
4 | using UnityEditor;
5 |
6 | namespace ExtraTools.Editor
7 | {
8 | public static class EditorUtils
9 | {
10 | ///
11 | /// Credit goes to FreCre (https://assetstore.unity.com/publishers/7617).
12 | /// Stumbled across this shortcut on twitter and decided to add
13 | /// to the Extra Tools. The original free asset package created by FreCre can be
14 | /// downloaded from the Asset Store: https://assetstore.unity.com/packages/tools/easyshortcutlockinspector-23579
15 | ///
16 | [MenuItem("Extra Tools/Toggle Inspector Lock %l")]
17 | private static void ToggleInspectorLock()
18 | {
19 | ActiveEditorTracker.sharedTracker.isLocked = !ActiveEditorTracker.sharedTracker.isLocked;
20 | ActiveEditorTracker.sharedTracker.ForceRebuild();
21 | }
22 |
23 | ///
24 | /// Credit goes to KirillKuzyk from answers.unity.com.
25 | /// Got this from here: https://answers.unity.com/questions/707636/clear-console-window.html
26 | /// For more information about MenuItem see documentation: https://docs.unity3d.com/ScriptReference/MenuItem.html
27 | ///
28 | [MenuItem("Extra Tools/Clear Console %q")] // CTRL + Q
29 | private static void ClearConsole()
30 | {
31 | var assembly = Assembly.GetAssembly(typeof(SceneView));
32 | var type = assembly.GetType("UnityEditor.LogEntries");
33 | var method = type.GetMethod("Clear");
34 | method?.Invoke(new object(), null);
35 | }
36 |
37 | ///
38 | /// Credit goes to coeing from answers.unity.com
39 | /// Got this from here: https://answers.unity.com/questions/43422/how-to-implement-show-in-explorer.html
40 | /// PS: A similar function was added to the Shortcut editor in the 2019.1. Still, this
41 | /// can be used to open a specific folder (or an asset), not the one you clicked on in the Projects tab
42 | ///
43 | [MenuItem("Extra Tools/Open Project Folder %e")] // CTRL + E
44 | public static void ShowExplorer()
45 | {
46 | var path = Directory.GetParent(Application.dataPath).FullName;
47 | EditorUtility.RevealInFinder(path);
48 | }
49 |
50 | public static object GetValue(this SerializedProperty property)
51 | {
52 | object obj = property.serializedObject.targetObject;
53 | var type = obj.GetType();
54 | var field = type.GetField(property.propertyPath,
55 | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
56 | return field?.GetValue(obj);
57 | }
58 | }
59 | }
--------------------------------------------------------------------------------
/Logs/Packages-Update.log:
--------------------------------------------------------------------------------
1 |
2 | === Sun Feb 24 14:22:15 2019
3 |
4 | Packages were changed.
5 | Update Mode: updateDependencies
6 |
7 | The following packages were added:
8 | com.unity.collab-proxy@1.2.15
9 | com.unity.timeline@1.0.0
10 | com.unity.xr.legacyinputhelpers@1.0.0
11 | The following packages were updated:
12 | com.unity.analytics from version 2.0.16 to 3.3.2
13 | com.unity.package-manager-ui from version 1.9.11 to 2.1.1
14 | com.unity.textmeshpro from version 1.2.4 to 1.3.0
15 |
16 | === Wed Apr 17 08:06:59 2019
17 |
18 | Packages were changed.
19 | Update Mode: updateDependencies
20 |
21 | The following packages were updated:
22 | com.unity.package-manager-ui from version 2.1.1 to 2.1.2
23 |
24 | === Mon Jun 24 18:28:58 2019
25 |
26 | Packages were changed.
27 | Update Mode: updateDependencies
28 |
29 | The following packages were added:
30 | com.unity.2d.tilemap@1.0.0
31 | com.unity.ext.nunit@1.0.0
32 | com.unity.test-framework@1.0.13
33 | com.unity.2d.sprite@1.0.0
34 | com.unity.ide.vscode@1.0.7
35 | com.unity.ide.visualstudio@1.0.11
36 | com.unity.ide.rider@1.0.8
37 | com.unity.ugui@1.0.0
38 | com.unity.modules.androidjni@1.0.0
39 | The following packages were removed:
40 | com.unity.package-manager-ui@2.1.2
41 |
42 | === Sat May 23 20:52:30 2020
43 |
44 | Packages were changed.
45 | Update Mode: updateDependencies
46 |
47 | The following packages were updated:
48 | com.unity.ide.rider from version 1.0.8 to 2.0.2
49 | com.unity.ide.visualstudio from version 1.0.11 to 2.0.1
50 | com.unity.ide.vscode from version 1.0.7 to 1.2.0
51 | com.unity.test-framework from version 1.0.13 to 1.1.14
52 |
53 | === Fri Aug 27 21:11:33 2021
54 |
55 | Packages were changed.
56 | Update Mode: updateDependencies
57 |
58 | The following packages were updated:
59 | com.unity.ext.nunit from version 1.0.0 to 1.0.6
60 | com.unity.ide.rider from version 2.0.2 to 2.0.7
61 | com.unity.ide.visualstudio from version 2.0.1 to 2.0.11
62 | com.unity.ide.vscode from version 1.2.0 to 1.2.3
63 | com.unity.test-framework from version 1.1.14 to 1.1.27
64 |
65 | === Sat Apr 30 13:20:09 2022
66 |
67 | Packages were changed.
68 | Update Mode: updateDependencies
69 |
70 | The following packages were updated:
71 | com.unity.ide.rider from version 2.0.7 to 3.0.13
72 | com.unity.ide.visualstudio from version 2.0.11 to 2.0.14
73 |
74 | === Sun Jun 18 16:12:02 2023
75 |
76 | Packages were changed.
77 | Update Mode: updateDependencies
78 |
79 | The following packages were added:
80 | com.unity.ai.navigation@1.1.3
81 | The following packages were updated:
82 | com.unity.ide.rider from version 3.0.14 to 3.0.21
83 | com.unity.ide.visualstudio from version 2.0.15 to 2.0.18
84 |
--------------------------------------------------------------------------------
/Assets/Demo/Prefabs/TestCube.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1 &4353797899273688399
4 | GameObject:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | serializedVersion: 6
10 | m_Component:
11 | - component: {fileID: 337319846980575628}
12 | - component: {fileID: 8367226835295291672}
13 | - component: {fileID: 6848083973933869435}
14 | - component: {fileID: 8405070257433273816}
15 | - component: {fileID: -6712226621883921198}
16 | m_Layer: 0
17 | m_Name: TestCube
18 | m_TagString: Untagged
19 | m_Icon: {fileID: 0}
20 | m_NavMeshLayer: 0
21 | m_StaticEditorFlags: 0
22 | m_IsActive: 1
23 | --- !u!4 &337319846980575628
24 | Transform:
25 | m_ObjectHideFlags: 0
26 | m_CorrespondingSourceObject: {fileID: 0}
27 | m_PrefabInstance: {fileID: 0}
28 | m_PrefabAsset: {fileID: 0}
29 | m_GameObject: {fileID: 4353797899273688399}
30 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
31 | m_LocalPosition: {x: 0, y: 0, z: 0}
32 | m_LocalScale: {x: 1, y: 1, z: 1}
33 | m_Children: []
34 | m_Father: {fileID: 0}
35 | m_RootOrder: 0
36 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
37 | --- !u!33 &8367226835295291672
38 | MeshFilter:
39 | m_ObjectHideFlags: 0
40 | m_CorrespondingSourceObject: {fileID: 0}
41 | m_PrefabInstance: {fileID: 0}
42 | m_PrefabAsset: {fileID: 0}
43 | m_GameObject: {fileID: 4353797899273688399}
44 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
45 | --- !u!23 &6848083973933869435
46 | MeshRenderer:
47 | m_ObjectHideFlags: 0
48 | m_CorrespondingSourceObject: {fileID: 0}
49 | m_PrefabInstance: {fileID: 0}
50 | m_PrefabAsset: {fileID: 0}
51 | m_GameObject: {fileID: 4353797899273688399}
52 | m_Enabled: 1
53 | m_CastShadows: 1
54 | m_ReceiveShadows: 1
55 | m_DynamicOccludee: 1
56 | m_MotionVectors: 1
57 | m_LightProbeUsage: 1
58 | m_ReflectionProbeUsage: 1
59 | m_RenderingLayerMask: 1
60 | m_RendererPriority: 0
61 | m_Materials:
62 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
63 | m_StaticBatchInfo:
64 | firstSubMesh: 0
65 | subMeshCount: 0
66 | m_StaticBatchRoot: {fileID: 0}
67 | m_ProbeAnchor: {fileID: 0}
68 | m_LightProbeVolumeOverride: {fileID: 0}
69 | m_ScaleInLightmap: 1
70 | m_PreserveUVs: 0
71 | m_IgnoreNormalsForChartDetection: 0
72 | m_ImportantGI: 0
73 | m_StitchLightmapSeams: 1
74 | m_SelectedEditorRenderState: 3
75 | m_MinimumChartSize: 4
76 | m_AutoUVMaxDistance: 0.5
77 | m_AutoUVMaxAngle: 89
78 | m_LightmapParameters: {fileID: 0}
79 | m_SortingLayerID: 0
80 | m_SortingLayer: 0
81 | m_SortingOrder: 0
82 | --- !u!65 &8405070257433273816
83 | BoxCollider:
84 | m_ObjectHideFlags: 0
85 | m_CorrespondingSourceObject: {fileID: 0}
86 | m_PrefabInstance: {fileID: 0}
87 | m_PrefabAsset: {fileID: 0}
88 | m_GameObject: {fileID: 4353797899273688399}
89 | m_Material: {fileID: 0}
90 | m_IsTrigger: 0
91 | m_Enabled: 1
92 | serializedVersion: 2
93 | m_Size: {x: 1, y: 1, z: 1}
94 | m_Center: {x: 0, y: 0, z: 0}
95 | --- !u!114 &-6712226621883921198
96 | MonoBehaviour:
97 | m_ObjectHideFlags: 0
98 | m_CorrespondingSourceObject: {fileID: 0}
99 | m_PrefabInstance: {fileID: 0}
100 | m_PrefabAsset: {fileID: 0}
101 | m_GameObject: {fileID: 4353797899273688399}
102 | m_Enabled: 1
103 | m_EditorHideFlags: 0
104 | m_Script: {fileID: 11500000, guid: 85f2943ed2a2d904c8c2c80eeeb49213, type: 3}
105 | m_Name:
106 | m_EditorClassIdentifier:
107 |
--------------------------------------------------------------------------------
/Assets/ExtraTools/Resources/ExtraTools/Mixer.mixer:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!241 &24100000
4 | AudioMixerController:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_Name: Mixer
10 | m_OutputGroup: {fileID: 0}
11 | m_MasterGroup: {fileID: 24300002}
12 | m_Snapshots:
13 | - {fileID: 24500006}
14 | m_StartSnapshot: {fileID: 24500006}
15 | m_SuspendThreshold: -80
16 | m_EnableSuspend: 1
17 | m_UpdateMode: 0
18 | m_ExposedParameters:
19 | - guid: f62a8af6308fa7444b27ded4615b866c
20 | name: MasterVolume
21 | - guid: ea7ed979c97592e4c8e6aaa5e29f1e6b
22 | name: MusicVolume
23 | - guid: 325210bfcafb3a948922dfc6a73bf068
24 | name: SFXVolume
25 | m_AudioMixerGroupViews:
26 | - guids:
27 | - 3406c524abe145d4482948aa07c46aa7
28 | - fd822e8bebd76b648aaa43edcb3a1271
29 | - 90fd9d5ce39638b4fa0d280fb7945cf5
30 | name: View
31 | m_CurrentViewIndex: 0
32 | m_TargetSnapshot: {fileID: 24500006}
33 | --- !u!243 &24300002
34 | AudioMixerGroupController:
35 | m_ObjectHideFlags: 0
36 | m_CorrespondingSourceObject: {fileID: 0}
37 | m_PrefabInstance: {fileID: 0}
38 | m_PrefabAsset: {fileID: 0}
39 | m_Name: Master
40 | m_AudioMixer: {fileID: 24100000}
41 | m_GroupID: 3406c524abe145d4482948aa07c46aa7
42 | m_Children:
43 | - {fileID: 8314313559591733837}
44 | - {fileID: 4587640204501386488}
45 | m_Volume: f62a8af6308fa7444b27ded4615b866c
46 | m_Pitch: 4982a33fad3094c4fa21822da31e29b7
47 | m_Send: 00000000000000000000000000000000
48 | m_Effects:
49 | - {fileID: 24400004}
50 | m_UserColorIndex: 0
51 | m_Mute: 0
52 | m_Solo: 0
53 | m_BypassEffects: 0
54 | --- !u!244 &24400004
55 | AudioMixerEffectController:
56 | m_ObjectHideFlags: 3
57 | m_CorrespondingSourceObject: {fileID: 0}
58 | m_PrefabInstance: {fileID: 0}
59 | m_PrefabAsset: {fileID: 0}
60 | m_Name:
61 | m_EffectID: 7b604275167013042b3b21413bf7561a
62 | m_EffectName: Attenuation
63 | m_MixLevel: 85f4791360eaeae45b6c2596ddd24495
64 | m_Parameters: []
65 | m_SendTarget: {fileID: 0}
66 | m_EnableWetMix: 0
67 | m_Bypass: 0
68 | --- !u!245 &24500006
69 | AudioMixerSnapshotController:
70 | m_ObjectHideFlags: 0
71 | m_CorrespondingSourceObject: {fileID: 0}
72 | m_PrefabInstance: {fileID: 0}
73 | m_PrefabAsset: {fileID: 0}
74 | m_Name: Snapshot
75 | m_AudioMixer: {fileID: 24100000}
76 | m_SnapshotID: 73592c4f78a610c47a939b4f2ecbe4e3
77 | m_FloatValues: {}
78 | m_TransitionOverrides: {}
79 | --- !u!244 &1572475566433818420
80 | AudioMixerEffectController:
81 | m_ObjectHideFlags: 3
82 | m_CorrespondingSourceObject: {fileID: 0}
83 | m_PrefabInstance: {fileID: 0}
84 | m_PrefabAsset: {fileID: 0}
85 | m_Name:
86 | m_EffectID: 6e23bcb916237df43bc636b1741a5bed
87 | m_EffectName: Attenuation
88 | m_MixLevel: ae4e3c0d8959cb447804d0da0f37e3e9
89 | m_Parameters: []
90 | m_SendTarget: {fileID: 0}
91 | m_EnableWetMix: 0
92 | m_Bypass: 0
93 | --- !u!243 &4587640204501386488
94 | AudioMixerGroupController:
95 | m_ObjectHideFlags: 0
96 | m_CorrespondingSourceObject: {fileID: 0}
97 | m_PrefabInstance: {fileID: 0}
98 | m_PrefabAsset: {fileID: 0}
99 | m_Name: SFX
100 | m_AudioMixer: {fileID: 24100000}
101 | m_GroupID: 90fd9d5ce39638b4fa0d280fb7945cf5
102 | m_Children: []
103 | m_Volume: 325210bfcafb3a948922dfc6a73bf068
104 | m_Pitch: 76609db8a42a1bd40a189dd9df62e609
105 | m_Send: 00000000000000000000000000000000
106 | m_Effects:
107 | - {fileID: 7615172874682258797}
108 | m_UserColorIndex: 0
109 | m_Mute: 0
110 | m_Solo: 0
111 | m_BypassEffects: 0
112 | --- !u!244 &7615172874682258797
113 | AudioMixerEffectController:
114 | m_ObjectHideFlags: 3
115 | m_CorrespondingSourceObject: {fileID: 0}
116 | m_PrefabInstance: {fileID: 0}
117 | m_PrefabAsset: {fileID: 0}
118 | m_Name:
119 | m_EffectID: a45a0b206f0ef5a4fbecef8b66339e49
120 | m_EffectName: Attenuation
121 | m_MixLevel: 3e97a15c8929f2448aa18062e9ea2dc3
122 | m_Parameters: []
123 | m_SendTarget: {fileID: 0}
124 | m_EnableWetMix: 0
125 | m_Bypass: 0
126 | --- !u!243 &8314313559591733837
127 | AudioMixerGroupController:
128 | m_ObjectHideFlags: 0
129 | m_CorrespondingSourceObject: {fileID: 0}
130 | m_PrefabInstance: {fileID: 0}
131 | m_PrefabAsset: {fileID: 0}
132 | m_Name: Music
133 | m_AudioMixer: {fileID: 24100000}
134 | m_GroupID: fd822e8bebd76b648aaa43edcb3a1271
135 | m_Children: []
136 | m_Volume: ea7ed979c97592e4c8e6aaa5e29f1e6b
137 | m_Pitch: d9a3513f6e7a6e84b8e4517653177a7b
138 | m_Send: 00000000000000000000000000000000
139 | m_Effects:
140 | - {fileID: 1572475566433818420}
141 | m_UserColorIndex: 0
142 | m_Mute: 0
143 | m_Solo: 0
144 | m_BypassEffects: 0
145 |
--------------------------------------------------------------------------------
/Assets/Demo/Scenes/DemoStrings.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: 0
28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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.37311953, g: 0.38074014, b: 0.3587274, 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: 1
55 | m_EnableRealtimeLightmaps: 0
56 | m_LightmapEditorSettings:
57 | serializedVersion: 12
58 | m_Resolution: 2
59 | m_BakeResolution: 40
60 | m_AtlasSize: 1024
61 | m_AO: 0
62 | m_AOMaxDistance: 1
63 | m_CompAOExponent: 1
64 | m_CompAOExponentDirect: 0
65 | m_ExtractAmbientOcclusion: 0
66 | m_Padding: 2
67 | m_LightmapParameters: {fileID: 0}
68 | m_LightmapsBakeMode: 1
69 | m_TextureCompression: 1
70 | m_FinalGather: 0
71 | m_FinalGatherFiltering: 1
72 | m_FinalGatherRayCount: 256
73 | m_ReflectionCompression: 2
74 | m_MixedBakeMode: 2
75 | m_BakeBackend: 1
76 | m_PVRSampling: 1
77 | m_PVRDirectSampleCount: 32
78 | m_PVRSampleCount: 512
79 | m_PVRBounces: 2
80 | m_PVREnvironmentSampleCount: 256
81 | m_PVREnvironmentReferencePointCount: 2048
82 | m_PVRFilteringMode: 1
83 | m_PVRDenoiserTypeDirect: 1
84 | m_PVRDenoiserTypeIndirect: 1
85 | m_PVRDenoiserTypeAO: 1
86 | m_PVRFilterTypeDirect: 0
87 | m_PVRFilterTypeIndirect: 0
88 | m_PVRFilterTypeAO: 0
89 | m_PVREnvironmentMIS: 1
90 | m_PVRCulling: 1
91 | m_PVRFilteringGaussRadiusDirect: 1
92 | m_PVRFilteringGaussRadiusIndirect: 5
93 | m_PVRFilteringGaussRadiusAO: 2
94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
96 | m_PVRFilteringAtrousPositionSigmaAO: 1
97 | m_ExportTrainingData: 0
98 | m_TrainingDataDestination: TrainingData
99 | m_LightProbeSampleCountMultiplier: 4
100 | m_LightingDataAsset: {fileID: 0}
101 | m_LightingSettings: {fileID: 0}
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 &1803429224
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: 1803429226}
135 | - component: {fileID: 1803429225}
136 | m_Layer: 0
137 | m_Name: StringTest
138 | m_TagString: Untagged
139 | m_Icon: {fileID: 0}
140 | m_NavMeshLayer: 0
141 | m_StaticEditorFlags: 0
142 | m_IsActive: 1
143 | --- !u!114 &1803429225
144 | MonoBehaviour:
145 | m_ObjectHideFlags: 0
146 | m_CorrespondingSourceObject: {fileID: 0}
147 | m_PrefabInstance: {fileID: 0}
148 | m_PrefabAsset: {fileID: 0}
149 | m_GameObject: {fileID: 1803429224}
150 | m_Enabled: 1
151 | m_EditorHideFlags: 0
152 | m_Script: {fileID: 11500000, guid: b7d76bddd8e044c4a924186dffff5053, type: 3}
153 | m_Name:
154 | m_EditorClassIdentifier:
155 | testString:
156 | stringToFormat: 'First parameter: {0}, second parameter: {1}'
157 | parameters:
158 | - 123
159 | - asd
160 | --- !u!4 &1803429226
161 | Transform:
162 | m_ObjectHideFlags: 0
163 | m_CorrespondingSourceObject: {fileID: 0}
164 | m_PrefabInstance: {fileID: 0}
165 | m_PrefabAsset: {fileID: 0}
166 | m_GameObject: {fileID: 1803429224}
167 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
168 | m_LocalPosition: {x: 0, y: 0, z: 0}
169 | m_LocalScale: {x: 1, y: 1, z: 1}
170 | m_ConstrainProportionsScale: 0
171 | m_Children: []
172 | m_Father: {fileID: 0}
173 | m_RootOrder: 0
174 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
175 |
--------------------------------------------------------------------------------
/Assets/Demo/Scenes/DemoRandomItem.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: 0
28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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.37311953, g: 0.38074014, b: 0.3587274, 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: 1
55 | m_EnableRealtimeLightmaps: 0
56 | m_LightmapEditorSettings:
57 | serializedVersion: 12
58 | m_Resolution: 2
59 | m_BakeResolution: 40
60 | m_AtlasSize: 1024
61 | m_AO: 0
62 | m_AOMaxDistance: 1
63 | m_CompAOExponent: 1
64 | m_CompAOExponentDirect: 0
65 | m_ExtractAmbientOcclusion: 0
66 | m_Padding: 2
67 | m_LightmapParameters: {fileID: 0}
68 | m_LightmapsBakeMode: 1
69 | m_TextureCompression: 1
70 | m_FinalGather: 0
71 | m_FinalGatherFiltering: 1
72 | m_FinalGatherRayCount: 256
73 | m_ReflectionCompression: 2
74 | m_MixedBakeMode: 2
75 | m_BakeBackend: 1
76 | m_PVRSampling: 1
77 | m_PVRDirectSampleCount: 32
78 | m_PVRSampleCount: 512
79 | m_PVRBounces: 2
80 | m_PVREnvironmentSampleCount: 256
81 | m_PVREnvironmentReferencePointCount: 2048
82 | m_PVRFilteringMode: 1
83 | m_PVRDenoiserTypeDirect: 1
84 | m_PVRDenoiserTypeIndirect: 1
85 | m_PVRDenoiserTypeAO: 1
86 | m_PVRFilterTypeDirect: 0
87 | m_PVRFilterTypeIndirect: 0
88 | m_PVRFilterTypeAO: 0
89 | m_PVREnvironmentMIS: 1
90 | m_PVRCulling: 1
91 | m_PVRFilteringGaussRadiusDirect: 1
92 | m_PVRFilteringGaussRadiusIndirect: 5
93 | m_PVRFilteringGaussRadiusAO: 2
94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
96 | m_PVRFilteringAtrousPositionSigmaAO: 1
97 | m_ExportTrainingData: 0
98 | m_TrainingDataDestination: TrainingData
99 | m_LightProbeSampleCountMultiplier: 4
100 | m_LightingDataAsset: {fileID: 0}
101 | m_LightingSettings: {fileID: 0}
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 &1967933257
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: 1967933259}
135 | - component: {fileID: 1967933258}
136 | m_Layer: 0
137 | m_Name: TestRandomItem
138 | m_TagString: Untagged
139 | m_Icon: {fileID: 0}
140 | m_NavMeshLayer: 0
141 | m_StaticEditorFlags: 0
142 | m_IsActive: 1
143 | --- !u!114 &1967933258
144 | MonoBehaviour:
145 | m_ObjectHideFlags: 0
146 | m_CorrespondingSourceObject: {fileID: 0}
147 | m_PrefabInstance: {fileID: 0}
148 | m_PrefabAsset: {fileID: 0}
149 | m_GameObject: {fileID: 1967933257}
150 | m_Enabled: 1
151 | m_EditorHideFlags: 0
152 | m_Script: {fileID: 11500000, guid: adbc53c381f043efa8bccf592a3ce46c, type: 3}
153 | m_Name:
154 | m_EditorClassIdentifier:
155 | strings:
156 | - One
157 | - Two
158 | - Three
159 | - Four
160 | - Five
161 | floats:
162 | - 1
163 | - 2
164 | - 3
165 | - 4
166 | - 5
167 | transforms: []
168 | --- !u!4 &1967933259
169 | Transform:
170 | m_ObjectHideFlags: 0
171 | m_CorrespondingSourceObject: {fileID: 0}
172 | m_PrefabInstance: {fileID: 0}
173 | m_PrefabAsset: {fileID: 0}
174 | m_GameObject: {fileID: 1967933257}
175 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
176 | m_LocalPosition: {x: 0, y: 0, z: 0}
177 | m_LocalScale: {x: 1, y: 1, z: 1}
178 | m_Children: []
179 | m_Father: {fileID: 0}
180 | m_RootOrder: 0
181 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
182 |
--------------------------------------------------------------------------------
/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: 4
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: 4
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: 4
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: 4
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: 4
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: 4
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 |
--------------------------------------------------------------------------------
/ProjectSettings/SceneTemplateSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "templatePinStates": [],
3 | "dependencyTypeInfos": [
4 | {
5 | "userAdded": false,
6 | "type": "UnityEngine.AnimationClip",
7 | "ignore": false,
8 | "defaultInstantiationMode": 0,
9 | "supportsModification": true
10 | },
11 | {
12 | "userAdded": false,
13 | "type": "UnityEditor.Animations.AnimatorController",
14 | "ignore": false,
15 | "defaultInstantiationMode": 0,
16 | "supportsModification": true
17 | },
18 | {
19 | "userAdded": false,
20 | "type": "UnityEngine.AnimatorOverrideController",
21 | "ignore": false,
22 | "defaultInstantiationMode": 0,
23 | "supportsModification": true
24 | },
25 | {
26 | "userAdded": false,
27 | "type": "UnityEditor.Audio.AudioMixerController",
28 | "ignore": false,
29 | "defaultInstantiationMode": 0,
30 | "supportsModification": true
31 | },
32 | {
33 | "userAdded": false,
34 | "type": "UnityEngine.ComputeShader",
35 | "ignore": true,
36 | "defaultInstantiationMode": 1,
37 | "supportsModification": true
38 | },
39 | {
40 | "userAdded": false,
41 | "type": "UnityEngine.Cubemap",
42 | "ignore": false,
43 | "defaultInstantiationMode": 0,
44 | "supportsModification": true
45 | },
46 | {
47 | "userAdded": false,
48 | "type": "UnityEngine.GameObject",
49 | "ignore": false,
50 | "defaultInstantiationMode": 0,
51 | "supportsModification": true
52 | },
53 | {
54 | "userAdded": false,
55 | "type": "UnityEditor.LightingDataAsset",
56 | "ignore": false,
57 | "defaultInstantiationMode": 0,
58 | "supportsModification": false
59 | },
60 | {
61 | "userAdded": false,
62 | "type": "UnityEngine.LightingSettings",
63 | "ignore": false,
64 | "defaultInstantiationMode": 0,
65 | "supportsModification": true
66 | },
67 | {
68 | "userAdded": false,
69 | "type": "UnityEngine.Material",
70 | "ignore": false,
71 | "defaultInstantiationMode": 0,
72 | "supportsModification": true
73 | },
74 | {
75 | "userAdded": false,
76 | "type": "UnityEditor.MonoScript",
77 | "ignore": true,
78 | "defaultInstantiationMode": 1,
79 | "supportsModification": true
80 | },
81 | {
82 | "userAdded": false,
83 | "type": "UnityEngine.PhysicMaterial",
84 | "ignore": false,
85 | "defaultInstantiationMode": 0,
86 | "supportsModification": true
87 | },
88 | {
89 | "userAdded": false,
90 | "type": "UnityEngine.PhysicsMaterial2D",
91 | "ignore": false,
92 | "defaultInstantiationMode": 0,
93 | "supportsModification": true
94 | },
95 | {
96 | "userAdded": false,
97 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile",
98 | "ignore": false,
99 | "defaultInstantiationMode": 0,
100 | "supportsModification": true
101 | },
102 | {
103 | "userAdded": false,
104 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources",
105 | "ignore": false,
106 | "defaultInstantiationMode": 0,
107 | "supportsModification": true
108 | },
109 | {
110 | "userAdded": false,
111 | "type": "UnityEngine.Rendering.VolumeProfile",
112 | "ignore": false,
113 | "defaultInstantiationMode": 0,
114 | "supportsModification": true
115 | },
116 | {
117 | "userAdded": false,
118 | "type": "UnityEditor.SceneAsset",
119 | "ignore": false,
120 | "defaultInstantiationMode": 0,
121 | "supportsModification": false
122 | },
123 | {
124 | "userAdded": false,
125 | "type": "UnityEngine.Shader",
126 | "ignore": true,
127 | "defaultInstantiationMode": 1,
128 | "supportsModification": true
129 | },
130 | {
131 | "userAdded": false,
132 | "type": "UnityEngine.ShaderVariantCollection",
133 | "ignore": true,
134 | "defaultInstantiationMode": 1,
135 | "supportsModification": true
136 | },
137 | {
138 | "userAdded": false,
139 | "type": "UnityEngine.Texture",
140 | "ignore": false,
141 | "defaultInstantiationMode": 0,
142 | "supportsModification": true
143 | },
144 | {
145 | "userAdded": false,
146 | "type": "UnityEngine.Texture2D",
147 | "ignore": false,
148 | "defaultInstantiationMode": 0,
149 | "supportsModification": true
150 | },
151 | {
152 | "userAdded": false,
153 | "type": "UnityEngine.Timeline.TimelineAsset",
154 | "ignore": false,
155 | "defaultInstantiationMode": 0,
156 | "supportsModification": true
157 | }
158 | ],
159 | "defaultDependencyTypeInfo": {
160 | "userAdded": false,
161 | "type": "",
162 | "ignore": false,
163 | "defaultInstantiationMode": 1,
164 | "supportsModification": true
165 | },
166 | "newSceneOverride": 0
167 | }
--------------------------------------------------------------------------------
/Assets/ExtraTools/Scripts/PopUp.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEngine.UI;
5 |
6 | namespace ExtraTools
7 | {
8 | public readonly struct MessageButton
9 | {
10 | public readonly string label;
11 | public readonly Action callback;
12 |
13 | public MessageButton(string labelText, Action callbackAction)
14 | {
15 | label = labelText;
16 | callback = callbackAction;
17 | }
18 | }
19 |
20 | public readonly struct Message
21 | {
22 | public readonly Sprite img;
23 | public readonly string message;
24 | public readonly MessageButton[] buttons;
25 |
26 | public Message(string msg, Sprite messageIcon = null, params MessageButton[] messageButtons)
27 | {
28 | message = msg;
29 | img = messageIcon;
30 |
31 | buttons = messageButtons?.Length > 0
32 | ? messageButtons
33 | : new[] { new MessageButton("OK", () => {}) };
34 | }
35 | }
36 |
37 | public class PopUp : MonoBehaviour
38 | {
39 | [SerializeField] private Canvas canvas;
40 | [SerializeField] private Text messageLabel;
41 | [SerializeField] private Image messageImage;
42 | [SerializeField] private Text message;
43 | [SerializeField] private GameObject buttonPrefab;
44 | [SerializeField] private Transform buttonsParent;
45 |
46 | private List