├── .gitignore ├── CONTRIBUTING.md ├── Documentation └── UnityQuery Cheat Sheet.docx ├── FAQ.md ├── LICENSE ├── Media ├── Screenshots │ ├── CheatSheet.png │ ├── HierarchyManipulation.png │ ├── HierarchyQueries.png │ ├── Picking.png │ └── VectorSwizzling.png └── Store Assets │ ├── Background.png │ ├── Facebook.png │ ├── Icon.png │ ├── Key Visual.png │ ├── Key Visual.xcf │ ├── Small.png │ ├── Small.xcf │ ├── Tutorial.txt │ └── UnityQueryLogo.xcf ├── README.md └── Source └── UnityQuery ├── Assets ├── UnityQuery.Tests.meta ├── UnityQuery.Tests │ ├── Editor.meta │ └── Editor │ │ ├── CollectionsTests.cs │ │ ├── CollectionsTests.cs.meta │ │ ├── ColorsTests.cs │ │ ├── ColorsTests.cs.meta │ │ ├── SwizzlingTests.cs │ │ └── SwizzlingTests.cs.meta ├── UnityQuery.meta └── UnityQuery │ ├── Scripts.meta │ ├── Scripts │ ├── Collections.cs │ ├── Collections.cs.meta │ ├── Colors.cs │ ├── Colors.cs.meta │ ├── Components.cs │ ├── Components.cs.meta │ ├── GameObjects.cs │ ├── GameObjects.cs.meta │ ├── Hierarchy.cs │ ├── Hierarchy.cs.meta │ ├── Log.cs │ ├── Log.cs.meta │ ├── Picking.cs │ ├── Picking.cs.meta │ ├── Query.cs │ ├── Query.cs.meta │ ├── QueryExtensions.cs │ ├── QueryExtensions.cs.meta │ ├── Swizzling.cs │ └── Swizzling.cs.meta │ ├── UnityQuery Cheat Sheet.pdf │ └── UnityQuery Cheat Sheet.pdf.meta └── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── Physics2DSettings.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset └── UnityConnectSettings.asset /.gitignore: -------------------------------------------------------------------------------- 1 | [Ll]ibrary/ 2 | [Tt]emp/ 3 | [Oo]bj/ 4 | [Bb]uild/ 5 | 6 | # Autogenerated VS/MD solution and project files 7 | *.csproj 8 | *.unityproj 9 | *.sln 10 | *.suo 11 | *.tmp 12 | *.user 13 | *.userprefs 14 | *.pidb 15 | *.booproj 16 | 17 | # Unity3D generated meta files 18 | *.pidb.meta 19 | 20 | # Unity3D Generated File On Crash Reports 21 | sysinfo.txt 22 | 23 | # Unity 3rd party libraries 24 | UnityTestTools* 25 | UnityVS* 26 | Source/UnityQuery/Assets/AssetStoreTools/ 27 | Source/UnityQuery/Assets/AssetStoreTools.meta 28 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | You'd like to help make UnityQuery even more awesome? Seems like today's our lucky day! In order to maintain stability of the tool and its code base, please adhere to the following steps, and we'll be pleased to include your additions in our next release. 4 | 5 | Note that UnityQuery is distributed under the [MIT License](https://github.com/npruehs/unity-query/blob/master/LICENSE). So will be your code. 6 | 7 | ## Step 1: Choose what to do 8 | 9 | If you've got no idea how to help, head over to our [issue tracker](https://github.com/npruehs/unity-query/issues) and see what you'd like to do most. You can basically pick anything you want to, as long as it's not already assigned to anyone. 10 | 11 | If you know exactly what you're missing, [open a new issue](https://github.com/npruehs/unity-query/issues/new) to begin a short discussion about your idea and how it fits the project. If we all agree, you're good to go! 12 | 13 | Note there's also an [FAQ](https://github.com/npruehs/unity-query/blob/master/FAQ.md) explaining some features we deliberately did not implement in UnityQuery. 14 | 15 | ## Step 2: Fork the project and check out the code 16 | 17 | UnityQuery is developed using the [GitFlow branching model](http://nvie.com/posts/a-successful-git-branching-model/). In order to contribute, you should check out the latest develop branch, and create a new feature or hotfix branch to be merged back. 18 | 19 | ## Step 3: Implement your feature or bugfix 20 | 21 | We recommend using [StyleCop](http://stylecop.codeplex.com/) for verifying your code against our [coding guidelines](https://msdn.microsoft.com/en-us/library/ff926074.aspx). 22 | 23 | ## Step 4: Open a pull request 24 | 25 | Finally, [open a pull request](https://help.github.com/articles/using-pull-requests/) so we can review your changes together, and finally integrate it into the next release. 26 | -------------------------------------------------------------------------------- /Documentation/UnityQuery Cheat Sheet.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/npruehs/unity-query/16894d6e8b60bd10a8e555ae60ff2dc3f6118155/Documentation/UnityQuery Cheat Sheet.docx -------------------------------------------------------------------------------- /FAQ.md: -------------------------------------------------------------------------------- 1 | # FAQ 2 | 3 | ## Why are there no helper methods for handling [Coroutines](http://docs.unity3d.com/Manual/Coroutines.html)? 4 | 5 | Yes, we agree: Coroutines are ugly. Fortunately, there is already a very nice open-source solution to this problem called [Reactive Extensions for Unity](https://github.com/neuecc/UniRx) by Yoshifumi Kawai. 6 | 7 | Reactive Extensions for Unity provide asynchronous operations with return values and proper error handling, and we don't think we could do that any better. 8 | 9 | ## Why are there no helper methods for creating and accessing [Singletons](https://en.wikipedia.org/wiki/Singleton_pattern)? 10 | 11 | UnityQuery aims to be a lightweight library, not a framework: We want to provide utility methods without imposing structure on your project. 12 | 13 | This implies that you shouldn't need to create types deriving from UnityQuery types in order to use the library. If you want to implement parts of your game as singletons, roll your own or check [other implementations such as the one in the Unify Community Wiki](http://wiki.unity3d.com/index.php/Toolbox). 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015-2016 Nick Pruehs 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 | 23 | -------------------------------------------------------------------------------- /Media/Screenshots/CheatSheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/npruehs/unity-query/16894d6e8b60bd10a8e555ae60ff2dc3f6118155/Media/Screenshots/CheatSheet.png -------------------------------------------------------------------------------- /Media/Screenshots/HierarchyManipulation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/npruehs/unity-query/16894d6e8b60bd10a8e555ae60ff2dc3f6118155/Media/Screenshots/HierarchyManipulation.png -------------------------------------------------------------------------------- /Media/Screenshots/HierarchyQueries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/npruehs/unity-query/16894d6e8b60bd10a8e555ae60ff2dc3f6118155/Media/Screenshots/HierarchyQueries.png -------------------------------------------------------------------------------- /Media/Screenshots/Picking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/npruehs/unity-query/16894d6e8b60bd10a8e555ae60ff2dc3f6118155/Media/Screenshots/Picking.png -------------------------------------------------------------------------------- /Media/Screenshots/VectorSwizzling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/npruehs/unity-query/16894d6e8b60bd10a8e555ae60ff2dc3f6118155/Media/Screenshots/VectorSwizzling.png -------------------------------------------------------------------------------- /Media/Store Assets/Background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/npruehs/unity-query/16894d6e8b60bd10a8e555ae60ff2dc3f6118155/Media/Store Assets/Background.png -------------------------------------------------------------------------------- /Media/Store Assets/Facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/npruehs/unity-query/16894d6e8b60bd10a8e555ae60ff2dc3f6118155/Media/Store Assets/Facebook.png -------------------------------------------------------------------------------- /Media/Store Assets/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/npruehs/unity-query/16894d6e8b60bd10a8e555ae60ff2dc3f6118155/Media/Store Assets/Icon.png -------------------------------------------------------------------------------- /Media/Store Assets/Key Visual.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/npruehs/unity-query/16894d6e8b60bd10a8e555ae60ff2dc3f6118155/Media/Store Assets/Key Visual.png -------------------------------------------------------------------------------- /Media/Store Assets/Key Visual.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/npruehs/unity-query/16894d6e8b60bd10a8e555ae60ff2dc3f6118155/Media/Store Assets/Key Visual.xcf -------------------------------------------------------------------------------- /Media/Store Assets/Small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/npruehs/unity-query/16894d6e8b60bd10a8e555ae60ff2dc3f6118155/Media/Store Assets/Small.png -------------------------------------------------------------------------------- /Media/Store Assets/Small.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/npruehs/unity-query/16894d6e8b60bd10a8e555ae60ff2dc3f6118155/Media/Store Assets/Small.xcf -------------------------------------------------------------------------------- /Media/Store Assets/Tutorial.txt: -------------------------------------------------------------------------------- 1 | https://www.gimpshop.com/tutorials/how-to-create-a-logo -------------------------------------------------------------------------------- /Media/Store Assets/UnityQueryLogo.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/npruehs/unity-query/16894d6e8b60bd10a8e555ae60ff2dc3f6118155/Media/Store Assets/UnityQueryLogo.xcf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # UnityQuery 2 | 3 | UnityQuery is a small, lightweight C# library designed to increase productivity with [Unity3D](http://unity3d.com/). 4 | 5 | Each and every one of us has written these small utility and extension methods we're using and re-writing over and over again with each new project. UnityQuery aims to collect the most general, versatile and helpful of these code snippets for re-use, and is inspired by recent work at the [Slash Framework](https://github.com/SlashGames/slash-framework) and by [LINQ to GameObject](https://github.com/neuecc/LINQ-to-GameObject-for-Unity) by Yoshifumi Kawai. 6 | 7 | If you're missing any of your personal favorites, we'd love to see it - please refer to the [Contributing](https://github.com/npruehs/unity-query/blob/master/CONTRIBUTING.md) file! 8 | 9 | ## Features 10 | 11 | * Hierarchy queries (e.g. GetChildren, GetDescendants, OnLayer, IsAncestor, GetRoot, ...) 12 | * Hierarchy manipulation (e.g. DestroyChildren) 13 | * Component-wise vector swizzling (e.g. v.XZ) 14 | * Changing single vector or color components while preserving immutability 15 | * Picking (e.g. object at mouse position) 16 | * Collection extensions (e.g. ContainsAll, GetValueOrDefault, IsNullOrEmpty, SequenceToString) 17 | * Logs with timestamps and object names 18 | 19 | ## Getting UnityQuery 20 | 21 | You can either 22 | 23 | * download STABLE from the [Unity Asset Store](https://www.assetstore.unity3d.com/en/#!/content/42015) 24 | * checkout LATEST from this repository 25 | 26 | ## Usage 27 | 28 | Just import the `UnityQuery` namespace and you're good to go! 29 | 30 | using UnityQuery; 31 | 32 | The library adds many hierarchy queries to your game objects. 33 | 34 | // Select all descendants(children, grandchildren, etc.). 35 | foreach (var descendant in this.gameObject.GetDescendants()) 36 | { 37 | // ... 38 | } 39 | 40 | You can freely re-combine these queries with other library methods. 41 | 42 | // Change the layers of all default layer descendants to UI. 43 | this.gameObject 44 | .GetDescendants() 45 | .OnLayer("Default") 46 | .AsQuery() 47 | .SetLayers("UI"); 48 | 49 | Right now, all of the UnityQuery methods are implemented as extension methods. 50 | 51 | // u = (1, 2, 3) 52 | Vector3 u = new Vector3(1, 2, 3); 53 | 54 | // v = (1, 3) 55 | Vector2 v = u.XZ(); 56 | 57 | That means, you can use all of them as syntatic sugar without having to recall where they're located. 58 | 59 | var o = Camera.main.PickObject(); 60 | 61 | Note there's also a [Cheat Sheet](https://github.com/npruehs/unity-query/raw/master/Source/UnityQuery/Assets/UnityQuery/UnityQuery%20Cheat%20Sheet.pdf) available for you. 62 | 63 | ## Development Cycle 64 | 65 | We know that using a library like UnityQuery in production requires you to be completely sure about stability and compatibility. Thus, new releases of UnityQuery are created using [Semantic Versioning](http://semver.org/). In short: 66 | 67 | * Version numbers are specified as MAJOR.MINOR.PATCH. 68 | * MAJOR version increases indicate incompatible changes with respect to the public UnityQuery API. 69 | * MINOR version increases indicate new functionality that are backwards-compatible. 70 | * PATCH version increases indicate backwards-compatible bug fixes. 71 | 72 | ## Bugs & Feature Requests 73 | 74 | We are sorry that you've experienced issues or are missing a feature! After verifying that you are using the [latest version](https://github.com/npruehs/unity-query/releases) of UnityQuery and having checked whether a [similar issue](https://github.com/npruehs/unity-query/issues) has already been reported, feel free to [open a new issue](https://github.com/npruehs/unity-query/issues/new). In order to help us resolving your problem as fast as possible, please include the following details in your report: 75 | 76 | * Steps to reproduce 77 | * What happened? 78 | * What did you expect to happen? 79 | 80 | After being able to reproduce the issue, we'll look into fixing it immediately. 81 | 82 | ## Contributors 83 | 84 | (in no particular order) 85 | 86 | * [Nick Prühs](https://github.com/npruehs) (Maintainer) 87 | * [Christian Oeing](https://github.com/coeing) 88 | * [Björn von der Osten](https://github.com/Froghut) 89 | * [Patrick Henschel](https://bitbucket.org/Ffyhlkain) 90 | * Michael Kluge 91 | * [Johannes Deml](https://github.com/JohannesDeml) 92 | * [Slawa Deisling](https://twitter.com/SlawaDeisling) 93 | * [Robin Fischer](https://github.com/robinryf) 94 | 95 | ## License 96 | 97 | UnityQuery is released under the [MIT license](https://github.com/npruehs/unity-query/blob/master/LICENSE). 98 | -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery.Tests.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bbdeefa6ffa678c4483a4ee5908090b1 3 | folderAsset: yes 4 | timeCreated: 1436292561 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery.Tests/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 93bebae86d17c3a4288727a49b9afecc 3 | folderAsset: yes 4 | timeCreated: 1436292565 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery.Tests/Editor/CollectionsTests.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright (c) Nick Prühs. All rights reserved. 4 | // 5 | // -------------------------------------------------------------------------------------------------------------------- 6 | 7 | namespace UnityQuery.Tests 8 | { 9 | using System.Collections.Generic; 10 | 11 | using NUnit.Framework; 12 | 13 | public class CollectionsTests 14 | { 15 | #region Public Methods and Operators 16 | 17 | [Test] 18 | public void TestContainsAll() 19 | { 20 | // Arrange. 21 | var first = new List { 1, 2, 3 }; 22 | var second = new List { 1, 3 }; 23 | var third = new List { 1, 2, 4 }; 24 | 25 | // Assert. 26 | Assert.IsTrue(first.ContainsAll(second)); 27 | Assert.IsFalse(first.ContainsAll(third)); 28 | } 29 | 30 | [Test] 31 | public void TestGetValueOrDefault() 32 | { 33 | // Arrange. 34 | var dictionary = new Dictionary(); 35 | dictionary.Add("one", 1); 36 | 37 | // Assert. 38 | Assert.AreEqual(1, dictionary.GetValueOrDefault("one", 0)); 39 | 40 | Assert.AreEqual(0, dictionary.GetValueOrDefault("two")); 41 | Assert.AreEqual(0, dictionary.GetValueOrDefault("two", 0)); 42 | } 43 | 44 | [Test] 45 | public void TestIndexOfElement() 46 | { 47 | // Arrange. 48 | IEnumerable list = new List { 1, 2, 3 }; 49 | 50 | // Assert. 51 | Assert.AreEqual(0, list.IndexOf(1)); 52 | Assert.AreEqual(2, list.IndexOf(3)); 53 | Assert.AreEqual(-1, list.IndexOf(5)); 54 | } 55 | 56 | [Test] 57 | public void TestIndexOfPredicate() 58 | { 59 | // Arrange. 60 | IEnumerable list = new List { 1, 2, 3 }; 61 | 62 | // Assert. 63 | Assert.AreEqual(2, list.IndexOf(i => i > 2)); 64 | } 65 | 66 | [Test] 67 | public void TestNullOrEmpty() 68 | { 69 | // Arrange. 70 | var sequence = new List { 1, 2, 3 }; 71 | var emptySequence = new List(); 72 | List nullSequence = null; 73 | 74 | // Assert. 75 | Assert.IsFalse(sequence.IsNullOrEmpty()); 76 | 77 | Assert.IsTrue(emptySequence.IsNullOrEmpty()); 78 | Assert.IsTrue(nullSequence.IsNullOrEmpty()); 79 | } 80 | 81 | [Test] 82 | public void TestToString() 83 | { 84 | // Arrange. 85 | var list = new List { 1, 2, 3 }; 86 | 87 | // Act. 88 | var s = list.SequenceToString(); 89 | 90 | // Assert. 91 | Assert.AreEqual("[1,2,3]", s); 92 | } 93 | 94 | #endregion 95 | } 96 | } -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery.Tests/Editor/CollectionsTests.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c1d2627977761c240a1905899504c2ea 3 | timeCreated: 1436294295 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery.Tests/Editor/ColorsTests.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright (c) Nick Prühs. All rights reserved. 4 | // 5 | // -------------------------------------------------------------------------------------------------------------------- 6 | 7 | namespace UnityQuery.Tests 8 | { 9 | using NUnit.Framework; 10 | 11 | using UnityEngine; 12 | 13 | public class ColorsTests 14 | { 15 | #region Constants 16 | 17 | private const byte ByteAlpha = 4; 18 | 19 | private const byte ByteBlue = 3; 20 | 21 | private const byte ByteGreen = 2; 22 | 23 | private const byte ByteRed = 1; 24 | 25 | private const float FloatAlpha = 0.4f; 26 | 27 | private const float FloatBlue = 0.3f; 28 | 29 | private const float FloatGreen = 0.2f; 30 | 31 | private const float FloatRed = 0.1f; 32 | 33 | #endregion 34 | 35 | #region Public Methods and Operators 36 | 37 | [Test] 38 | public void TestColorWithByteAlpha() 39 | { 40 | // Arrange. 41 | Color32 before = new Color32(ByteRed, ByteGreen, ByteBlue, ByteAlpha); 42 | const byte NewAlpha = 5; 43 | 44 | // Act. 45 | Color32 after = ((Color)before).WithAlpha(NewAlpha); 46 | 47 | // Assert. 48 | Assert.AreEqual(before.r, after.r); 49 | Assert.AreEqual(before.g, after.g); 50 | Assert.AreEqual(before.b, after.b); 51 | Assert.AreEqual(NewAlpha, after.a); 52 | } 53 | 54 | [Test] 55 | public void TestColorWithByteBlue() 56 | { 57 | // Arrange. 58 | Color32 before = new Color32(ByteRed, ByteGreen, ByteBlue, ByteAlpha); 59 | const byte NewBlue = 5; 60 | 61 | // Act. 62 | Color32 after = ((Color)before).WithBlue(NewBlue); 63 | 64 | // Assert. 65 | Assert.AreEqual(before.r, after.r); 66 | Assert.AreEqual(before.g, after.g); 67 | Assert.AreEqual(NewBlue, after.b); 68 | Assert.AreEqual(before.a, after.a); 69 | } 70 | 71 | [Test] 72 | public void TestColorWithByteGreen() 73 | { 74 | // Arrange. 75 | Color32 before = new Color32(ByteRed, ByteGreen, ByteBlue, ByteAlpha); 76 | const byte NewGreen = 5; 77 | 78 | // Act. 79 | Color32 after = ((Color)before).WithGreen(NewGreen); 80 | 81 | // Assert. 82 | Assert.AreEqual(before.r, after.r); 83 | Assert.AreEqual(NewGreen, after.g); 84 | Assert.AreEqual(before.b, after.b); 85 | Assert.AreEqual(before.a, after.a); 86 | } 87 | 88 | [Test] 89 | public void TestColorWithByteRed() 90 | { 91 | // Arrange. 92 | Color32 before = new Color32(ByteRed, ByteGreen, ByteBlue, ByteAlpha); 93 | const byte NewRed = 5; 94 | 95 | // Act. 96 | Color32 after = ((Color)before).WithRed(NewRed); 97 | 98 | // Assert. 99 | Assert.AreEqual(NewRed, after.r); 100 | Assert.AreEqual(before.g, after.g); 101 | Assert.AreEqual(before.b, after.b); 102 | Assert.AreEqual(before.a, after.a); 103 | } 104 | 105 | [Test] 106 | public void TestColorWithFloatAlpha() 107 | { 108 | // Arrange. 109 | var before = new Color(FloatRed, FloatGreen, FloatBlue, FloatAlpha); 110 | const float NewAlpha = 0.5f; 111 | 112 | // Act. 113 | var after = before.WithAlpha(NewAlpha); 114 | 115 | // Assert. 116 | Assert.AreEqual(before.r, after.r); 117 | Assert.AreEqual(before.g, after.g); 118 | Assert.AreEqual(before.b, after.b); 119 | Assert.AreEqual(NewAlpha, after.a); 120 | } 121 | 122 | [Test] 123 | public void TestColorWithFloatBlue() 124 | { 125 | // Arrange. 126 | var before = new Color(FloatRed, FloatGreen, FloatBlue, FloatAlpha); 127 | const float NewBlue = 0.5f; 128 | 129 | // Act. 130 | var after = before.WithBlue(NewBlue); 131 | 132 | // Assert. 133 | Assert.AreEqual(before.r, after.r); 134 | Assert.AreEqual(before.g, after.g); 135 | Assert.AreEqual(NewBlue, after.b); 136 | Assert.AreEqual(before.a, after.a); 137 | } 138 | 139 | [Test] 140 | public void TestColorWithFloatGreen() 141 | { 142 | // Arrange. 143 | var before = new Color(FloatRed, FloatGreen, FloatBlue, FloatAlpha); 144 | const float NewGreen = 0.5f; 145 | 146 | // Act. 147 | var after = before.WithGreen(NewGreen); 148 | 149 | // Assert. 150 | Assert.AreEqual(before.r, after.r); 151 | Assert.AreEqual(NewGreen, after.g); 152 | Assert.AreEqual(before.b, after.b); 153 | Assert.AreEqual(before.a, after.a); 154 | } 155 | 156 | [Test] 157 | public void TestColorWithFloatRed() 158 | { 159 | // Arrange. 160 | var before = new Color(FloatRed, FloatGreen, FloatBlue, FloatAlpha); 161 | const float NewRed = 0.5f; 162 | 163 | // Act. 164 | var after = before.WithRed(NewRed); 165 | 166 | // Assert. 167 | Assert.AreEqual(NewRed, after.r); 168 | Assert.AreEqual(before.g, after.g); 169 | Assert.AreEqual(before.b, after.b); 170 | Assert.AreEqual(before.a, after.a); 171 | } 172 | 173 | #endregion 174 | } 175 | } -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery.Tests/Editor/ColorsTests.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4043e990856a13d4f9f5f41912054043 3 | timeCreated: 1437081242 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery.Tests/Editor/SwizzlingTests.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright (c) Nick Prühs. All rights reserved. 4 | // 5 | // -------------------------------------------------------------------------------------------------------------------- 6 | 7 | namespace UnityQuery.Tests 8 | { 9 | using NUnit.Framework; 10 | 11 | using UnityEngine; 12 | 13 | public class SwizzlingTests 14 | { 15 | #region Constants 16 | 17 | private const float X = 1; 18 | 19 | private const float Y = 2; 20 | 21 | private const float Z = 3; 22 | 23 | #endregion 24 | 25 | #region Public Methods and Operators 26 | 27 | [Test] 28 | public void TestVector2WithX() 29 | { 30 | // Arrange. 31 | var u = new Vector2(X, Y); 32 | const int NewX = 4; 33 | 34 | // Act. 35 | var v = u.WithX(NewX); 36 | 37 | // Assert. 38 | Assert.AreEqual(NewX, v.x); 39 | Assert.AreEqual(u.y, v.y); 40 | } 41 | 42 | [Test] 43 | public void TestVector2WithY() 44 | { 45 | // Arrange. 46 | var u = new Vector2(X, Y); 47 | const int NewY = 4; 48 | 49 | // Act. 50 | var v = u.WithY(NewY); 51 | 52 | // Assert. 53 | Assert.AreEqual(u.x, v.x); 54 | Assert.AreEqual(NewY, v.y); 55 | } 56 | 57 | [Test] 58 | public void TestVector3WithX() 59 | { 60 | // Arrange. 61 | var u = new Vector3(X, Y, Z); 62 | const int NewX = 4; 63 | 64 | // Act. 65 | var v = u.WithX(NewX); 66 | 67 | // Assert. 68 | Assert.AreEqual(NewX, v.x); 69 | Assert.AreEqual(u.y, v.y); 70 | Assert.AreEqual(u.z, v.z); 71 | } 72 | 73 | [Test] 74 | public void TestVector3WithY() 75 | { 76 | // Arrange. 77 | var u = new Vector3(X, Y, Z); 78 | const int NewY = 4; 79 | 80 | // Act. 81 | var v = u.WithY(NewY); 82 | 83 | // Assert. 84 | Assert.AreEqual(u.x, v.x); 85 | Assert.AreEqual(NewY, v.y); 86 | Assert.AreEqual(u.z, v.z); 87 | } 88 | 89 | [Test] 90 | public void TestVector3WithZ() 91 | { 92 | // Arrange. 93 | var u = new Vector3(X, Y, Z); 94 | const int NewZ = 4; 95 | 96 | // Act. 97 | var v = u.WithZ(NewZ); 98 | 99 | // Assert. 100 | Assert.AreEqual(u.x, v.x); 101 | Assert.AreEqual(u.y, v.y); 102 | Assert.AreEqual(NewZ, v.z); 103 | } 104 | 105 | [Test] 106 | public void TestVector3XY() 107 | { 108 | // Arrange. 109 | var u = new Vector3(X, Y, Z); 110 | 111 | // Act. 112 | var v = u.XY(); 113 | 114 | // Assert. 115 | Assert.AreEqual(X, v.x); 116 | Assert.AreEqual(Y, v.y); 117 | } 118 | 119 | [Test] 120 | public void TestVector3XZ() 121 | { 122 | // Arrange. 123 | var u = new Vector3(X, Y, Z); 124 | 125 | // Act. 126 | var v = u.XZ(); 127 | 128 | // Assert. 129 | Assert.AreEqual(X, v.x); 130 | Assert.AreEqual(Z, v.y); 131 | } 132 | 133 | [Test] 134 | public void TestVector3YZ() 135 | { 136 | // Arrange. 137 | var u = new Vector3(X, Y, Z); 138 | 139 | // Act. 140 | var v = u.YZ(); 141 | 142 | // Assert. 143 | Assert.AreEqual(Y, v.x); 144 | Assert.AreEqual(Z, v.y); 145 | } 146 | 147 | #endregion 148 | } 149 | } -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery.Tests/Editor/SwizzlingTests.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9c4c4aa9c53f9514796f3ee4fd01b460 3 | timeCreated: 1436292606 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7df5cc98361ed1c4aa206edc66610248 3 | folderAsset: yes 4 | timeCreated: 1436293054 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 12c0e8f3ca353ef4f9b78ebfb5e2a6a9 3 | folderAsset: yes 4 | timeCreated: 1436293054 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/Collections.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright (c) Nick Prühs. All rights reserved. 4 | // 5 | // -------------------------------------------------------------------------------------------------------------------- 6 | 7 | namespace UnityQuery 8 | { 9 | using System; 10 | using System.Collections; 11 | using System.Collections.Generic; 12 | using System.Linq; 13 | using System.Text; 14 | 15 | public static class Collections 16 | { 17 | #region Public Methods and Operators 18 | 19 | /// 20 | /// Checks whether a sequence contains all elements of another one. 21 | /// 22 | /// Type of the elements of the sequence to check. 23 | /// Containing sequence. 24 | /// Contained sequence. 25 | /// 26 | /// true, if the sequence contains all elements of the other one, and 27 | /// false otherwise. 28 | /// 29 | public static bool ContainsAll(this IEnumerable first, IEnumerable second) 30 | { 31 | return second.All(first.Contains); 32 | } 33 | 34 | /// 35 | /// Tries to get the value with the specified key from the 36 | /// dictionary, and returns the passed default value if the key 37 | /// could not be found. 38 | /// 39 | /// Type of the dictionary keys. 40 | /// Type of the dictionary values. 41 | /// 42 | /// Dictionary to get the value from. 43 | /// 44 | /// 45 | /// Key of the value to get. 46 | /// 47 | /// 48 | /// Default value to return if the specified key could not be found. 49 | /// 50 | /// 51 | /// Value with the specified , if found, 52 | /// and otherwise. 53 | /// 54 | public static TValue GetValueOrDefault( 55 | this IDictionary dictionary, 56 | TKey key, 57 | TValue defaultValue) 58 | { 59 | TValue value; 60 | return dictionary.TryGetValue(key, out value) ? value : defaultValue; 61 | } 62 | 63 | /// 64 | /// Tries to get the value with the specified key from the 65 | /// dictionary, and returns the default value of the key type 66 | /// if the key could not be found. 67 | /// 68 | /// Type of the dictionary keys. 69 | /// Type of the dictionary values. 70 | /// 71 | /// Dictionary to get the value from. 72 | /// 73 | /// 74 | /// Key of the value to get. 75 | /// 76 | /// 77 | /// Value with the specified , if found, 78 | /// and the default value of otherwise. 79 | /// 80 | public static TValue GetValueOrDefault(this IDictionary dictionary, TKey key) 81 | { 82 | TValue value; 83 | return dictionary.TryGetValue(key, out value) ? value : default(TValue); 84 | } 85 | 86 | /// 87 | /// Returns the zero-based index of the first occurrence of the specified item in a sequence. 88 | /// 89 | /// Type of the elements of the sequence. 90 | /// Sequence to search. 91 | /// Item to search for. 92 | /// 93 | /// Index of the specified item, if it could be found, 94 | /// and -1 otherwise. 95 | /// 96 | public static int IndexOf(this IEnumerable items, T item) 97 | { 98 | var index = 0; 99 | 100 | foreach (var i in items) 101 | { 102 | if (Equals(i, item)) 103 | { 104 | return index; 105 | } 106 | 107 | ++index; 108 | } 109 | 110 | return -1; 111 | } 112 | 113 | /// 114 | /// Returns the zero-based index of the first item in a sequence that satisfies a condition. 115 | /// 116 | /// Type of the elements of the sequence. 117 | /// Sequence to search. 118 | /// Function to test each element for a condition.. 119 | /// 120 | /// Index of the first item satisfying the condition, if any could be found, 121 | /// and -1 otherwise. 122 | /// 123 | public static int IndexOf(this IEnumerable items, Func predicate) 124 | { 125 | var index = 0; 126 | 127 | foreach (var i in items) 128 | { 129 | if (predicate(i)) 130 | { 131 | return index; 132 | } 133 | 134 | ++index; 135 | } 136 | 137 | return -1; 138 | } 139 | 140 | /// 141 | /// Determines whether a sequence is null or doesn't contain any elements. 142 | /// 143 | /// Type of the elements of the sequence to check. 144 | /// Sequence to check. 145 | /// 146 | /// true if the sequence is null or empty, and 147 | /// false otherwise. 148 | /// 149 | public static bool IsNullOrEmpty(this IEnumerable sequence) 150 | { 151 | if (sequence == null) 152 | { 153 | return true; 154 | } 155 | 156 | return !sequence.Any(); 157 | } 158 | 159 | /// 160 | /// Returns a comma-separated string that represents a sequence. 161 | /// 162 | /// Sequence to get a textual representation of. 163 | /// Comma-separated string that represents the sequence. 164 | public static string SequenceToString(this IEnumerable sequence) 165 | { 166 | // Check empty sequence. 167 | if (sequence == null) 168 | { 169 | return "null"; 170 | } 171 | 172 | var stringBuilder = new StringBuilder(); 173 | 174 | // Add opening bracket. 175 | stringBuilder.Append("["); 176 | 177 | foreach (var element in sequence) 178 | { 179 | var elementString = element as string; 180 | if (elementString == null) 181 | { 182 | // Handle nested enumerables. 183 | var elementEnumerable = element as IEnumerable; 184 | elementString = elementEnumerable != null 185 | ? elementEnumerable.SequenceToString() 186 | : element.ToString(); 187 | } 188 | 189 | // Add comma. 190 | stringBuilder.AppendFormat("{0},", elementString); 191 | } 192 | 193 | // Empty sequence. 194 | if (stringBuilder.Length <= 1) 195 | { 196 | return "[]"; 197 | } 198 | 199 | // Add closing bracket. 200 | stringBuilder[stringBuilder.Length - 1] = ']'; 201 | return stringBuilder.ToString(); 202 | } 203 | 204 | #endregion 205 | } 206 | } -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/Collections.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 07cc0c2ad3e48704e9ab86accdcf1f2e 3 | timeCreated: 1436294295 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/Colors.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright (c) Nick Prühs. All rights reserved. 4 | // 5 | // -------------------------------------------------------------------------------------------------------------------- 6 | 7 | namespace UnityQuery 8 | { 9 | using UnityEngine; 10 | 11 | public static class Colors 12 | { 13 | #region Public Methods and Operators 14 | 15 | public static Color WithAlpha(this Color c, float newAlpha) 16 | { 17 | return new Color(c.r, c.g, c.b, newAlpha); 18 | } 19 | 20 | public static Color WithAlpha(this Color c, byte newAlpha) 21 | { 22 | Color32 color = c; 23 | return new Color32(color.r, color.g, color.b, newAlpha); 24 | } 25 | 26 | public static Color WithBlue(this Color c, float newBlue) 27 | { 28 | return new Color(c.r, c.g, newBlue, c.a); 29 | } 30 | 31 | public static Color WithBlue(this Color c, byte newBlue) 32 | { 33 | Color32 color = c; 34 | return new Color32(color.r, color.g, newBlue, color.a); 35 | } 36 | 37 | public static Color WithGreen(this Color c, float newGreen) 38 | { 39 | return new Color(c.r, newGreen, c.b, c.a); 40 | } 41 | 42 | public static Color WithGreen(this Color c, byte newGreen) 43 | { 44 | Color32 color = c; 45 | return new Color32(color.r, newGreen, color.b, color.a); 46 | } 47 | 48 | public static Color WithRed(this Color c, float newRed) 49 | { 50 | return new Color(newRed, c.g, c.b, c.a); 51 | } 52 | 53 | public static Color WithRed(this Color c, byte newRed) 54 | { 55 | Color32 color = c; 56 | return new Color32(newRed, color.g, color.b, color.a); 57 | } 58 | 59 | #endregion 60 | } 61 | } -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/Colors.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d79067b285f1a304f92a4d28de686de0 3 | timeCreated: 1437081242 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/Components.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright (c) Nick Prühs. All rights reserved. 4 | // 5 | // -------------------------------------------------------------------------------------------------------------------- 6 | 7 | namespace UnityQuery 8 | { 9 | using UnityEngine; 10 | 11 | public static class Components 12 | { 13 | #region Public Methods and Operators 14 | 15 | /// 16 | /// Tries to get the component on the same of type . 17 | /// 18 | /// Type of the component to get. 19 | /// on the game object to try to get the component of. 20 | /// Found component, or null otherwise. 21 | /// true if a component was found, and false otherwise. 22 | public static bool TryGetComponent(this Component obj, out T component) 23 | { 24 | component = obj.GetComponent(); 25 | return component != null; 26 | } 27 | 28 | #endregion 29 | } 30 | } -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/Components.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 26d6f16052f6bbe408188cc00fd92088 3 | timeCreated: 1488569976 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/GameObjects.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright (c) Nick Prühs. All rights reserved. 4 | // 5 | // -------------------------------------------------------------------------------------------------------------------- 6 | 7 | namespace UnityQuery 8 | { 9 | using System.Linq; 10 | 11 | using UnityEngine; 12 | 13 | public static class GameObjects 14 | { 15 | #region Public Methods and Operators 16 | 17 | /// 18 | /// Instantiates a new game object and parents it to this one. 19 | /// Resets position, rotation and scale and inherits the layer. 20 | /// 21 | /// Game object to add the child to. 22 | /// New child. 23 | public static GameObject AddChild(this GameObject parent) 24 | { 25 | return parent.AddChild("New Game Object"); 26 | } 27 | 28 | /// 29 | /// Instantiates a new game object and parents it to this one. 30 | /// Resets position, rotation and scale and inherits the layer. 31 | /// 32 | /// Game object to add the child to. 33 | /// Name of the child to add. 34 | /// New child. 35 | public static GameObject AddChild(this GameObject parent, string name) 36 | { 37 | var go = AddChild(parent, (GameObject)null); 38 | go.name = name; 39 | return go; 40 | } 41 | 42 | /// 43 | /// Instantiates a prefab and parents it to this one. 44 | /// Resets position, rotation and scale and inherits the layer. 45 | /// 46 | /// Game object to add the child to. 47 | /// Prefab to instantiate. 48 | /// New prefab instance. 49 | public static GameObject AddChild(this GameObject parent, GameObject prefab) 50 | { 51 | var go = prefab != null ? Object.Instantiate(prefab) : new GameObject(); 52 | if (go == null || parent == null) 53 | { 54 | return go; 55 | } 56 | 57 | var transform = go.transform; 58 | transform.SetParent(parent.transform); 59 | transform.Reset(); 60 | go.layer = parent.layer; 61 | return go; 62 | } 63 | 64 | /// 65 | /// Destroys all children of a object. 66 | /// 67 | /// Game object to destroy all children of. 68 | public static void DestroyChildren(this GameObject gameObject) 69 | { 70 | foreach (var child in gameObject.GetChildren()) 71 | { 72 | // Hide immediately. 73 | child.SetActive(false); 74 | 75 | if (Application.isEditor && !Application.isPlaying) 76 | { 77 | Object.DestroyImmediate(child); 78 | } 79 | else 80 | { 81 | Object.Destroy(child); 82 | } 83 | } 84 | } 85 | 86 | /// 87 | /// Gets the component of type if the game object has one attached, 88 | /// and adds and returns a new one if it doesn't. 89 | /// 90 | /// Type of the component to get or add. 91 | /// Game object to get the component of. 92 | /// 93 | /// Component of type attached to the game object. 94 | /// 95 | public static T GetOrAddComponent(this GameObject gameObject) where T : Component 96 | { 97 | return gameObject.GetComponent() ?? gameObject.AddComponent(); 98 | } 99 | 100 | /// 101 | /// Returns the full path of a game object, i.e. the names of all 102 | /// ancestors and the game object itself. 103 | /// 104 | /// Game object to get the path of. 105 | /// Full path of the game object. 106 | public static string GetPath(this GameObject gameObject) 107 | { 108 | return 109 | gameObject.GetAncestorsAndSelf() 110 | .Reverse() 111 | .Aggregate(string.Empty, (path, go) => path + "/" + go.name) 112 | .Substring(1); 113 | } 114 | 115 | /// 116 | /// Resets the local position, rotation and scale of a transform. 117 | /// 118 | /// Transform to reset. 119 | public static void Reset(this Transform transform) 120 | { 121 | transform.localPosition = Vector3.zero; 122 | transform.localRotation = Quaternion.identity; 123 | transform.localScale = Vector3.one; 124 | } 125 | 126 | /// 127 | /// Sets the layer of the game object. 128 | /// 129 | /// Game object to set the layer of. 130 | /// Name of the new layer. 131 | public static void SetLayer(this GameObject gameObject, string layerName) 132 | { 133 | var layer = LayerMask.NameToLayer(layerName); 134 | gameObject.layer = layer; 135 | } 136 | 137 | /// 138 | /// Sets the layers of all queried game objects. 139 | /// 140 | /// Game objects to set the layers of. 141 | /// Name of the new layer. 142 | /// Query for further execution. 143 | public static Query SetLayers(this Query gameObjects, string layerName) 144 | { 145 | var layer = LayerMask.NameToLayer(layerName); 146 | foreach (var o in gameObjects) 147 | { 148 | o.layer = layer; 149 | } 150 | return gameObjects; 151 | } 152 | 153 | /// 154 | /// Sets the tags of all queried game objects. 155 | /// 156 | /// Game objects to set the tags of. 157 | /// Name of the new tag. 158 | /// Query for further execution. 159 | public static Query SetTags(this Query gameObjects, string tag) 160 | { 161 | foreach (var gameObject in gameObjects) 162 | { 163 | gameObject.tag = tag; 164 | } 165 | return gameObjects; 166 | } 167 | 168 | /// 169 | /// Tries to get the component on the same of type . 170 | /// 171 | /// Type of the component to get. 172 | /// to try to get the component of. 173 | /// Found component, or null otherwise. 174 | /// true if a component was found, and false otherwise. 175 | public static bool TryGetComponent(this GameObject obj, out T component) 176 | { 177 | component = obj.GetComponent(); 178 | return component != null; 179 | } 180 | 181 | #endregion 182 | } 183 | } -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/GameObjects.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4189f093c88a304498214e7551c4c0f6 3 | timeCreated: 1436295413 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/Hierarchy.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright (c) Nick Prühs. All rights reserved. 4 | // 5 | // -------------------------------------------------------------------------------------------------------------------- 6 | 7 | namespace UnityQuery 8 | { 9 | using System.Collections.Generic; 10 | using System.Linq; 11 | 12 | using UnityEngine; 13 | 14 | public static class Hierarchy 15 | { 16 | #region Public Methods and Operators 17 | 18 | /// 19 | /// Selects all ancestors (parent, grandparent, etc.) of a game object. 20 | /// 21 | /// Game object to select the ancestors of. 22 | /// All ancestors of the object. 23 | public static IEnumerable GetAncestors(this GameObject gameObject) 24 | { 25 | var parent = gameObject.transform.parent; 26 | 27 | while (parent != null) 28 | { 29 | yield return parent.gameObject; 30 | parent = parent.parent; 31 | } 32 | } 33 | 34 | /// 35 | /// Selects all ancestors (parent, grandparent, etc.) of a game object, 36 | /// and the game object itself. 37 | /// 38 | /// Game object to select the ancestors of. 39 | /// 40 | /// All ancestors of the game object, 41 | /// and the game object itself. 42 | /// 43 | public static IEnumerable GetAncestorsAndSelf(this GameObject gameObject) 44 | { 45 | yield return gameObject; 46 | 47 | foreach (var ancestor in gameObject.GetAncestors()) 48 | { 49 | yield return ancestor; 50 | } 51 | } 52 | 53 | /// 54 | /// Selects all children of a game object. 55 | /// 56 | /// Game object to select the children of. 57 | /// All children of the game object. 58 | public static IEnumerable GetChildren(this GameObject gameObject) 59 | { 60 | return (from Transform child in gameObject.transform select child.gameObject); 61 | } 62 | 63 | /// 64 | /// Selects all descendants (children, grandchildren, etc.) of a game object. 65 | /// 66 | /// Game object to select the descendants of. 67 | /// All descendants of the game object. 68 | public static IEnumerable GetDescendants(this GameObject gameObject) 69 | { 70 | foreach (var child in gameObject.GetChildren()) 71 | { 72 | yield return child; 73 | 74 | // Depth-first. 75 | foreach (var descendant in child.GetDescendants()) 76 | { 77 | yield return descendant; 78 | } 79 | } 80 | } 81 | 82 | /// 83 | /// Selects all descendants (children, grandchildren, etc.) of a 84 | /// game object, and the game object itself. 85 | /// 86 | /// Game object to select the descendants of. 87 | /// 88 | /// All descendants of the game object, 89 | /// and the game object itself. 90 | /// 91 | public static IEnumerable GetDescendantsAndSelf(this GameObject gameObject) 92 | { 93 | yield return gameObject; 94 | 95 | foreach (var descendant in gameObject.GetDescendants()) 96 | { 97 | yield return descendant; 98 | } 99 | } 100 | 101 | /// 102 | /// Gets the hierarchy root of the game object. 103 | /// 104 | /// Game object to get the root of. 105 | /// Root of the specified game object. 106 | public static GameObject GetRoot(this GameObject gameObject) 107 | { 108 | var root = gameObject.transform; 109 | 110 | while (root.parent != null) 111 | { 112 | root = root.parent; 113 | } 114 | 115 | return root.gameObject; 116 | } 117 | 118 | /// 119 | /// Indicates whether the a game object is an ancestor of another one. 120 | /// 121 | /// Possible ancestor. 122 | /// Possible descendant. 123 | /// 124 | /// true, if the game object is an ancestor of the other one, and 125 | /// false otherwise. 126 | /// 127 | public static bool IsAncestorOf(this GameObject gameObject, GameObject descendant) 128 | { 129 | return gameObject.GetDescendants().Contains(descendant); 130 | } 131 | 132 | /// 133 | /// Indicates whether the a game object is a descendant of another one. 134 | /// 135 | /// Possible descendant. 136 | /// Possible ancestor. 137 | /// 138 | /// true, if the game object is a descendant of the other one, and 139 | /// false otherwise. 140 | /// 141 | public static bool IsDescendantOf(this GameObject gameObject, GameObject ancestor) 142 | { 143 | return gameObject.GetAncestors().Contains(ancestor); 144 | } 145 | 146 | /// 147 | /// Filters a sequence of game objects by layer. 148 | /// 149 | /// Game objects to filter. 150 | /// Layer to get the game objects of. 151 | /// Game objects on the specified layer. 152 | public static IEnumerable OnLayer(this IEnumerable gameObjects, int layer) 153 | { 154 | return gameObjects.Where(gameObject => Equals(gameObject.layer, layer)); 155 | } 156 | 157 | /// 158 | /// Filters a sequence of game objects by layer. 159 | /// 160 | /// Game objects to filter. 161 | /// Layer to get the game objects of. 162 | /// Game objects on the specified layer. 163 | public static IEnumerable OnLayer(this IEnumerable gameObjects, string layerName) 164 | { 165 | var layer = LayerMask.NameToLayer(layerName); 166 | return gameObjects.Where(gameObject => Equals(gameObject.layer, layer)); 167 | } 168 | 169 | /// 170 | /// Filters a sequence of game objects by tag. 171 | /// 172 | /// Game objects to filter. 173 | /// Tag to get the game objects of. 174 | /// Game objects with the specified tag. 175 | public static IEnumerable WithTag(this IEnumerable gameObjects, string tag) 176 | { 177 | return gameObjects.Where(gameObject => Equals(gameObject.tag, tag)); 178 | } 179 | 180 | #endregion 181 | } 182 | } -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/Hierarchy.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 675b415b7d81ee4459d1974eb69b9700 3 | timeCreated: 1438628542 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/Log.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright (c) Nick Prühs. All rights reserved. 4 | // 5 | // -------------------------------------------------------------------------------------------------------------------- 6 | 7 | namespace UnityQuery 8 | { 9 | using UnityEngine; 10 | 11 | public static class Log 12 | { 13 | #region Public Methods and Operators 14 | 15 | public static void Error(Object context, string s) 16 | { 17 | Debug.LogError(s.ToLogString(context), context); 18 | } 19 | 20 | public static void Error(Object context, string s, params object[] args) 21 | { 22 | Debug.LogErrorFormat(context, s.ToLogString(context), args); 23 | } 24 | 25 | public static void Info(Object context, string s) 26 | { 27 | Debug.Log(s.ToLogString(context), context); 28 | } 29 | 30 | public static void Info(Object context, string s, params object[] args) 31 | { 32 | Debug.LogFormat(context, s.ToLogString(context), args); 33 | } 34 | 35 | public static void Warn(Object context, string s) 36 | { 37 | Debug.LogWarning(s.ToLogString(context), context); 38 | } 39 | 40 | public static void Warn(Object context, string s, params object[] args) 41 | { 42 | Debug.LogWarningFormat(context, s.ToLogString(context), args); 43 | } 44 | 45 | public static string WithFrame(this string s) 46 | { 47 | return string.Format("[{0:00000}] {1}", Time.frameCount, s); 48 | } 49 | 50 | public static string WithObjectName(this string s, Object o) 51 | { 52 | return string.Format("[{0}] {1}", o.name, s); 53 | } 54 | 55 | public static string WithTimestamp(this string s) 56 | { 57 | return string.Format("[{0:000.000}] {1}", Time.realtimeSinceStartup, s); 58 | } 59 | 60 | #endregion 61 | 62 | #region Methods 63 | 64 | private static string ToLogString(this string s, Object context) 65 | { 66 | return s.WithObjectName(context).WithTimestamp(); 67 | } 68 | 69 | #endregion 70 | } 71 | } -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/Log.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6e3bbbdab10aa4a439820b9eac6f89e3 3 | timeCreated: 1436464446 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/Picking.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright (c) Nick Prühs. All rights reserved. 4 | // 5 | // -------------------------------------------------------------------------------------------------------------------- 6 | 7 | namespace UnityQuery 8 | { 9 | using UnityEngine; 10 | 11 | public static class Picking 12 | { 13 | #region Constants 14 | 15 | private const float DefaultDistance = 1000.0f; 16 | 17 | private const int DefaultLayerMask = -1; 18 | 19 | private static readonly Plane DefaultPlane = new Plane(Vector3.up, Vector3.zero); 20 | 21 | #endregion 22 | 23 | #region Properties 24 | 25 | private static Vector3 DefaultPosition 26 | { 27 | get 28 | { 29 | return Input.mousePosition; 30 | } 31 | } 32 | 33 | #endregion 34 | 35 | #region Public Methods and Operators 36 | 37 | /// 38 | /// Picks the object seen by the camera at the current mouse position. 39 | /// 40 | /// Camera to cast the ray from. 41 | /// 42 | /// Object seen by the camera at the current mouse position, if any, and 43 | /// null otherwise. 44 | /// 45 | public static Transform PickObject(this Camera camera) 46 | { 47 | return camera.PickObject(DefaultPosition); 48 | } 49 | 50 | /// 51 | /// Picks the object seen by the camera at the specified screen position. 52 | /// 53 | /// Camera to cast the ray from. 54 | /// Screen position to cast the ray to. 55 | /// 56 | /// Object seen by the camera at the specified screen position, if any, and 57 | /// null otherwise. 58 | /// 59 | public static Transform PickObject(this Camera camera, Vector3 screenPosition) 60 | { 61 | return camera.PickObject(screenPosition, DefaultLayerMask); 62 | } 63 | 64 | /// 65 | /// Picks the object seen by the camera at the current mouse position. 66 | /// 67 | /// Camera to cast the ray from. 68 | /// Layers of objects to pick. 69 | /// 70 | /// Object seen by the camera at the current mouse position, if any, and 71 | /// null otherwise. 72 | /// 73 | public static Transform PickObject(this Camera camera, LayerMask layerMask) 74 | { 75 | return camera.PickObject(DefaultPosition, layerMask); 76 | } 77 | 78 | /// 79 | /// Picks the object seen by the camera at the current mouse position. 80 | /// 81 | /// Camera to cast the ray from. 82 | /// Maximum distance to pick objects in. 83 | /// 84 | /// Object seen by the camera at the current mouse position, if any, and 85 | /// null otherwise. 86 | /// 87 | public static Transform PickObject(this Camera camera, float maxDistance) 88 | { 89 | return camera.PickObject(DefaultPosition, maxDistance); 90 | } 91 | 92 | /// 93 | /// Picks the object seen by the camera at the specified screen position. 94 | /// 95 | /// Camera to cast the ray from. 96 | /// Screen position to cast the ray to. 97 | /// Layers of objects to pick. 98 | /// 99 | /// Object seen by the camera at the specified screen position, if any, and 100 | /// null otherwise. 101 | /// 102 | public static Transform PickObject(this Camera camera, Vector3 screenPosition, LayerMask layerMask) 103 | { 104 | return camera.PickObject(screenPosition, layerMask, DefaultDistance); 105 | } 106 | 107 | /// 108 | /// Picks the object seen by the camera at the specified screen position. 109 | /// 110 | /// Camera to cast the ray from. 111 | /// Screen position to cast the ray to. 112 | /// Maximum distance to pick objects in. 113 | /// 114 | /// Object seen by the camera at the specified screen position, if any, and 115 | /// null otherwise. 116 | /// 117 | public static Transform PickObject(this Camera camera, Vector3 screenPosition, float maxDistance) 118 | { 119 | return camera.PickObject(screenPosition, DefaultLayerMask, maxDistance); 120 | } 121 | 122 | /// 123 | /// Picks the object seen by the camera at the current mouse position. 124 | /// 125 | /// Camera to cast the ray from. 126 | /// Layers of objects to pick. 127 | /// Maximum distance to pick objects in. 128 | /// 129 | /// Object seen by the camera at the current mouse position, if any, and 130 | /// null otherwise. 131 | /// 132 | public static Transform PickObject(this Camera camera, LayerMask layerMask, float maxDistance) 133 | { 134 | return camera.PickObject(DefaultPosition, layerMask, maxDistance); 135 | } 136 | 137 | /// 138 | /// Picks the object seen by the camera at the specified screen position. 139 | /// 140 | /// Camera to cast the ray from. 141 | /// Screen position to cast the ray to. 142 | /// Layers of objects to pick. 143 | /// Maximum distance to pick objects in. 144 | /// 145 | /// Object seen by the camera at the specified screen position, if any, and 146 | /// null otherwise. 147 | /// 148 | public static Transform PickObject( 149 | this Camera camera, 150 | Vector3 screenPosition, 151 | LayerMask layerMask, 152 | float maxDistance) 153 | { 154 | var ray = camera.ScreenPointToRay(screenPosition); 155 | RaycastHit hitInfo; 156 | return Physics.Raycast(ray, out hitInfo, maxDistance, layerMask) ? hitInfo.transform : null; 157 | } 158 | 159 | /// 160 | /// Picks the world position on the XZ plane seen by the camera at the current mouse position. 161 | /// 162 | /// Camera to cast the ray from. 163 | /// Plane position seen by the camera at the current mouse position. 164 | /// 165 | /// true, if any position on the XZ plane was seen by the camera at the current mouse position, and 166 | /// false otherwise. 167 | /// 168 | public static bool PickPosition(this Camera camera, out Vector3 position) 169 | { 170 | return camera.PickPosition(DefaultPosition, out position); 171 | } 172 | 173 | /// 174 | /// Picks the world position on the XZ plane seen by the camera at the specified screen position. 175 | /// 176 | /// Camera to cast the ray from. 177 | /// Screen position to cast the ray to. 178 | /// Plane position seen by the camera at the specified screen position. 179 | /// 180 | /// true, if any position on the XZ plane was seen by the camera at the specified screen position, and 181 | /// false otherwise. 182 | /// 183 | public static bool PickPosition(this Camera camera, Vector3 screenPosition, out Vector3 position) 184 | { 185 | return camera.PickPosition(screenPosition, DefaultPlane, out position); 186 | } 187 | 188 | /// 189 | /// Picks the plane position seen by the camera at the current mouse position. 190 | /// 191 | /// Camera to cast the ray from. 192 | /// Plane to cast the ray against. 193 | /// Plane position seen by the camera at the current mouse position. 194 | /// 195 | /// true, if any position on the plane was seen by the camera at the current mouse position, and 196 | /// false otherwise. 197 | /// 198 | public static bool PickPosition(this Camera camera, Plane plane, out Vector3 position) 199 | { 200 | return camera.PickPosition(DefaultPosition, plane, out position); 201 | } 202 | 203 | /// 204 | /// Picks the plane position seen by the camera at the specified screen position. 205 | /// 206 | /// Camera to cast the ray from. 207 | /// Screen position to cast the ray to. 208 | /// Plane to cast the ray against. 209 | /// Plane position seen by the camera at the specified screen position. 210 | /// 211 | /// true, if any position on the plane was seen by the camera at the specified screen position, and 212 | /// false otherwise. 213 | /// 214 | public static bool PickPosition(this Camera camera, Vector3 screenPosition, Plane plane, out Vector3 position) 215 | { 216 | float distance; 217 | var ray = camera.ScreenPointToRay(screenPosition); 218 | 219 | if (plane.Raycast(ray, out distance)) 220 | { 221 | position = ray.GetPoint(distance); 222 | return true; 223 | } 224 | 225 | position = Vector3.zero; 226 | return false; 227 | } 228 | 229 | #endregion 230 | } 231 | } -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/Picking.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 21c14ea094b17b74782138373ed2b0e4 3 | timeCreated: 1436464987 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/Query.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright (c) Nick Prühs. All rights reserved. 4 | // 5 | // -------------------------------------------------------------------------------------------------------------------- 6 | 7 | namespace UnityQuery 8 | { 9 | using System.Collections; 10 | using System.Collections.Generic; 11 | using System.Linq; 12 | 13 | /// 14 | /// Wraps a sequence of objects, forcing immediate execution of an 15 | /// enumeration. 16 | /// 17 | /// 18 | public class Query : IEnumerable 19 | { 20 | #region Fields 21 | 22 | private readonly List sequence; 23 | 24 | #endregion 25 | 26 | #region Constructors and Destructors 27 | 28 | /// 29 | /// Wraps the passed sequence of objects, forcing immediate execution. 30 | /// 31 | /// 32 | public Query(IEnumerable sequence) 33 | { 34 | this.sequence = sequence.ToList(); 35 | } 36 | 37 | /// 38 | /// Wraps the passed sequence of objects, forcing immediate execution. 39 | /// 40 | /// 41 | public Query(List sequence) 42 | { 43 | this.sequence = sequence; 44 | } 45 | 46 | #endregion 47 | 48 | #region Public Methods and Operators 49 | 50 | public IEnumerator GetEnumerator() 51 | { 52 | return this.sequence.GetEnumerator(); 53 | } 54 | 55 | #endregion 56 | 57 | #region Methods 58 | 59 | IEnumerator IEnumerable.GetEnumerator() 60 | { 61 | return this.GetEnumerator(); 62 | } 63 | 64 | #endregion 65 | } 66 | } -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/Query.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f480abe504c5cd4ab3d9966d522ed74 3 | timeCreated: 1438629817 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/QueryExtensions.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright (c) Nick Prühs. All rights reserved. 4 | // 5 | // -------------------------------------------------------------------------------------------------------------------- 6 | 7 | namespace UnityQuery 8 | { 9 | using System.Collections.Generic; 10 | 11 | using UnityEngine; 12 | 13 | public static class QueryExtensions 14 | { 15 | #region Public Methods and Operators 16 | 17 | /// 18 | /// Forces immediate execution of the query, enabling further 19 | /// operations such as changing the layers or tags of all queried 20 | /// objects. 21 | /// 22 | /// Enumeration to evaluate. 23 | /// Query for further execution. 24 | public static Query AsQuery(this IEnumerable gameObjects) 25 | { 26 | return new Query(gameObjects); 27 | } 28 | 29 | /// 30 | /// Forces immediate execution of the query, enabling further 31 | /// operations such as changing the layers or tags of all queried 32 | /// objects. 33 | /// 34 | /// Enumeration to evaluate. 35 | /// Query for further execution. 36 | public static Query AsQuery(this List gameObjects) 37 | { 38 | return new Query(gameObjects); 39 | } 40 | 41 | #endregion 42 | } 43 | } -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/QueryExtensions.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f9be1544bed8c894486851cef50aa1de 3 | timeCreated: 1438630422 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/Swizzling.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright (c) Nick Prühs. All rights reserved. 4 | // 5 | // -------------------------------------------------------------------------------------------------------------------- 6 | 7 | namespace UnityQuery 8 | { 9 | using UnityEngine; 10 | 11 | public static class Swizzling 12 | { 13 | #region Public Methods and Operators 14 | 15 | public static Vector2 WithX(this Vector2 v, float newX) 16 | { 17 | return new Vector2(newX, v.y); 18 | } 19 | 20 | public static Vector3 WithX(this Vector3 v, float newX) 21 | { 22 | return new Vector3(newX, v.y, v.z); 23 | } 24 | 25 | public static Vector2 WithY(this Vector2 v, float newY) 26 | { 27 | return new Vector2(v.x, newY); 28 | } 29 | 30 | public static Vector3 WithY(this Vector3 v, float newY) 31 | { 32 | return new Vector3(v.x, newY, v.z); 33 | } 34 | 35 | public static Vector3 WithZ(this Vector3 v, float newZ) 36 | { 37 | return new Vector3(v.x, v.y, newZ); 38 | } 39 | 40 | public static Vector2 XY(this Vector3 v) 41 | { 42 | return new Vector2(v.x, v.y); 43 | } 44 | 45 | public static Vector2 XZ(this Vector3 v) 46 | { 47 | return new Vector2(v.x, v.z); 48 | } 49 | 50 | public static Vector2 YZ(this Vector3 v) 51 | { 52 | return new Vector2(v.y, v.z); 53 | } 54 | 55 | #endregion 56 | } 57 | } -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/Scripts/Swizzling.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2c9e43b85f895e34e95be997ecc1d961 3 | timeCreated: 1436293054 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/UnityQuery Cheat Sheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/npruehs/unity-query/16894d6e8b60bd10a8e555ae60ff2dc3f6118155/Source/UnityQuery/Assets/UnityQuery/UnityQuery Cheat Sheet.pdf -------------------------------------------------------------------------------- /Source/UnityQuery/Assets/UnityQuery/UnityQuery Cheat Sheet.pdf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7257462531ee7ec4c881efa1f6a26eec 3 | timeCreated: 1436895814 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/UnityQuery/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: 0 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_DisableAudio: 0 16 | -------------------------------------------------------------------------------- /Source/UnityQuery/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 | -------------------------------------------------------------------------------- /Source/UnityQuery/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: 2 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_SolverIterationCount: 6 13 | m_QueriesHitTriggers: 1 14 | m_EnableAdaptiveForce: 0 15 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 16 | -------------------------------------------------------------------------------- /Source/UnityQuery/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 | -------------------------------------------------------------------------------- /Source/UnityQuery/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: 3 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_WebSecurityEmulationEnabled: 0 10 | m_WebSecurityEmulationHostUrl: http://www.mydomain.com/mygame.unity3d 11 | m_DefaultBehaviorMode: 0 12 | m_SpritePackerMode: 2 13 | m_SpritePackerPaddingPower: 1 14 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 15 | m_ProjectGenerationRootNamespace: 16 | -------------------------------------------------------------------------------- /Source/UnityQuery/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: 9 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: 10770, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10782, guid: 0000000000000000f000000000000000, type: 0} 38 | m_PreloadedShaders: [] 39 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 40 | type: 0} 41 | m_TierSettings_Tier1: 42 | renderingPath: 1 43 | useCascadedShadowMaps: 1 44 | m_TierSettings_Tier2: 45 | renderingPath: 1 46 | useCascadedShadowMaps: 1 47 | m_TierSettings_Tier3: 48 | renderingPath: 1 49 | useCascadedShadowMaps: 1 50 | m_DefaultRenderingPath: 1 51 | m_DefaultMobileRenderingPath: 1 52 | m_TierSettings: [] 53 | m_LightmapStripping: 0 54 | m_FogStripping: 0 55 | m_LightmapKeepPlain: 1 56 | m_LightmapKeepDirCombined: 1 57 | m_LightmapKeepDirSeparate: 1 58 | m_LightmapKeepDynamicPlain: 1 59 | m_LightmapKeepDynamicDirCombined: 1 60 | m_LightmapKeepDynamicDirSeparate: 1 61 | m_FogKeepLinear: 1 62 | m_FogKeepExp: 1 63 | m_FogKeepExp2: 1 64 | -------------------------------------------------------------------------------- /Source/UnityQuery/ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | -------------------------------------------------------------------------------- /Source/UnityQuery/ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshAreas: 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 | -------------------------------------------------------------------------------- /Source/UnityQuery/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 | -------------------------------------------------------------------------------- /Source/UnityQuery/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: 2 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_MinPenetrationForPenalty: 0.01 17 | m_BaumgarteScale: 0.2 18 | m_BaumgarteTimeOfImpactScale: 0.75 19 | m_TimeToSleep: 0.5 20 | m_LinearSleepTolerance: 0.01 21 | m_AngularSleepTolerance: 2 22 | m_QueriesHitTriggers: 1 23 | m_QueriesStartInColliders: 1 24 | m_ChangeStopsCallbacks: 0 25 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 26 | -------------------------------------------------------------------------------- /Source/UnityQuery/ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 11 7 | productGUID: 482bdfbc8091bf94bacd444d023ee1bc 8 | AndroidProfiler: 0 9 | defaultScreenOrientation: 4 10 | targetDevice: 2 11 | useOnDemandResources: 0 12 | accelerometerFrequency: 60 13 | companyName: DefaultCompany 14 | productName: UnityQuery 15 | defaultCursor: {fileID: 0} 16 | cursorHotspot: {x: 0, y: 0} 17 | m_SplashScreenBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21176471, a: 1} 18 | m_ShowUnitySplashScreen: 1 19 | m_ShowUnitySplashLogo: 1 20 | m_SplashScreenOverlayOpacity: 1 21 | m_SplashScreenAnimation: 1 22 | m_SplashScreenLogoStyle: 1 23 | m_SplashScreenDrawMode: 0 24 | m_SplashScreenBackgroundAnimationZoom: 1 25 | m_SplashScreenLogoAnimationZoom: 1 26 | m_SplashScreenBackgroundLandscapeAspect: 1 27 | m_SplashScreenBackgroundPortraitAspect: 1 28 | m_SplashScreenBackgroundLandscapeUvs: 29 | serializedVersion: 2 30 | x: 0 31 | y: 0 32 | width: 1 33 | height: 1 34 | m_SplashScreenBackgroundPortraitUvs: 35 | serializedVersion: 2 36 | x: 0 37 | y: 0 38 | width: 1 39 | height: 1 40 | m_SplashScreenLogos: [] 41 | m_SplashScreenBackgroundLandscape: {fileID: 0} 42 | m_SplashScreenBackgroundPortrait: {fileID: 0} 43 | m_VirtualRealitySplashScreen: {fileID: 0} 44 | m_HolographicTrackingLossScreen: {fileID: 0} 45 | defaultScreenWidth: 1024 46 | defaultScreenHeight: 768 47 | defaultScreenWidthWeb: 960 48 | defaultScreenHeightWeb: 600 49 | m_StereoRenderingPath: 0 50 | m_ActiveColorSpace: 0 51 | m_MTRendering: 1 52 | m_MobileMTRendering: 0 53 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 54 | iosShowActivityIndicatorOnLoading: -1 55 | androidShowActivityIndicatorOnLoading: -1 56 | tizenShowActivityIndicatorOnLoading: -1 57 | iosAppInBackgroundBehavior: 0 58 | displayResolutionDialog: 1 59 | iosAllowHTTPDownload: 1 60 | allowedAutorotateToPortrait: 1 61 | allowedAutorotateToPortraitUpsideDown: 1 62 | allowedAutorotateToLandscapeRight: 1 63 | allowedAutorotateToLandscapeLeft: 1 64 | useOSAutorotation: 1 65 | use32BitDisplayBuffer: 1 66 | disableDepthAndStencilBuffers: 0 67 | defaultIsFullScreen: 1 68 | defaultIsNativeResolution: 1 69 | runInBackground: 1 70 | captureSingleScreen: 0 71 | muteOtherAudioSources: 0 72 | Prepare IOS For Recording: 0 73 | submitAnalytics: 1 74 | usePlayerLog: 1 75 | bakeCollisionMeshes: 0 76 | forceSingleInstance: 0 77 | resizableWindow: 0 78 | useMacAppStoreValidation: 0 79 | gpuSkinning: 0 80 | graphicsJobs: 0 81 | xboxPIXTextureCapture: 0 82 | xboxEnableAvatar: 0 83 | xboxEnableKinect: 0 84 | xboxEnableKinectAutoTracking: 0 85 | xboxEnableFitness: 0 86 | visibleInBackground: 0 87 | allowFullscreenSwitch: 1 88 | graphicsJobMode: 0 89 | macFullscreenMode: 2 90 | d3d9FullscreenMode: 1 91 | d3d11FullscreenMode: 1 92 | xboxSpeechDB: 0 93 | xboxEnableHeadOrientation: 0 94 | xboxEnableGuest: 0 95 | xboxEnablePIXSampling: 0 96 | n3dsDisableStereoscopicView: 0 97 | n3dsEnableSharedListOpt: 1 98 | n3dsEnableVSync: 0 99 | ignoreAlphaClear: 0 100 | xboxOneResolution: 0 101 | xboxOneMonoLoggingLevel: 0 102 | xboxOneLoggingLevel: 1 103 | videoMemoryForVertexBuffers: 0 104 | psp2PowerMode: 0 105 | psp2AcquireBGM: 1 106 | wiiUTVResolution: 0 107 | wiiUGamePadMSAA: 1 108 | wiiUSupportsNunchuk: 0 109 | wiiUSupportsClassicController: 0 110 | wiiUSupportsBalanceBoard: 0 111 | wiiUSupportsMotionPlus: 0 112 | wiiUSupportsProController: 0 113 | wiiUAllowScreenCapture: 1 114 | wiiUControllerCount: 0 115 | m_SupportedAspectRatios: 116 | 4:3: 1 117 | 5:4: 1 118 | 16:10: 1 119 | 16:9: 1 120 | Others: 1 121 | bundleVersion: 1.0 122 | preloadedAssets: [] 123 | metroInputSource: 0 124 | m_HolographicPauseOnTrackingLoss: 1 125 | xboxOneDisableKinectGpuReservation: 0 126 | xboxOneEnable7thCore: 0 127 | vrSettings: 128 | cardboard: 129 | depthFormat: 0 130 | enableTransitionView: 0 131 | daydream: 132 | depthFormat: 0 133 | useSustainedPerformanceMode: 0 134 | hololens: 135 | depthFormat: 1 136 | protectGraphicsMemory: 0 137 | useHDRDisplay: 0 138 | applicationIdentifier: 139 | Android: com.Company.ProductName 140 | Standalone: unity.DefaultCompany.UnityQuery 141 | Tizen: com.Company.ProductName 142 | iOS: com.Company.ProductName 143 | tvOS: com.Company.ProductName 144 | buildNumber: 145 | iOS: 0 146 | AndroidBundleVersionCode: 1 147 | AndroidMinSdkVersion: 16 148 | AndroidTargetSdkVersion: 0 149 | AndroidPreferredInstallLocation: 1 150 | aotOptions: 151 | stripEngineCode: 1 152 | iPhoneStrippingLevel: 0 153 | iPhoneScriptCallOptimization: 0 154 | ForceInternetPermission: 0 155 | ForceSDCardPermission: 0 156 | CreateWallpaper: 0 157 | APKExpansionFiles: 0 158 | keepLoadedShadersAlive: 0 159 | StripUnusedMeshComponents: 0 160 | VertexChannelCompressionMask: 161 | serializedVersion: 2 162 | m_Bits: 238 163 | iPhoneSdkVersion: 988 164 | iOSTargetOSVersionString: 6.0 165 | tvOSSdkVersion: 0 166 | tvOSRequireExtendedGameController: 0 167 | tvOSTargetOSVersionString: 9.0 168 | uIPrerenderedIcon: 0 169 | uIRequiresPersistentWiFi: 0 170 | uIRequiresFullScreen: 1 171 | uIStatusBarHidden: 1 172 | uIExitOnSuspend: 0 173 | uIStatusBarStyle: 0 174 | iPhoneSplashScreen: {fileID: 0} 175 | iPhoneHighResSplashScreen: {fileID: 0} 176 | iPhoneTallHighResSplashScreen: {fileID: 0} 177 | iPhone47inSplashScreen: {fileID: 0} 178 | iPhone55inPortraitSplashScreen: {fileID: 0} 179 | iPhone55inLandscapeSplashScreen: {fileID: 0} 180 | iPadPortraitSplashScreen: {fileID: 0} 181 | iPadHighResPortraitSplashScreen: {fileID: 0} 182 | iPadLandscapeSplashScreen: {fileID: 0} 183 | iPadHighResLandscapeSplashScreen: {fileID: 0} 184 | appleTVSplashScreen: {fileID: 0} 185 | tvOSSmallIconLayers: [] 186 | tvOSLargeIconLayers: [] 187 | tvOSTopShelfImageLayers: [] 188 | tvOSTopShelfImageWideLayers: [] 189 | iOSLaunchScreenType: 0 190 | iOSLaunchScreenPortrait: {fileID: 0} 191 | iOSLaunchScreenLandscape: {fileID: 0} 192 | iOSLaunchScreenBackgroundColor: 193 | serializedVersion: 2 194 | rgba: 0 195 | iOSLaunchScreenFillPct: 100 196 | iOSLaunchScreenSize: 100 197 | iOSLaunchScreenCustomXibPath: 198 | iOSLaunchScreeniPadType: 0 199 | iOSLaunchScreeniPadImage: {fileID: 0} 200 | iOSLaunchScreeniPadBackgroundColor: 201 | serializedVersion: 2 202 | rgba: 0 203 | iOSLaunchScreeniPadFillPct: 100 204 | iOSLaunchScreeniPadSize: 100 205 | iOSLaunchScreeniPadCustomXibPath: 206 | iOSDeviceRequirements: [] 207 | iOSURLSchemes: [] 208 | iOSBackgroundModes: 0 209 | iOSMetalForceHardShadows: 0 210 | metalEditorSupport: 1 211 | metalAPIValidation: 1 212 | appleDeveloperTeamID: 213 | iOSManualSigningProvisioningProfileID: 214 | tvOSManualSigningProvisioningProfileID: 215 | appleEnableAutomaticSigning: 0 216 | AndroidTargetDevice: 0 217 | AndroidSplashScreenScale: 0 218 | androidSplashScreen: {fileID: 0} 219 | AndroidKeystoreName: 220 | AndroidKeyaliasName: 221 | AndroidTVCompatibility: 1 222 | AndroidIsGame: 1 223 | androidEnableBanner: 1 224 | m_AndroidBanners: 225 | - width: 320 226 | height: 180 227 | banner: {fileID: 0} 228 | androidGamepadSupportLevel: 0 229 | resolutionDialogBanner: {fileID: 0} 230 | m_BuildTargetIcons: [] 231 | m_BuildTargetBatching: [] 232 | m_BuildTargetGraphicsAPIs: [] 233 | m_BuildTargetVRSettings: 234 | - m_BuildTarget: Android 235 | m_Enabled: 0 236 | m_Devices: 237 | - Oculus 238 | - m_BuildTarget: Metro 239 | m_Enabled: 0 240 | m_Devices: [] 241 | - m_BuildTarget: N3DS 242 | m_Enabled: 0 243 | m_Devices: [] 244 | - m_BuildTarget: PS3 245 | m_Enabled: 0 246 | m_Devices: [] 247 | - m_BuildTarget: PS4 248 | m_Enabled: 0 249 | m_Devices: 250 | - PlayStationVR 251 | - m_BuildTarget: PSM 252 | m_Enabled: 0 253 | m_Devices: [] 254 | - m_BuildTarget: PSP2 255 | m_Enabled: 0 256 | m_Devices: [] 257 | - m_BuildTarget: SamsungTV 258 | m_Enabled: 0 259 | m_Devices: [] 260 | - m_BuildTarget: Standalone 261 | m_Enabled: 0 262 | m_Devices: 263 | - Oculus 264 | - m_BuildTarget: Tizen 265 | m_Enabled: 0 266 | m_Devices: [] 267 | - m_BuildTarget: WebGL 268 | m_Enabled: 0 269 | m_Devices: [] 270 | - m_BuildTarget: WebPlayer 271 | m_Enabled: 0 272 | m_Devices: [] 273 | - m_BuildTarget: WiiU 274 | m_Enabled: 0 275 | m_Devices: [] 276 | - m_BuildTarget: Xbox360 277 | m_Enabled: 0 278 | m_Devices: [] 279 | - m_BuildTarget: XboxOne 280 | m_Enabled: 0 281 | m_Devices: [] 282 | - m_BuildTarget: iOS 283 | m_Enabled: 0 284 | m_Devices: [] 285 | - m_BuildTarget: tvOS 286 | m_Enabled: 0 287 | m_Devices: [] 288 | openGLRequireES31: 0 289 | openGLRequireES31AEP: 0 290 | webPlayerTemplate: APPLICATION:Default 291 | m_TemplateCustomTags: {} 292 | wiiUTitleID: 0005000011000000 293 | wiiUGroupID: 00010000 294 | wiiUCommonSaveSize: 4096 295 | wiiUAccountSaveSize: 2048 296 | wiiUOlvAccessKey: 0 297 | wiiUTinCode: 0 298 | wiiUJoinGameId: 0 299 | wiiUJoinGameModeMask: 0000000000000000 300 | wiiUCommonBossSize: 0 301 | wiiUAccountBossSize: 0 302 | wiiUAddOnUniqueIDs: [] 303 | wiiUMainThreadStackSize: 3072 304 | wiiULoaderThreadStackSize: 1024 305 | wiiUSystemHeapSize: 128 306 | wiiUTVStartupScreen: {fileID: 0} 307 | wiiUGamePadStartupScreen: {fileID: 0} 308 | wiiUDrcBufferDisabled: 0 309 | wiiUProfilerLibPath: 310 | actionOnDotNetUnhandledException: 1 311 | enableInternalProfiler: 0 312 | logObjCUncaughtExceptions: 1 313 | enableCrashReportAPI: 0 314 | cameraUsageDescription: 315 | locationUsageDescription: 316 | microphoneUsageDescription: 317 | switchNetLibKey: 318 | switchSocketMemoryPoolSize: 6144 319 | switchSocketAllocatorPoolSize: 128 320 | switchSocketConcurrencyLimit: 14 321 | switchUseCPUProfiler: 0 322 | switchApplicationID: 0x0005000C10000001 323 | switchNSODependencies: 324 | switchTitleNames_0: 325 | switchTitleNames_1: 326 | switchTitleNames_2: 327 | switchTitleNames_3: 328 | switchTitleNames_4: 329 | switchTitleNames_5: 330 | switchTitleNames_6: 331 | switchTitleNames_7: 332 | switchTitleNames_8: 333 | switchTitleNames_9: 334 | switchTitleNames_10: 335 | switchTitleNames_11: 336 | switchTitleNames_12: 337 | switchTitleNames_13: 338 | switchTitleNames_14: 339 | switchPublisherNames_0: 340 | switchPublisherNames_1: 341 | switchPublisherNames_2: 342 | switchPublisherNames_3: 343 | switchPublisherNames_4: 344 | switchPublisherNames_5: 345 | switchPublisherNames_6: 346 | switchPublisherNames_7: 347 | switchPublisherNames_8: 348 | switchPublisherNames_9: 349 | switchPublisherNames_10: 350 | switchPublisherNames_11: 351 | switchPublisherNames_12: 352 | switchPublisherNames_13: 353 | switchPublisherNames_14: 354 | switchIcons_0: {fileID: 0} 355 | switchIcons_1: {fileID: 0} 356 | switchIcons_2: {fileID: 0} 357 | switchIcons_3: {fileID: 0} 358 | switchIcons_4: {fileID: 0} 359 | switchIcons_5: {fileID: 0} 360 | switchIcons_6: {fileID: 0} 361 | switchIcons_7: {fileID: 0} 362 | switchIcons_8: {fileID: 0} 363 | switchIcons_9: {fileID: 0} 364 | switchIcons_10: {fileID: 0} 365 | switchIcons_11: {fileID: 0} 366 | switchIcons_12: {fileID: 0} 367 | switchIcons_13: {fileID: 0} 368 | switchIcons_14: {fileID: 0} 369 | switchSmallIcons_0: {fileID: 0} 370 | switchSmallIcons_1: {fileID: 0} 371 | switchSmallIcons_2: {fileID: 0} 372 | switchSmallIcons_3: {fileID: 0} 373 | switchSmallIcons_4: {fileID: 0} 374 | switchSmallIcons_5: {fileID: 0} 375 | switchSmallIcons_6: {fileID: 0} 376 | switchSmallIcons_7: {fileID: 0} 377 | switchSmallIcons_8: {fileID: 0} 378 | switchSmallIcons_9: {fileID: 0} 379 | switchSmallIcons_10: {fileID: 0} 380 | switchSmallIcons_11: {fileID: 0} 381 | switchSmallIcons_12: {fileID: 0} 382 | switchSmallIcons_13: {fileID: 0} 383 | switchSmallIcons_14: {fileID: 0} 384 | switchManualHTML: 385 | switchAccessibleURLs: 386 | switchLegalInformation: 387 | switchMainThreadStackSize: 1048576 388 | switchPresenceGroupId: 0x0005000C10000001 389 | switchLogoHandling: 0 390 | switchReleaseVersion: 0 391 | switchDisplayVersion: 1.0.0 392 | switchStartupUserAccount: 0 393 | switchTouchScreenUsage: 0 394 | switchSupportedLanguagesMask: 0 395 | switchLogoType: 0 396 | switchApplicationErrorCodeCategory: 397 | switchUserAccountSaveDataSize: 0 398 | switchUserAccountSaveDataJournalSize: 0 399 | switchAttribute: 0 400 | switchCardSpecSize: 4 401 | switchCardSpecClock: 25 402 | switchRatingsMask: 0 403 | switchRatingsInt_0: 0 404 | switchRatingsInt_1: 0 405 | switchRatingsInt_2: 0 406 | switchRatingsInt_3: 0 407 | switchRatingsInt_4: 0 408 | switchRatingsInt_5: 0 409 | switchRatingsInt_6: 0 410 | switchRatingsInt_7: 0 411 | switchRatingsInt_8: 0 412 | switchRatingsInt_9: 0 413 | switchRatingsInt_10: 0 414 | switchRatingsInt_11: 0 415 | switchLocalCommunicationIds_0: 0x0005000C10000001 416 | switchLocalCommunicationIds_1: 417 | switchLocalCommunicationIds_2: 418 | switchLocalCommunicationIds_3: 419 | switchLocalCommunicationIds_4: 420 | switchLocalCommunicationIds_5: 421 | switchLocalCommunicationIds_6: 422 | switchLocalCommunicationIds_7: 423 | switchParentalControl: 0 424 | switchAllowsScreenshot: 1 425 | switchDataLossConfirmation: 0 426 | ps4NPAgeRating: 12 427 | ps4NPTitleSecret: 428 | ps4NPTrophyPackPath: 429 | ps4ParentalLevel: 1 430 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 431 | ps4Category: 0 432 | ps4MasterVersion: 01.00 433 | ps4AppVersion: 01.00 434 | ps4AppType: 0 435 | ps4ParamSfxPath: 436 | ps4VideoOutPixelFormat: 0 437 | ps4VideoOutInitialWidth: 1920 438 | ps4VideoOutBaseModeInitialWidth: 1920 439 | ps4VideoOutReprojectionRate: 120 440 | ps4PronunciationXMLPath: 441 | ps4PronunciationSIGPath: 442 | ps4BackgroundImagePath: 443 | ps4StartupImagePath: 444 | ps4SaveDataImagePath: 445 | ps4SdkOverride: 446 | ps4BGMPath: 447 | ps4ShareFilePath: 448 | ps4ShareOverlayImagePath: 449 | ps4PrivacyGuardImagePath: 450 | ps4NPtitleDatPath: 451 | ps4RemotePlayKeyAssignment: -1 452 | ps4RemotePlayKeyMappingDir: 453 | ps4PlayTogetherPlayerCount: 0 454 | ps4EnterButtonAssignment: 1 455 | ps4ApplicationParam1: 0 456 | ps4ApplicationParam2: 0 457 | ps4ApplicationParam3: 0 458 | ps4ApplicationParam4: 0 459 | ps4DownloadDataSize: 0 460 | ps4GarlicHeapSize: 2048 461 | ps4ProGarlicHeapSize: 2560 462 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 463 | ps4UseDebugIl2cppLibs: 0 464 | ps4pnSessions: 1 465 | ps4pnPresence: 1 466 | ps4pnFriends: 1 467 | ps4pnGameCustomData: 1 468 | playerPrefsSupport: 0 469 | restrictedAudioUsageRights: 0 470 | ps4UseResolutionFallback: 0 471 | ps4ReprojectionSupport: 0 472 | ps4UseAudio3dBackend: 0 473 | ps4SocialScreenEnabled: 0 474 | ps4ScriptOptimizationLevel: 3 475 | ps4Audio3dVirtualSpeakerCount: 14 476 | ps4attribCpuUsage: 0 477 | ps4PatchPkgPath: 478 | ps4PatchLatestPkgPath: 479 | ps4PatchChangeinfoPath: 480 | ps4PatchDayOne: 0 481 | ps4attribUserManagement: 0 482 | ps4attribMoveSupport: 0 483 | ps4attrib3DSupport: 0 484 | ps4attribShareSupport: 0 485 | ps4attribExclusiveVR: 0 486 | ps4disableAutoHideSplash: 0 487 | ps4videoRecordingFeaturesUsed: 0 488 | ps4contentSearchFeaturesUsed: 0 489 | ps4attribEyeToEyeDistanceSettingVR: 0 490 | ps4IncludedModules: [] 491 | monoEnv: 492 | psp2Splashimage: {fileID: 0} 493 | psp2NPTrophyPackPath: 494 | psp2NPSupportGBMorGJP: 0 495 | psp2NPAgeRating: 12 496 | psp2NPTitleDatPath: 497 | psp2NPCommsID: 498 | psp2NPCommunicationsID: 499 | psp2NPCommsPassphrase: 500 | psp2NPCommsSig: 501 | psp2ParamSfxPath: 502 | psp2ManualPath: 503 | psp2LiveAreaGatePath: 504 | psp2LiveAreaBackroundPath: 505 | psp2LiveAreaPath: 506 | psp2LiveAreaTrialPath: 507 | psp2PatchChangeInfoPath: 508 | psp2PatchOriginalPackage: 509 | psp2PackagePassword: F69AzBlax3CF3EDNhm3soLBPh71Yexui 510 | psp2KeystoneFile: 511 | psp2MemoryExpansionMode: 0 512 | psp2DRMType: 0 513 | psp2StorageType: 0 514 | psp2MediaCapacity: 0 515 | psp2DLCConfigPath: 516 | psp2ThumbnailPath: 517 | psp2BackgroundPath: 518 | psp2SoundPath: 519 | psp2TrophyCommId: 520 | psp2TrophyPackagePath: 521 | psp2PackagedResourcesPath: 522 | psp2SaveDataQuota: 10240 523 | psp2ParentalLevel: 1 524 | psp2ShortTitle: Not Set 525 | psp2ContentID: IV0000-ABCD12345_00-0123456789ABCDEF 526 | psp2Category: 0 527 | psp2MasterVersion: 01.00 528 | psp2AppVersion: 01.00 529 | psp2TVBootMode: 0 530 | psp2EnterButtonAssignment: 2 531 | psp2TVDisableEmu: 0 532 | psp2AllowTwitterDialog: 1 533 | psp2Upgradable: 0 534 | psp2HealthWarning: 0 535 | psp2UseLibLocation: 0 536 | psp2InfoBarOnStartup: 0 537 | psp2InfoBarColor: 0 538 | psp2UseDebugIl2cppLibs: 0 539 | psmSplashimage: {fileID: 0} 540 | splashScreenBackgroundSourceLandscape: {fileID: 0} 541 | splashScreenBackgroundSourcePortrait: {fileID: 0} 542 | spritePackerPolicy: 543 | webGLMemorySize: 256 544 | webGLExceptionSupport: 1 545 | webGLNameFilesAsHashes: 0 546 | webGLDataCaching: 0 547 | webGLDebugSymbols: 0 548 | webGLEmscriptenArgs: 549 | webGLModulesDirectory: 550 | webGLTemplate: APPLICATION:Default 551 | webGLAnalyzeBuildSize: 0 552 | webGLUseEmbeddedResources: 0 553 | webGLUseWasm: 0 554 | webGLCompressionFormat: 1 555 | scriptingDefineSymbols: {} 556 | platformArchitecture: 557 | iOS: 2 558 | scriptingBackend: 559 | Android: 0 560 | Metro: 2 561 | Standalone: 0 562 | WP8: 2 563 | WebGL: 1 564 | iOS: 1 565 | incrementalIl2cppBuild: 566 | iOS: 0 567 | additionalIl2CppArgs: 568 | apiCompatibilityLevelPerPlatform: {} 569 | m_RenderingPath: 1 570 | m_MobileRenderingPath: 1 571 | metroPackageName: UnityQuery 572 | metroPackageVersion: 573 | metroCertificatePath: 574 | metroCertificatePassword: 575 | metroCertificateSubject: 576 | metroCertificateIssuer: 577 | metroCertificateNotAfter: 0000000000000000 578 | metroApplicationDescription: UnityQuery 579 | wsaImages: {} 580 | metroTileShortName: 581 | metroCommandLineArgsFile: 582 | metroTileShowName: 0 583 | metroMediumTileShowName: 0 584 | metroLargeTileShowName: 0 585 | metroWideTileShowName: 0 586 | metroDefaultTileSize: 1 587 | metroTileForegroundText: 1 588 | metroTileBackgroundColor: {r: 0, g: 0, b: 0, a: 1} 589 | metroSplashScreenBackgroundColor: {r: 0, g: 0, b: 0, a: 1} 590 | metroSplashScreenUseBackgroundColor: 0 591 | platformCapabilities: {} 592 | metroFTAName: 593 | metroFTAFileTypes: [] 594 | metroProtocolName: 595 | metroCompilationOverrides: 1 596 | tizenProductDescription: 597 | tizenProductURL: 598 | tizenSigningProfileName: 599 | tizenGPSPermissions: 0 600 | tizenMicrophonePermissions: 0 601 | tizenDeploymentTarget: 602 | tizenDeploymentTargetType: -1 603 | tizenMinOSVersion: 1 604 | n3dsUseExtSaveData: 0 605 | n3dsCompressStaticMem: 1 606 | n3dsExtSaveDataNumber: 0x12345 607 | n3dsStackSize: 131072 608 | n3dsTargetPlatform: 2 609 | n3dsRegion: 7 610 | n3dsMediaSize: 0 611 | n3dsLogoStyle: 3 612 | n3dsTitle: GameName 613 | n3dsProductCode: 614 | n3dsApplicationId: 0xFF3FF 615 | stvDeviceAddress: 616 | stvProductDescription: 617 | stvProductAuthor: 618 | stvProductAuthorEmail: 619 | stvProductLink: 620 | stvProductCategory: 0 621 | XboxOneProductId: 622 | XboxOneUpdateKey: 623 | XboxOneSandboxId: 624 | XboxOneContentId: 625 | XboxOneTitleId: 626 | XboxOneSCId: 627 | XboxOneGameOsOverridePath: 628 | XboxOnePackagingOverridePath: 629 | XboxOneAppManifestOverridePath: 630 | XboxOnePackageEncryption: 0 631 | XboxOnePackageUpdateGranularity: 2 632 | XboxOneDescription: 633 | XboxOneLanguage: 634 | - enus 635 | XboxOneCapability: [] 636 | XboxOneGameRating: {} 637 | XboxOneIsContentPackage: 0 638 | XboxOneEnableGPUVariability: 0 639 | XboxOneSockets: {} 640 | XboxOneSplashScreen: {fileID: 0} 641 | XboxOneAllowedProductIds: [] 642 | XboxOnePersistentLocalStorageSize: 0 643 | xboxOneScriptCompiler: 0 644 | vrEditorSettings: 645 | daydream: 646 | daydreamIconForeground: {fileID: 0} 647 | daydreamIconBackground: {fileID: 0} 648 | cloudServicesEnabled: 649 | Analytics: 0 650 | Build: 0 651 | Collab: 0 652 | ErrorHub: 0 653 | Game_Performance: 0 654 | Hub: 0 655 | Purchasing: 0 656 | UNet: 0 657 | Unity_Ads: 0 658 | facebookSdkVersion: 7.9.1 659 | apiCompatibilityLevel: 2 660 | cloudProjectId: 661 | projectName: 662 | organizationId: 663 | cloudEnabled: 0 664 | enableNewInputSystem: 0 665 | -------------------------------------------------------------------------------- /Source/UnityQuery/ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 5.6.0f3 2 | -------------------------------------------------------------------------------- /Source/UnityQuery/ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 5 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Fastest 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 2 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | blendWeights: 1 21 | textureQuality: 1 22 | anisotropicTextures: 0 23 | antiAliasing: 0 24 | softParticles: 0 25 | softVegetation: 0 26 | realtimeReflectionProbes: 0 27 | billboardsFaceCameraPosition: 0 28 | vSyncCount: 0 29 | lodBias: 0.3 30 | maximumLODLevel: 0 31 | particleRaycastBudget: 4 32 | asyncUploadTimeSlice: 2 33 | asyncUploadBufferSize: 4 34 | excludedTargetPlatforms: [] 35 | - serializedVersion: 2 36 | name: Fast 37 | pixelLightCount: 0 38 | shadows: 0 39 | shadowResolution: 0 40 | shadowProjection: 1 41 | shadowCascades: 1 42 | shadowDistance: 20 43 | shadowNearPlaneOffset: 2 44 | shadowCascade2Split: 0.33333334 45 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 46 | blendWeights: 2 47 | textureQuality: 0 48 | anisotropicTextures: 0 49 | antiAliasing: 0 50 | softParticles: 0 51 | softVegetation: 0 52 | realtimeReflectionProbes: 0 53 | billboardsFaceCameraPosition: 0 54 | vSyncCount: 0 55 | lodBias: 0.4 56 | maximumLODLevel: 0 57 | particleRaycastBudget: 16 58 | asyncUploadTimeSlice: 2 59 | asyncUploadBufferSize: 4 60 | excludedTargetPlatforms: [] 61 | - serializedVersion: 2 62 | name: Simple 63 | pixelLightCount: 1 64 | shadows: 1 65 | shadowResolution: 0 66 | shadowProjection: 1 67 | shadowCascades: 1 68 | shadowDistance: 20 69 | shadowNearPlaneOffset: 2 70 | shadowCascade2Split: 0.33333334 71 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 72 | blendWeights: 2 73 | textureQuality: 0 74 | anisotropicTextures: 1 75 | antiAliasing: 0 76 | softParticles: 0 77 | softVegetation: 0 78 | realtimeReflectionProbes: 0 79 | billboardsFaceCameraPosition: 0 80 | vSyncCount: 0 81 | lodBias: 0.7 82 | maximumLODLevel: 0 83 | particleRaycastBudget: 64 84 | asyncUploadTimeSlice: 2 85 | asyncUploadBufferSize: 4 86 | excludedTargetPlatforms: [] 87 | - serializedVersion: 2 88 | name: Good 89 | pixelLightCount: 2 90 | shadows: 2 91 | shadowResolution: 1 92 | shadowProjection: 1 93 | shadowCascades: 2 94 | shadowDistance: 40 95 | shadowNearPlaneOffset: 2 96 | shadowCascade2Split: 0.33333334 97 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 98 | blendWeights: 2 99 | textureQuality: 0 100 | anisotropicTextures: 1 101 | antiAliasing: 0 102 | softParticles: 0 103 | softVegetation: 1 104 | realtimeReflectionProbes: 1 105 | billboardsFaceCameraPosition: 1 106 | vSyncCount: 1 107 | lodBias: 1 108 | maximumLODLevel: 0 109 | particleRaycastBudget: 256 110 | asyncUploadTimeSlice: 2 111 | asyncUploadBufferSize: 4 112 | excludedTargetPlatforms: [] 113 | - serializedVersion: 2 114 | name: Beautiful 115 | pixelLightCount: 3 116 | shadows: 2 117 | shadowResolution: 2 118 | shadowProjection: 1 119 | shadowCascades: 2 120 | shadowDistance: 70 121 | shadowNearPlaneOffset: 2 122 | shadowCascade2Split: 0.33333334 123 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 124 | blendWeights: 4 125 | textureQuality: 0 126 | anisotropicTextures: 2 127 | antiAliasing: 2 128 | softParticles: 1 129 | softVegetation: 1 130 | realtimeReflectionProbes: 1 131 | billboardsFaceCameraPosition: 1 132 | vSyncCount: 1 133 | lodBias: 1.5 134 | maximumLODLevel: 0 135 | particleRaycastBudget: 1024 136 | asyncUploadTimeSlice: 2 137 | asyncUploadBufferSize: 4 138 | excludedTargetPlatforms: [] 139 | - serializedVersion: 2 140 | name: Fantastic 141 | pixelLightCount: 4 142 | shadows: 2 143 | shadowResolution: 2 144 | shadowProjection: 1 145 | shadowCascades: 4 146 | shadowDistance: 150 147 | shadowNearPlaneOffset: 2 148 | shadowCascade2Split: 0.33333334 149 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 150 | blendWeights: 4 151 | textureQuality: 0 152 | anisotropicTextures: 2 153 | antiAliasing: 2 154 | softParticles: 1 155 | softVegetation: 1 156 | realtimeReflectionProbes: 1 157 | billboardsFaceCameraPosition: 1 158 | vSyncCount: 1 159 | lodBias: 2 160 | maximumLODLevel: 0 161 | particleRaycastBudget: 4096 162 | asyncUploadTimeSlice: 2 163 | asyncUploadBufferSize: 4 164 | excludedTargetPlatforms: [] 165 | m_PerPlatformDefaultQuality: 166 | Android: 2 167 | BlackBerry: 2 168 | GLES Emulation: 5 169 | PS3: 5 170 | PS4: 5 171 | PSM: 5 172 | PSP2: 5 173 | Samsung TV: 2 174 | Standalone: 5 175 | Tizen: 2 176 | WP8: 5 177 | Web: 5 178 | WebGL: 3 179 | Windows Store Apps: 5 180 | XBOX360: 5 181 | XboxOne: 5 182 | iPhone: 2 183 | -------------------------------------------------------------------------------- /Source/UnityQuery/ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /Source/UnityQuery/ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | -------------------------------------------------------------------------------- /Source/UnityQuery/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 | m_Enabled: 0 7 | m_TestMode: 0 8 | m_TestEventUrl: 9 | m_TestConfigUrl: 10 | CrashReportingSettings: 11 | m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes 12 | m_Enabled: 0 13 | m_CaptureEditorExceptions: 1 14 | UnityPurchasingSettings: 15 | m_Enabled: 0 16 | m_TestMode: 0 17 | UnityAnalyticsSettings: 18 | m_Enabled: 0 19 | m_InitializeOnStartup: 1 20 | m_TestMode: 0 21 | m_TestEventUrl: 22 | m_TestConfigUrl: 23 | UnityAdsSettings: 24 | m_Enabled: 0 25 | m_InitializeOnStartup: 1 26 | m_TestMode: 0 27 | m_EnabledPlatforms: 4294967295 28 | m_IosGameId: 29 | m_AndroidGameId: 30 | --------------------------------------------------------------------------------