├── .gitignore ├── LICENSE ├── README.md └── samples ├── solid-item-system ├── .gitignore ├── Assets │ ├── Materials.meta │ ├── Materials │ │ ├── Pistol Bullet.mat │ │ ├── Pistol Bullet.mat.meta │ │ ├── Revolver Bullet.mat │ │ └── Revolver Bullet.mat.meta │ ├── Prefabs.meta │ ├── Prefabs │ │ ├── Sphere Projectile - Pistol.prefab │ │ ├── Sphere Projectile - Pistol.prefab.meta │ │ ├── Sphere Projectile - Revolver.prefab │ │ ├── Sphere Projectile - Revolver.prefab.meta │ │ ├── Sphere Projectile.prefab │ │ └── Sphere Projectile.prefab.meta │ ├── Scenes.meta │ ├── Scenes │ │ ├── SampleScene.unity │ │ └── SampleScene.unity.meta │ ├── ScriptableObjects.meta │ ├── ScriptableObjects │ │ ├── Character Systems.meta │ │ ├── Character Systems │ │ │ ├── Player Items.asset │ │ │ ├── Player Items.asset.meta │ │ │ ├── Player Stats.asset │ │ │ └── Player Stats.asset.meta │ │ ├── Items.meta │ │ └── Items │ │ │ ├── Artifacts.meta │ │ │ ├── Artifacts │ │ │ ├── Greater Potion.asset │ │ │ ├── Greater Potion.asset.meta │ │ │ ├── Minor Potion.asset │ │ │ └── Minor Potion.asset.meta │ │ │ ├── Weapons.meta │ │ │ └── Weapons │ │ │ ├── Pistol.asset │ │ │ ├── Pistol.asset.meta │ │ │ ├── Revolver.asset │ │ │ └── Revolver.asset.meta │ ├── Scripts.meta │ └── Scripts │ │ ├── Character.meta │ │ ├── Character │ │ ├── Abstractions.meta │ │ ├── Abstractions │ │ │ ├── Character.cs │ │ │ ├── Character.cs.meta │ │ │ ├── ICharacter.cs │ │ │ ├── ICharacter.cs.meta │ │ │ ├── Items.cs │ │ │ ├── Items.cs.meta │ │ │ ├── Stats.cs │ │ │ └── Stats.cs.meta │ │ ├── CharacterItems.cs │ │ ├── CharacterItems.cs.meta │ │ ├── CharacterStats.cs │ │ ├── CharacterStats.cs.meta │ │ ├── Enemy.cs │ │ ├── Enemy.cs.meta │ │ ├── Health.cs │ │ ├── Health.cs.meta │ │ ├── Player.cs │ │ ├── Player.cs.meta │ │ ├── Tests.meta │ │ └── Tests │ │ │ ├── CharacterTests.asmdef │ │ │ ├── CharacterTests.asmdef.meta │ │ │ ├── HealthTests.cs │ │ │ └── HealthTests.cs.meta │ │ ├── Combat.meta │ │ ├── Combat │ │ ├── Abstractions.meta │ │ ├── Abstractions │ │ │ ├── ICombatBehaviour.cs │ │ │ ├── ICombatBehaviour.cs.meta │ │ │ ├── ICombatInput.cs │ │ │ ├── ICombatInput.cs.meta │ │ │ ├── IWeaponContainer.cs │ │ │ └── IWeaponContainer.cs.meta │ │ ├── PlayerCombatBehaviour.cs │ │ ├── PlayerCombatBehaviour.cs.meta │ │ ├── PlayerCombatInput.cs │ │ ├── PlayerCombatInput.cs.meta │ │ ├── Projectile.cs │ │ ├── Projectile.cs.meta │ │ ├── Tests.meta │ │ └── Tests │ │ │ ├── CombatTests.asmdef │ │ │ ├── CombatTests.asmdef.meta │ │ │ ├── ProjectileTests.cs │ │ │ └── ProjectileTests.cs.meta │ │ ├── Items.meta │ │ ├── Items │ │ ├── Abstractions.meta │ │ ├── Abstractions │ │ │ ├── Artifact.cs │ │ │ ├── Artifact.cs.meta │ │ │ ├── IUsable.cs │ │ │ ├── IUsable.cs.meta │ │ │ ├── Item.cs │ │ │ ├── Item.cs.meta │ │ │ ├── Weapon.cs │ │ │ └── Weapon.cs.meta │ │ ├── Potion.cs │ │ ├── Potion.cs.meta │ │ ├── RangedWeapon.cs │ │ └── RangedWeapon.cs.meta │ │ ├── SolidItemSystem.asmdef │ │ └── SolidItemSystem.asmdef.meta ├── Packages │ └── manifest.json ├── ProjectSettings │ ├── AudioManager.asset │ ├── ClusterInputManager.asset │ ├── DynamicsManager.asset │ ├── EditorBuildSettings.asset │ ├── EditorSettings.asset │ ├── GraphicsSettings.asset │ ├── InputManager.asset │ ├── NavMeshAreas.asset │ ├── NetworkManager.asset │ ├── Physics2DSettings.asset │ ├── PresetManager.asset │ ├── ProjectSettings.asset │ ├── ProjectVersion.txt │ ├── QualitySettings.asset │ ├── TagManager.asset │ ├── TimeManager.asset │ ├── UnityConnectSettings.asset │ └── VFXManager.asset └── README.md └── solid-principles ├── .gitignore ├── Assets ├── Scripts.meta └── Scripts │ ├── Dependency Inversion.meta │ ├── Dependency Inversion │ ├── After SOLID.meta │ ├── After SOLID │ │ ├── Enemy.cs │ │ ├── Enemy.cs.meta │ │ ├── RocketShot.cs │ │ ├── RocketShot.cs.meta │ │ ├── Score.cs │ │ ├── Score.cs.meta │ │ ├── Shot.cs │ │ ├── Shot.cs.meta │ │ ├── ShotBehaviour.cs │ │ └── ShotBehaviour.cs.meta │ ├── Before SOLID.meta │ └── Before SOLID │ │ ├── Enemy.cs │ │ ├── Enemy.cs.meta │ │ ├── RocketShot.cs │ │ ├── RocketShot.cs.meta │ │ ├── Score.cs │ │ ├── Score.cs.meta │ │ ├── Shot.cs │ │ └── Shot.cs.meta │ ├── Interface Segregation.meta │ ├── Interface Segregation │ ├── After SOLID.meta │ ├── After SOLID │ │ ├── Enemy.cs │ │ ├── Enemy.cs.meta │ │ ├── ILoadableAsByteArray.cs │ │ ├── ILoadableAsByteArray.cs.meta │ │ ├── ILoadableAsObject.cs │ │ ├── ILoadableAsObject.cs.meta │ │ ├── ILoadableAsString.cs │ │ └── ILoadableAsString.cs.meta │ ├── Before SOLID.meta │ └── Before SOLID │ │ ├── Enemy.cs │ │ ├── Enemy.cs.meta │ │ ├── ILoadable.cs │ │ └── ILoadable.cs.meta │ ├── Liskov Substitution.meta │ ├── Liskov Substitution │ ├── After SOLID.meta │ ├── After SOLID │ │ ├── GameBoard.cs │ │ ├── GameBoard.cs.meta │ │ ├── GameBoard3D.cs │ │ ├── GameBoard3D.cs.meta │ │ ├── GameTile.cs │ │ └── GameTile.cs.meta │ ├── Before SOLID.meta │ └── Before SOLID │ │ ├── GameBoard.cs │ │ ├── GameBoard.cs.meta │ │ ├── GameBoard3D.cs │ │ ├── GameBoard3D.cs.meta │ │ ├── GameTile.cs │ │ └── GameTile.cs.meta │ ├── Open Closed.meta │ ├── Open Closed │ ├── After SOLID.meta │ ├── After SOLID │ │ ├── CircleShape.cs │ │ ├── CircleShape.cs.meta │ │ ├── RectangleShape.cs │ │ ├── RectangleShape.cs.meta │ │ ├── ShapeBehaviour.cs │ │ └── ShapeBehaviour.cs.meta │ ├── Before SOLID.meta │ └── Before SOLID │ │ ├── CircleShape.cs │ │ ├── CircleShape.cs.meta │ │ ├── RectangleShape.cs │ │ ├── RectangleShape.cs.meta │ │ ├── ShapeBehaviour.cs │ │ ├── ShapeBehaviour.cs.meta │ │ ├── ShapeTools.cs │ │ └── ShapeTools.cs.meta │ ├── Single Responsibility.meta │ └── Single Responsibility │ ├── After SOLID.meta │ ├── After SOLID │ ├── Enemy.cs │ ├── Enemy.cs.meta │ ├── Player.cs │ ├── Player.cs.meta │ ├── Spawner.cs │ ├── Spawner.cs.meta │ ├── UnitHealth.cs │ ├── UnitHealth.cs.meta │ ├── UnitMovement.cs │ └── UnitMovement.cs.meta │ ├── Before SOLID.meta │ └── Before SOLID │ ├── Game.cs │ └── Game.cs.meta ├── Packages └── manifest.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset └── VFXManager.asset └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 4 | # 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Mm]emoryCaptures/ 12 | 13 | # Never ignore Asset meta data 14 | !/[Aa]ssets/**/*.meta 15 | 16 | # Uncomment this line if you wish to ignore the asset store tools plugin 17 | # /[Aa]ssets/AssetStoreTools* 18 | 19 | # TextMesh Pro files 20 | [Aa]ssets/TextMesh*Pro/ 21 | 22 | # Autogenerated Jetbrains Rider plugin 23 | [Aa]ssets/Plugins/Editor/JetBrains* 24 | 25 | # Visual Studio cache directory 26 | .vs/ 27 | 28 | # Gradle cache directory 29 | .gradle/ 30 | 31 | # Autogenerated VS/MD/Consulo solution and project files 32 | ExportedObj/ 33 | .consulo/ 34 | *.csproj 35 | *.unityproj 36 | *.sln 37 | *.suo 38 | *.tmp 39 | *.user 40 | *.userprefs 41 | *.pidb 42 | *.booproj 43 | *.svd 44 | *.pdb 45 | *.mdb 46 | *.opendb 47 | *.VC.db 48 | 49 | # Unity3D generated meta files 50 | *.pidb.meta 51 | *.pdb.meta 52 | *.mdb.meta 53 | 54 | # Unity3D generated file on crash reports 55 | sysinfo.txt 56 | 57 | # Builds 58 | *.apk 59 | *.unitypackage 60 | 61 | # Crashlytics generated file 62 | crashlytics-build.properties 63 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Lucas Sampaio Dias 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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Unity Resources 2 | Collection of tools, guides and other resources for the Unity game engine and related topics. These are **personal recommendations** based on my own experiences. 3 | 4 | *Note: Content made by Unity is omitted on purpose, as the goal of this repo is to highlight the work made by the community and because Unity tools and assets are widely known to most people. However, there are a few exceptions that I'd like to mention for their great quality and usefulness: TextMesh Pro, Cinemachine, PostProcessing Stack, and ProBuilder. You can download them using the Package Manager.* 5 | 6 | # Table of Contents 7 | * [Free Assets](#free-assets) 8 | * [Great Tools](#great-tools) 9 | * [Guides](#guides) 10 | * [Samples](#samples) 11 | 12 | 13 | ## Free Assets 14 | - [OpenGameArt.org](https://opengameart.org) 15 | - [Kenney](https://www.kenney.nl) - 3D Models and Sprites. 16 | - [Textures.com](https://www.textures.com/) 17 | - [Mixamo](https://www.mixamo.com) - 3D Animations. 18 | - [Ansimuz](https://ansimuz.itch.io/) - Pixel Art. 19 | 20 | ## Great Tools 21 | 22 | ### Free 23 | 24 | - [DOTween](https://assetstore.unity.com/packages/tools/animation/dotween-hotween-v2-27676) - Tweening tool via script. 25 | - [xNode](https://github.com/Siccity/xNode) - Graphs and nodes inside the editor. 26 | - [Graphy](https://github.com/Tayx94/graphy) - Performance tracking. 27 | - [Lean Pool](https://assetstore.unity.com/packages/tools/utilities/lean-pool-35666) - Object pooling library. 28 | 29 | ### Paid 30 | - [GitKraken](https://www.gitkraken.com/invite/6CFY7pSQ) - Much better Git experience, free for non-commercial projects. 31 | - [Odin - Inspector and Serializer](https://assetstore.unity.com/packages/tools/utilities/odin-inspector-and-serializer-89041) - Greatly improved workflows for custom inspectors and serializing objects. 32 | - [DoozyUI](https://assetstore.unity.com/packages/tools/gui/doozyui-complete-ui-management-system-138361) - Complete UI system. 33 | - [InControl](https://assetstore.unity.com/packages/tools/input-management/14695) - Cross-platform input manager. 34 | 35 | ## Guides 36 | 37 | ### A.I. 38 | - [NavMesh Basics](https://www.youtube.com/watch?v=CHV1ymlw-P8) 39 | 40 | ### Audio 41 | - [Import settings for audio files](https://www.blog.theknightsofunity.com/wrong-import-settings-killing-unity-game-part-2) 42 | 43 | ### Graphics & VFX 44 | - [Particle System Overview](https://www.youtube.com/watch?v=FEA1wTMJAR0) 45 | - [Particle System tutorials by Mirza](https://www.youtube.com/playlist?list=PLeUz3R4jvSwC1hmYN_BUBm65_oEwlQF1H) 46 | 47 | ### Modelling 48 | - [FBX: Blender 2.8 to Unity](https://www.reddit.com/r/Unity3D/comments/adu35q/perfect_fbx_export_settings_from_blender_28_to/) 49 | 50 | ### Programming 51 | - [Visual Studio Shortcuts](https://www.dofactory.com/reference/visual-studio-shortcuts) 52 | - [Visual Studio Productivity Tips](https://www.youtube.com/watch?v=lKtwxz35P5M) 53 | - [C# Coding Standards](https://www.dofactory.com/reference/csharp-coding-standards) 54 | - ["Game Programming Patterns" book by Robert Nystrom](https://gameprogrammingpatterns.com/) 55 | - ["Game Programming Patterns" video playlist by Unity3D College](https://www.youtube.com/playlist?list=PLB5_EOMkLx_VOmnIytx37lFMiajPHppmj) 56 | - ["SOLID for Unity" video playlist by Unity3D College](https://www.youtube.com/playlist?list=PLB5_EOMkLx_WjcjrsGUXq9wpTib3NCuqg) 57 | - ["Test-Driven Development (TDD) in Unity" video playlist by Infallible Code](https://www.youtube.com/playlist?list=PLKERDLXpXl_jJQiQOHDLimnulasAK3T5b) 58 | 59 | ### Version Control 60 | - [Semantic Versioning](https://semver.org/) 61 | - [Git Cheat Sheet](https://education.github.com/git-cheat-sheet-education.pdf) 62 | 63 | ## Samples 64 | 65 | ### Programming 66 | - [SOLID Principles](samples/solid-principles/) 67 | - [SOLID Item System](samples/solid-item-system/) 68 | -------------------------------------------------------------------------------- /samples/solid-item-system/.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 4 | # 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Mm]emoryCaptures/ 12 | 13 | # Never ignore Asset meta data 14 | !/[Aa]ssets/**/*.meta 15 | 16 | # Uncomment this line if you wish to ignore the asset store tools plugin 17 | # /[Aa]ssets/AssetStoreTools* 18 | 19 | # TextMesh Pro files 20 | [Aa]ssets/TextMesh*Pro/ 21 | 22 | # Autogenerated Jetbrains Rider plugin 23 | [Aa]ssets/Plugins/Editor/JetBrains* 24 | 25 | # Visual Studio cache directory 26 | .vs/ 27 | 28 | # Gradle cache directory 29 | .gradle/ 30 | 31 | # Autogenerated VS/MD/Consulo solution and project files 32 | ExportedObj/ 33 | .consulo/ 34 | *.csproj 35 | *.unityproj 36 | *.sln 37 | *.suo 38 | *.tmp 39 | *.user 40 | *.userprefs 41 | *.pidb 42 | *.booproj 43 | *.svd 44 | *.pdb 45 | *.mdb 46 | *.opendb 47 | *.VC.db 48 | 49 | # Unity3D generated meta files 50 | *.pidb.meta 51 | *.pdb.meta 52 | *.mdb.meta 53 | 54 | # Unity3D generated file on crash reports 55 | sysinfo.txt 56 | 57 | # Builds 58 | *.apk 59 | *.unitypackage 60 | 61 | # Crashlytics generated file 62 | crashlytics-build.properties 63 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 851c890886def3844b0c96d616ac47bd 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Materials/Pistol Bullet.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Pistol Bullet 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0.9716981, g: 0.27959237, b: 0.27959237, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Materials/Pistol Bullet.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 24e1e9e7005e9da4382e1ae6c078abd9 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Materials/Revolver Bullet.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Revolver Bullet 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0.972549, g: 0.75839126, b: 0.27843133, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Materials/Revolver Bullet.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 61da0bb0fd0bc78448c0940f7d82fa4b 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f12bfea528a35384cb6d6543ad6d3ac9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Prefabs/Sphere Projectile - Pistol.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &9216692422685591481 4 | PrefabInstance: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: 10 | - target: {fileID: 27044755255190543, guid: aa64ac3c150880f4fb3018236ab02059, 11 | type: 3} 12 | propertyPath: m_Name 13 | value: Sphere Projectile - Pistol 14 | objectReference: {fileID: 0} 15 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 16 | type: 3} 17 | propertyPath: m_LocalPosition.x 18 | value: 0 19 | objectReference: {fileID: 0} 20 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 21 | type: 3} 22 | propertyPath: m_LocalPosition.y 23 | value: 0 24 | objectReference: {fileID: 0} 25 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 26 | type: 3} 27 | propertyPath: m_LocalPosition.z 28 | value: 0 29 | objectReference: {fileID: 0} 30 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 31 | type: 3} 32 | propertyPath: m_LocalRotation.x 33 | value: 0 34 | objectReference: {fileID: 0} 35 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 36 | type: 3} 37 | propertyPath: m_LocalRotation.y 38 | value: 0 39 | objectReference: {fileID: 0} 40 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 41 | type: 3} 42 | propertyPath: m_LocalRotation.z 43 | value: 0 44 | objectReference: {fileID: 0} 45 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 46 | type: 3} 47 | propertyPath: m_LocalRotation.w 48 | value: 1 49 | objectReference: {fileID: 0} 50 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 51 | type: 3} 52 | propertyPath: m_RootOrder 53 | value: 0 54 | objectReference: {fileID: 0} 55 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 56 | type: 3} 57 | propertyPath: m_LocalEulerAnglesHint.x 58 | value: 0 59 | objectReference: {fileID: 0} 60 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 61 | type: 3} 62 | propertyPath: m_LocalEulerAnglesHint.y 63 | value: 0 64 | objectReference: {fileID: 0} 65 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 66 | type: 3} 67 | propertyPath: m_LocalEulerAnglesHint.z 68 | value: 0 69 | objectReference: {fileID: 0} 70 | - target: {fileID: 2130467400778435420, guid: aa64ac3c150880f4fb3018236ab02059, 71 | type: 3} 72 | propertyPath: m_Materials.Array.data[0] 73 | value: 74 | objectReference: {fileID: 2100000, guid: 24e1e9e7005e9da4382e1ae6c078abd9, type: 2} 75 | m_RemovedComponents: [] 76 | m_SourcePrefab: {fileID: 100100000, guid: aa64ac3c150880f4fb3018236ab02059, type: 3} 77 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Prefabs/Sphere Projectile - Pistol.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f3a9061ede769e8489f2a682270b5fda 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Prefabs/Sphere Projectile - Revolver.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &3124035766474222526 4 | PrefabInstance: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: 10 | - target: {fileID: 27044755255190543, guid: aa64ac3c150880f4fb3018236ab02059, 11 | type: 3} 12 | propertyPath: m_Name 13 | value: Sphere Projectile - Revolver 14 | objectReference: {fileID: 0} 15 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 16 | type: 3} 17 | propertyPath: m_LocalPosition.x 18 | value: 0 19 | objectReference: {fileID: 0} 20 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 21 | type: 3} 22 | propertyPath: m_LocalPosition.y 23 | value: 0 24 | objectReference: {fileID: 0} 25 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 26 | type: 3} 27 | propertyPath: m_LocalPosition.z 28 | value: 0 29 | objectReference: {fileID: 0} 30 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 31 | type: 3} 32 | propertyPath: m_LocalRotation.x 33 | value: 0 34 | objectReference: {fileID: 0} 35 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 36 | type: 3} 37 | propertyPath: m_LocalRotation.y 38 | value: 0 39 | objectReference: {fileID: 0} 40 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 41 | type: 3} 42 | propertyPath: m_LocalRotation.z 43 | value: 0 44 | objectReference: {fileID: 0} 45 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 46 | type: 3} 47 | propertyPath: m_LocalRotation.w 48 | value: 1 49 | objectReference: {fileID: 0} 50 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 51 | type: 3} 52 | propertyPath: m_RootOrder 53 | value: 0 54 | objectReference: {fileID: 0} 55 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 56 | type: 3} 57 | propertyPath: m_LocalEulerAnglesHint.x 58 | value: 0 59 | objectReference: {fileID: 0} 60 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 61 | type: 3} 62 | propertyPath: m_LocalEulerAnglesHint.y 63 | value: 0 64 | objectReference: {fileID: 0} 65 | - target: {fileID: 5712612137874295773, guid: aa64ac3c150880f4fb3018236ab02059, 66 | type: 3} 67 | propertyPath: m_LocalEulerAnglesHint.z 68 | value: 0 69 | objectReference: {fileID: 0} 70 | - target: {fileID: 2130467400778435420, guid: aa64ac3c150880f4fb3018236ab02059, 71 | type: 3} 72 | propertyPath: m_Materials.Array.data[0] 73 | value: 74 | objectReference: {fileID: 2100000, guid: 61da0bb0fd0bc78448c0940f7d82fa4b, type: 2} 75 | m_RemovedComponents: [] 76 | m_SourcePrefab: {fileID: 100100000, guid: aa64ac3c150880f4fb3018236ab02059, type: 3} 77 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Prefabs/Sphere Projectile - Revolver.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e0897f6d0fe3ddd42ab0cadfadcf7687 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Prefabs/Sphere Projectile.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &27044755255190543 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 5712612137874295773} 12 | - component: {fileID: 134455486250551077} 13 | - component: {fileID: 2130467400778435420} 14 | - component: {fileID: 6356728111454727813} 15 | - component: {fileID: 2518602056847673363} 16 | m_Layer: 0 17 | m_Name: Sphere Projectile 18 | m_TagString: Untagged 19 | m_Icon: {fileID: 0} 20 | m_NavMeshLayer: 0 21 | m_StaticEditorFlags: 0 22 | m_IsActive: 1 23 | --- !u!4 &5712612137874295773 24 | Transform: 25 | m_ObjectHideFlags: 0 26 | m_CorrespondingSourceObject: {fileID: 0} 27 | m_PrefabInstance: {fileID: 0} 28 | m_PrefabAsset: {fileID: 0} 29 | m_GameObject: {fileID: 27044755255190543} 30 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 31 | m_LocalPosition: {x: 0, y: 0.32, z: 1.52} 32 | m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} 33 | m_Children: [] 34 | m_Father: {fileID: 0} 35 | m_RootOrder: 0 36 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 37 | --- !u!33 &134455486250551077 38 | MeshFilter: 39 | m_ObjectHideFlags: 0 40 | m_CorrespondingSourceObject: {fileID: 0} 41 | m_PrefabInstance: {fileID: 0} 42 | m_PrefabAsset: {fileID: 0} 43 | m_GameObject: {fileID: 27044755255190543} 44 | m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} 45 | --- !u!23 &2130467400778435420 46 | MeshRenderer: 47 | m_ObjectHideFlags: 0 48 | m_CorrespondingSourceObject: {fileID: 0} 49 | m_PrefabInstance: {fileID: 0} 50 | m_PrefabAsset: {fileID: 0} 51 | m_GameObject: {fileID: 27044755255190543} 52 | m_Enabled: 1 53 | m_CastShadows: 1 54 | m_ReceiveShadows: 1 55 | m_DynamicOccludee: 1 56 | m_MotionVectors: 1 57 | m_LightProbeUsage: 1 58 | m_ReflectionProbeUsage: 1 59 | m_RenderingLayerMask: 1 60 | m_RendererPriority: 0 61 | m_Materials: 62 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} 63 | m_StaticBatchInfo: 64 | firstSubMesh: 0 65 | subMeshCount: 0 66 | m_StaticBatchRoot: {fileID: 0} 67 | m_ProbeAnchor: {fileID: 0} 68 | m_LightProbeVolumeOverride: {fileID: 0} 69 | m_ScaleInLightmap: 1 70 | m_PreserveUVs: 0 71 | m_IgnoreNormalsForChartDetection: 0 72 | m_ImportantGI: 0 73 | m_StitchLightmapSeams: 0 74 | m_SelectedEditorRenderState: 3 75 | m_MinimumChartSize: 4 76 | m_AutoUVMaxDistance: 0.5 77 | m_AutoUVMaxAngle: 89 78 | m_LightmapParameters: {fileID: 0} 79 | m_SortingLayerID: 0 80 | m_SortingLayer: 0 81 | m_SortingOrder: 0 82 | --- !u!135 &6356728111454727813 83 | SphereCollider: 84 | m_ObjectHideFlags: 0 85 | m_CorrespondingSourceObject: {fileID: 0} 86 | m_PrefabInstance: {fileID: 0} 87 | m_PrefabAsset: {fileID: 0} 88 | m_GameObject: {fileID: 27044755255190543} 89 | m_Material: {fileID: 0} 90 | m_IsTrigger: 0 91 | m_Enabled: 1 92 | serializedVersion: 2 93 | m_Radius: 0.5 94 | m_Center: {x: 0, y: 0, z: 0} 95 | --- !u!114 &2518602056847673363 96 | MonoBehaviour: 97 | m_ObjectHideFlags: 0 98 | m_CorrespondingSourceObject: {fileID: 0} 99 | m_PrefabInstance: {fileID: 0} 100 | m_PrefabAsset: {fileID: 0} 101 | m_GameObject: {fileID: 27044755255190543} 102 | m_Enabled: 1 103 | m_EditorHideFlags: 0 104 | m_Script: {fileID: 11500000, guid: f1d678332322e18448f07c64229f9c25, type: 3} 105 | m_Name: 106 | m_EditorClassIdentifier: 107 | speed: 100 108 | range: 0 109 | weapon: {fileID: 0} 110 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Prefabs/Sphere Projectile.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa64ac3c150880f4fb3018236ab02059 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 01306f483cd10a34c8a397b78043d2bb 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scenes/SampleScene.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 9 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 0 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 170076734} 41 | m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} 42 | m_UseRadianceAmbientProbe: 0 43 | --- !u!157 &3 44 | LightmapSettings: 45 | m_ObjectHideFlags: 0 46 | serializedVersion: 11 47 | m_GIWorkflowMode: 0 48 | m_GISettings: 49 | serializedVersion: 2 50 | m_BounceScale: 1 51 | m_IndirectOutputScale: 1 52 | m_AlbedoBoost: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 1 55 | m_EnableRealtimeLightmaps: 0 56 | m_LightmapEditorSettings: 57 | serializedVersion: 10 58 | m_Resolution: 2 59 | m_BakeResolution: 10 60 | m_AtlasSize: 512 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 1 64 | m_CompAOExponentDirect: 0 65 | m_Padding: 2 66 | m_LightmapParameters: {fileID: 0} 67 | m_LightmapsBakeMode: 1 68 | m_TextureCompression: 1 69 | m_FinalGather: 0 70 | m_FinalGatherFiltering: 1 71 | m_FinalGatherRayCount: 256 72 | m_ReflectionCompression: 2 73 | m_MixedBakeMode: 2 74 | m_BakeBackend: 1 75 | m_PVRSampling: 1 76 | m_PVRDirectSampleCount: 32 77 | m_PVRSampleCount: 256 78 | m_PVRBounces: 2 79 | m_PVRFilterTypeDirect: 0 80 | m_PVRFilterTypeIndirect: 0 81 | m_PVRFilterTypeAO: 0 82 | m_PVRFilteringMode: 1 83 | m_PVRCulling: 1 84 | m_PVRFilteringGaussRadiusDirect: 1 85 | m_PVRFilteringGaussRadiusIndirect: 5 86 | m_PVRFilteringGaussRadiusAO: 2 87 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 88 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 89 | m_PVRFilteringAtrousPositionSigmaAO: 1 90 | m_ShowResolutionOverlay: 1 91 | m_LightingDataAsset: {fileID: 0} 92 | m_UseShadowmask: 1 93 | --- !u!196 &4 94 | NavMeshSettings: 95 | serializedVersion: 2 96 | m_ObjectHideFlags: 0 97 | m_BuildSettings: 98 | serializedVersion: 2 99 | agentTypeID: 0 100 | agentRadius: 0.5 101 | agentHeight: 2 102 | agentSlope: 45 103 | agentClimb: 0.4 104 | ledgeDropHeight: 0 105 | maxJumpAcrossDistance: 0 106 | minRegionArea: 2 107 | manualCellSize: 0 108 | cellSize: 0.16666667 109 | manualTileSize: 0 110 | tileSize: 256 111 | accuratePlacement: 0 112 | debug: 113 | m_Flags: 0 114 | m_NavMeshData: {fileID: 0} 115 | --- !u!1 &170076733 116 | GameObject: 117 | m_ObjectHideFlags: 0 118 | m_CorrespondingSourceObject: {fileID: 0} 119 | m_PrefabInstance: {fileID: 0} 120 | m_PrefabAsset: {fileID: 0} 121 | serializedVersion: 6 122 | m_Component: 123 | - component: {fileID: 170076735} 124 | - component: {fileID: 170076734} 125 | m_Layer: 0 126 | m_Name: Directional Light 127 | m_TagString: Untagged 128 | m_Icon: {fileID: 0} 129 | m_NavMeshLayer: 0 130 | m_StaticEditorFlags: 0 131 | m_IsActive: 1 132 | --- !u!108 &170076734 133 | Light: 134 | m_ObjectHideFlags: 0 135 | m_CorrespondingSourceObject: {fileID: 0} 136 | m_PrefabInstance: {fileID: 0} 137 | m_PrefabAsset: {fileID: 0} 138 | m_GameObject: {fileID: 170076733} 139 | m_Enabled: 1 140 | serializedVersion: 8 141 | m_Type: 1 142 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 143 | m_Intensity: 1 144 | m_Range: 10 145 | m_SpotAngle: 30 146 | m_CookieSize: 10 147 | m_Shadows: 148 | m_Type: 2 149 | m_Resolution: -1 150 | m_CustomResolution: -1 151 | m_Strength: 1 152 | m_Bias: 0.05 153 | m_NormalBias: 0.4 154 | m_NearPlane: 0.2 155 | m_Cookie: {fileID: 0} 156 | m_DrawHalo: 0 157 | m_Flare: {fileID: 0} 158 | m_RenderMode: 0 159 | m_CullingMask: 160 | serializedVersion: 2 161 | m_Bits: 4294967295 162 | m_Lightmapping: 1 163 | m_LightShadowCasterMode: 0 164 | m_AreaSize: {x: 1, y: 1} 165 | m_BounceIntensity: 1 166 | m_ColorTemperature: 6570 167 | m_UseColorTemperature: 0 168 | m_ShadowRadius: 0 169 | m_ShadowAngle: 0 170 | --- !u!4 &170076735 171 | Transform: 172 | m_ObjectHideFlags: 0 173 | m_CorrespondingSourceObject: {fileID: 0} 174 | m_PrefabInstance: {fileID: 0} 175 | m_PrefabAsset: {fileID: 0} 176 | m_GameObject: {fileID: 170076733} 177 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 178 | m_LocalPosition: {x: 0, y: 3, z: 0} 179 | m_LocalScale: {x: 1, y: 1, z: 1} 180 | m_Children: [] 181 | m_Father: {fileID: 0} 182 | m_RootOrder: 0 183 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 184 | --- !u!1 &267426539 185 | GameObject: 186 | m_ObjectHideFlags: 0 187 | m_CorrespondingSourceObject: {fileID: 0} 188 | m_PrefabInstance: {fileID: 0} 189 | m_PrefabAsset: {fileID: 0} 190 | serializedVersion: 6 191 | m_Component: 192 | - component: {fileID: 267426544} 193 | - component: {fileID: 267426543} 194 | - component: {fileID: 267426542} 195 | - component: {fileID: 267426541} 196 | - component: {fileID: 267426546} 197 | - component: {fileID: 267426545} 198 | - component: {fileID: 267426540} 199 | m_Layer: 0 200 | m_Name: Player 201 | m_TagString: Untagged 202 | m_Icon: {fileID: 0} 203 | m_NavMeshLayer: 0 204 | m_StaticEditorFlags: 0 205 | m_IsActive: 1 206 | --- !u!114 &267426540 207 | MonoBehaviour: 208 | m_ObjectHideFlags: 0 209 | m_CorrespondingSourceObject: {fileID: 0} 210 | m_PrefabInstance: {fileID: 0} 211 | m_PrefabAsset: {fileID: 0} 212 | m_GameObject: {fileID: 267426539} 213 | m_Enabled: 1 214 | m_EditorHideFlags: 0 215 | m_Script: {fileID: 11500000, guid: c47e0257373404a449651ed1b32e905d, type: 3} 216 | m_Name: 217 | m_EditorClassIdentifier: 218 | --- !u!136 &267426541 219 | CapsuleCollider: 220 | m_ObjectHideFlags: 0 221 | m_CorrespondingSourceObject: {fileID: 0} 222 | m_PrefabInstance: {fileID: 0} 223 | m_PrefabAsset: {fileID: 0} 224 | m_GameObject: {fileID: 267426539} 225 | m_Material: {fileID: 0} 226 | m_IsTrigger: 0 227 | m_Enabled: 1 228 | m_Radius: 0.5 229 | m_Height: 2 230 | m_Direction: 1 231 | m_Center: {x: 0, y: 0, z: 0} 232 | --- !u!23 &267426542 233 | MeshRenderer: 234 | m_ObjectHideFlags: 0 235 | m_CorrespondingSourceObject: {fileID: 0} 236 | m_PrefabInstance: {fileID: 0} 237 | m_PrefabAsset: {fileID: 0} 238 | m_GameObject: {fileID: 267426539} 239 | m_Enabled: 1 240 | m_CastShadows: 1 241 | m_ReceiveShadows: 1 242 | m_DynamicOccludee: 1 243 | m_MotionVectors: 1 244 | m_LightProbeUsage: 1 245 | m_ReflectionProbeUsage: 1 246 | m_RenderingLayerMask: 1 247 | m_RendererPriority: 0 248 | m_Materials: 249 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} 250 | m_StaticBatchInfo: 251 | firstSubMesh: 0 252 | subMeshCount: 0 253 | m_StaticBatchRoot: {fileID: 0} 254 | m_ProbeAnchor: {fileID: 0} 255 | m_LightProbeVolumeOverride: {fileID: 0} 256 | m_ScaleInLightmap: 1 257 | m_PreserveUVs: 0 258 | m_IgnoreNormalsForChartDetection: 0 259 | m_ImportantGI: 0 260 | m_StitchLightmapSeams: 0 261 | m_SelectedEditorRenderState: 3 262 | m_MinimumChartSize: 4 263 | m_AutoUVMaxDistance: 0.5 264 | m_AutoUVMaxAngle: 89 265 | m_LightmapParameters: {fileID: 0} 266 | m_SortingLayerID: 0 267 | m_SortingLayer: 0 268 | m_SortingOrder: 0 269 | --- !u!33 &267426543 270 | MeshFilter: 271 | m_ObjectHideFlags: 0 272 | m_CorrespondingSourceObject: {fileID: 0} 273 | m_PrefabInstance: {fileID: 0} 274 | m_PrefabAsset: {fileID: 0} 275 | m_GameObject: {fileID: 267426539} 276 | m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} 277 | --- !u!4 &267426544 278 | Transform: 279 | m_ObjectHideFlags: 0 280 | m_CorrespondingSourceObject: {fileID: 0} 281 | m_PrefabInstance: {fileID: 0} 282 | m_PrefabAsset: {fileID: 0} 283 | m_GameObject: {fileID: 267426539} 284 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 285 | m_LocalPosition: {x: 0, y: 0, z: 0} 286 | m_LocalScale: {x: 1, y: 1, z: 1} 287 | m_Children: 288 | - {fileID: 534669905} 289 | m_Father: {fileID: 0} 290 | m_RootOrder: 1 291 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 292 | --- !u!114 &267426545 293 | MonoBehaviour: 294 | m_ObjectHideFlags: 0 295 | m_CorrespondingSourceObject: {fileID: 0} 296 | m_PrefabInstance: {fileID: 0} 297 | m_PrefabAsset: {fileID: 0} 298 | m_GameObject: {fileID: 267426539} 299 | m_Enabled: 1 300 | m_EditorHideFlags: 0 301 | m_Script: {fileID: 11500000, guid: 4a52dc7403b8fb44d9034a6e29fe103f, type: 3} 302 | m_Name: 303 | m_EditorClassIdentifier: 304 | primaryAttackButton: 49 305 | secondaryAttackButton: 50 306 | --- !u!114 &267426546 307 | MonoBehaviour: 308 | m_ObjectHideFlags: 0 309 | m_CorrespondingSourceObject: {fileID: 0} 310 | m_PrefabInstance: {fileID: 0} 311 | m_PrefabAsset: {fileID: 0} 312 | m_GameObject: {fileID: 267426539} 313 | m_Enabled: 1 314 | m_EditorHideFlags: 0 315 | m_Script: {fileID: 11500000, guid: 2032e4377586b394b91c1f11fdaff537, type: 3} 316 | m_Name: 317 | m_EditorClassIdentifier: 318 | stats: {fileID: 11400000, guid: 5d13e5b2e35217840a4a776c1ff3b213, type: 2} 319 | items: {fileID: 11400000, guid: 420d13c2b92bb0146bf59f0c95036635, type: 2} 320 | --- !u!1 &534669902 321 | GameObject: 322 | m_ObjectHideFlags: 0 323 | m_CorrespondingSourceObject: {fileID: 0} 324 | m_PrefabInstance: {fileID: 0} 325 | m_PrefabAsset: {fileID: 0} 326 | serializedVersion: 6 327 | m_Component: 328 | - component: {fileID: 534669905} 329 | - component: {fileID: 534669904} 330 | - component: {fileID: 534669903} 331 | m_Layer: 0 332 | m_Name: Main Camera 333 | m_TagString: MainCamera 334 | m_Icon: {fileID: 0} 335 | m_NavMeshLayer: 0 336 | m_StaticEditorFlags: 0 337 | m_IsActive: 1 338 | --- !u!81 &534669903 339 | AudioListener: 340 | m_ObjectHideFlags: 0 341 | m_CorrespondingSourceObject: {fileID: 0} 342 | m_PrefabInstance: {fileID: 0} 343 | m_PrefabAsset: {fileID: 0} 344 | m_GameObject: {fileID: 534669902} 345 | m_Enabled: 1 346 | --- !u!20 &534669904 347 | Camera: 348 | m_ObjectHideFlags: 0 349 | m_CorrespondingSourceObject: {fileID: 0} 350 | m_PrefabInstance: {fileID: 0} 351 | m_PrefabAsset: {fileID: 0} 352 | m_GameObject: {fileID: 534669902} 353 | m_Enabled: 1 354 | serializedVersion: 2 355 | m_ClearFlags: 1 356 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} 357 | m_projectionMatrixMode: 1 358 | m_SensorSize: {x: 36, y: 24} 359 | m_LensShift: {x: 0, y: 0} 360 | m_GateFitMode: 2 361 | m_FocalLength: 50 362 | m_NormalizedViewPortRect: 363 | serializedVersion: 2 364 | x: 0 365 | y: 0 366 | width: 1 367 | height: 1 368 | near clip plane: 0.3 369 | far clip plane: 1000 370 | field of view: 60 371 | orthographic: 0 372 | orthographic size: 5 373 | m_Depth: -1 374 | m_CullingMask: 375 | serializedVersion: 2 376 | m_Bits: 4294967295 377 | m_RenderingPath: -1 378 | m_TargetTexture: {fileID: 0} 379 | m_TargetDisplay: 0 380 | m_TargetEye: 3 381 | m_HDR: 1 382 | m_AllowMSAA: 1 383 | m_AllowDynamicResolution: 0 384 | m_ForceIntoRT: 0 385 | m_OcclusionCulling: 1 386 | m_StereoConvergence: 10 387 | m_StereoSeparation: 0.022 388 | --- !u!4 &534669905 389 | Transform: 390 | m_ObjectHideFlags: 0 391 | m_CorrespondingSourceObject: {fileID: 0} 392 | m_PrefabInstance: {fileID: 0} 393 | m_PrefabAsset: {fileID: 0} 394 | m_GameObject: {fileID: 534669902} 395 | m_LocalRotation: {x: 0.1335173, y: -0, z: -0, w: 0.99104655} 396 | m_LocalPosition: {x: 0, y: 4.91, z: -10} 397 | m_LocalScale: {x: 1, y: 1, z: 1} 398 | m_Children: [] 399 | m_Father: {fileID: 267426544} 400 | m_RootOrder: 0 401 | m_LocalEulerAnglesHint: {x: 15.346001, y: 0, z: 0} 402 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scenes/SampleScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9086c865b2c9264fb23d6876de5694d 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/ScriptableObjects.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f5c94fbceebf161459afad8ebe095c78 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/ScriptableObjects/Character Systems.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b327472c7b071ed4eba3d16a22601e29 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/ScriptableObjects/Character Systems/Player Items.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: cc0a03d7ab6c68040ad288d1f2bbce5c, type: 3} 13 | m_Name: Player Items 14 | m_EditorClassIdentifier: 15 | primary: {fileID: 11400000, guid: d7b2e4d935a9d6a488ddd6a4816005bf, type: 2} 16 | secondary: {fileID: 11400000, guid: 5d8d4184d28f0db49aab44de801d97ba, type: 2} 17 | inventory: 18 | - {fileID: 11400000, guid: b718e1a2b1ef7c9448a47a53d0e9d716, type: 2} 19 | - {fileID: 11400000, guid: 31bbc9be637d1fc479b168802965f109, type: 2} 20 | - {fileID: 11400000, guid: 31bbc9be637d1fc479b168802965f109, type: 2} 21 | - {fileID: 11400000, guid: d7b2e4d935a9d6a488ddd6a4816005bf, type: 2} 22 | - {fileID: 0} 23 | - {fileID: 0} 24 | - {fileID: 0} 25 | - {fileID: 0} 26 | - {fileID: 0} 27 | - {fileID: 0} 28 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/ScriptableObjects/Character Systems/Player Items.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 420d13c2b92bb0146bf59f0c95036635 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/ScriptableObjects/Character Systems/Player Stats.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 7558c840db7d715429fece0a580f0f25, type: 3} 13 | m_Name: Player Stats 14 | m_EditorClassIdentifier: 15 | health: 16 | InitialValue: 100 17 | Value: 100 18 | team: Gray Sharks 19 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/ScriptableObjects/Character Systems/Player Stats.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5d13e5b2e35217840a4a776c1ff3b213 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/ScriptableObjects/Items.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9ea99e61bafe4bf4ca93fa059087f9f5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/ScriptableObjects/Items/Artifacts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eb0b88c598934c2449fff7d36a0e5144 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/ScriptableObjects/Items/Artifacts/Greater Potion.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: d5f2ebdfdf67ef949b28a52dbed7a289, type: 3} 13 | m_Name: Greater Potion 14 | m_EditorClassIdentifier: 15 | icon: {fileID: 0} 16 | stats: {fileID: 11400000, guid: 5d13e5b2e35217840a4a776c1ff3b213, type: 2} 17 | healAmount: 50 18 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/ScriptableObjects/Items/Artifacts/Greater Potion.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b718e1a2b1ef7c9448a47a53d0e9d716 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/ScriptableObjects/Items/Artifacts/Minor Potion.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: d5f2ebdfdf67ef949b28a52dbed7a289, type: 3} 13 | m_Name: Minor Potion 14 | m_EditorClassIdentifier: 15 | icon: {fileID: 0} 16 | stats: {fileID: 11400000, guid: 5d13e5b2e35217840a4a776c1ff3b213, type: 2} 17 | healAmount: 10 18 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/ScriptableObjects/Items/Artifacts/Minor Potion.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 31bbc9be637d1fc479b168802965f109 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/ScriptableObjects/Items/Weapons.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4126876fb232e7941851b057d594077c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/ScriptableObjects/Items/Weapons/Pistol.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 9ffdcd1b693afbe43b15e7f7d2e56289, type: 3} 13 | m_Name: Pistol 14 | m_EditorClassIdentifier: 15 | icon: {fileID: 0} 16 | Damage: 15 17 | range: 10 18 | projectile: {fileID: 9189685074582332342, guid: f3a9061ede769e8489f2a682270b5fda, 19 | type: 3} 20 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/ScriptableObjects/Items/Weapons/Pistol.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d7b2e4d935a9d6a488ddd6a4816005bf 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/ScriptableObjects/Items/Weapons/Revolver.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 9ffdcd1b693afbe43b15e7f7d2e56289, type: 3} 13 | m_Name: Revolver 14 | m_EditorClassIdentifier: 15 | icon: {fileID: 0} 16 | Damage: 20 17 | range: 5 18 | projectile: {fileID: 3115040641345277873, guid: e0897f6d0fe3ddd42ab0cadfadcf7687, 19 | type: 3} 20 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/ScriptableObjects/Items/Weapons/Revolver.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5d8d4184d28f0db49aab44de801d97ba 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b58788c91e73db04d9260b4d65f1d2a0 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 506834ecadc209e42a91c92428e1a747 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Abstractions.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ebe6e60e416b7a74fb25cb396976568d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Abstractions/Character.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidItemSystem 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public abstract class Character : MonoBehaviour, ICharacter 7 | { 8 | public Stats stats; 9 | public Items items; 10 | 11 | public abstract void OnDespawn(); 12 | public abstract void OnSpawn(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Abstractions/Character.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ad8b6e397e977cc47a70c7f188752d57 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Abstractions/ICharacter.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidItemSystem 2 | { 3 | public interface ICharacter 4 | { 5 | void OnSpawn(); 6 | void OnDespawn(); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Abstractions/ICharacter.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd695ff1107df7b4fac8ea7c328da16f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Abstractions/Items.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidItemSystem 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public abstract class Items : ScriptableObject, IWeaponContainer 7 | { 8 | public abstract bool AddToInventory(Item item); 9 | public abstract Item[] GetItems(); 10 | public abstract void UseWeapon(int weaponIndex); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Abstractions/Items.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: afa38c3ac85a3254c925e454bf56cc52 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Abstractions/Stats.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidItemSystem 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public abstract class Stats : ScriptableObject 7 | { 8 | public abstract float GetHealth(); 9 | public abstract float GetMaxHealth(); 10 | public abstract float GetHealthPercent(); 11 | public abstract void Damage(float value); 12 | public abstract void Heal(float value); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Abstractions/Stats.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a975463a19bff8e4b883cc1ed46dae82 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/CharacterItems.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidItemSystem 2 | { 3 | 4 | using UnityEngine; 5 | 6 | [CreateAssetMenu] 7 | public class CharacterItems : Items 8 | { 9 | public Weapon primary; 10 | public Weapon secondary; 11 | public Item[] inventory; 12 | 13 | public override bool AddToInventory(Item item) 14 | { 15 | for (int i = 0; i < inventory.Length; i++) 16 | { 17 | if (inventory[i] == null) 18 | { 19 | inventory[i] = item; 20 | return true; 21 | } 22 | } 23 | return false; 24 | } 25 | 26 | public override Item[] GetItems() 27 | { 28 | return inventory; 29 | } 30 | 31 | /// 32 | /// Use one of the equipped weapons, primary (index 0) or secondary (index 1). 33 | /// 34 | /// 35 | public override void UseWeapon(int weaponIndex) 36 | { 37 | switch (weaponIndex) 38 | { 39 | case 0: 40 | primary.Use(); 41 | break; 42 | case 1: 43 | secondary.Use(); 44 | break; 45 | default: 46 | Debug.LogError("CharacterItems can only fire Weapon '0' or Weapon '1'"); 47 | break; 48 | } 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/CharacterItems.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cc0a03d7ab6c68040ad288d1f2bbce5c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/CharacterStats.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidItemSystem 2 | { 3 | 4 | using UnityEngine; 5 | 6 | [CreateAssetMenu] 7 | public class CharacterStats : Stats 8 | { 9 | public Health health; 10 | public string team; 11 | 12 | public override float GetHealth() 13 | { 14 | return health.Value; 15 | } 16 | 17 | public override float GetHealthPercent() 18 | { 19 | return health.Percent(); 20 | } 21 | 22 | public override float GetMaxHealth() 23 | { 24 | return health.InitialValue; 25 | } 26 | 27 | public override void Heal(float value) 28 | { 29 | health.Heal(value); 30 | } 31 | 32 | public override void Damage(float value) 33 | { 34 | health.Damage(value); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/CharacterStats.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7558c840db7d715429fece0a580f0f25 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Enemy.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidItemSystem 2 | { 3 | using System.Collections.Generic; 4 | 5 | public class Enemy : Character 6 | { 7 | private static List enemies = new List(); 8 | 9 | private void OnEnable() 10 | { 11 | OnSpawn(); 12 | } 13 | 14 | private void OnDisable() 15 | { 16 | OnDespawn(); 17 | } 18 | 19 | public override void OnDespawn() 20 | { 21 | enemies.Add(this); 22 | DropItemsOnTheGround(); 23 | } 24 | 25 | private void DropItemsOnTheGround() 26 | { 27 | for (int i = 0; i < items.GetItems().Length; i++) 28 | { 29 | //Drop the item on the ground 30 | } 31 | } 32 | 33 | public override void OnSpawn() 34 | { 35 | enemies.Remove(this); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Enemy.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b2de2c03af856244db60b6bef1beb3ff 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Health.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace SampaioDias.SolidItemSystem 4 | { 5 | [System.Serializable] 6 | public class Health 7 | { 8 | public float InitialValue { get; private set; } 9 | public float Value { get; private set; } 10 | 11 | public Health(float initialValue) 12 | { 13 | InitialValue = initialValue; 14 | Value = initialValue; 15 | } 16 | 17 | public void Damage(float value) 18 | { 19 | Value = Mathf.Clamp(Value - value, 0, InitialValue); 20 | } 21 | 22 | public void Heal(float value) 23 | { 24 | Value = Mathf.Clamp(Value + value, 0, InitialValue); 25 | } 26 | 27 | public float Percent() 28 | { 29 | return Value / InitialValue; 30 | } 31 | 32 | public bool IsEmpty() 33 | { 34 | return Percent() == 0; 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Health.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7a6ad73ac81fc3b4b8b58cde7f9002f8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Player.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidItemSystem 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class Player : Character 7 | { 8 | 9 | private void OnEnable() 10 | { 11 | OnSpawn(); 12 | } 13 | 14 | private void OnDisable() 15 | { 16 | OnDespawn(); 17 | } 18 | 19 | public override void OnSpawn() 20 | { 21 | Debug.Log(gameObject.name + " spawned"); 22 | } 23 | 24 | public override void OnDespawn() 25 | { 26 | Debug.Log(gameObject.name + " despawned"); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Player.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2032e4377586b394b91c1f11fdaff537 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Tests.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f6063d1c9ea1e754499bd984be7ff15a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Tests/CharacterTests.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CharacterTests", 3 | "references": [ 4 | "SolidItemSystem" 5 | ], 6 | "optionalUnityReferences": [ 7 | "TestAssemblies" 8 | ], 9 | "includePlatforms": [ 10 | "Editor" 11 | ], 12 | "excludePlatforms": [], 13 | "allowUnsafeCode": false, 14 | "overrideReferences": false, 15 | "precompiledReferences": [], 16 | "autoReferenced": true, 17 | "defineConstraints": [] 18 | } -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Tests/CharacterTests.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 941f7a7cf1e9f92419f758fd76264e7d 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Tests/HealthTests.cs: -------------------------------------------------------------------------------- 1 | using NUnit.Framework; 2 | 3 | namespace SampaioDias.SolidItemSystem.Tests 4 | { 5 | public class HealthTests 6 | { 7 | private int initialValue = 100; 8 | private int smallDamage = 10; 9 | private int smallHeal = 5; 10 | private int massiveAmount = 99999; 11 | 12 | [Test] 13 | public void WhenInitialized_ThenValueEqualsInitialValue() 14 | { 15 | Health health = new Health(initialValue); 16 | Assert.AreEqual(initialValue, health.Value); 17 | } 18 | 19 | [Test] 20 | public void WhenTakesDamage_ThenValueDecreases() 21 | { 22 | Health health = new Health(initialValue); 23 | health.Damage(smallDamage); 24 | Assert.AreEqual(initialValue - smallDamage, health.Value); 25 | } 26 | 27 | [Test] 28 | public void WhenTakesInitialValueAsDamage_ThenIsEmpty() 29 | { 30 | Health health = new Health(initialValue); 31 | health.Damage(initialValue); 32 | Assert.AreEqual(true, health.IsEmpty()); 33 | } 34 | 35 | [Test] 36 | public void WhenTakesMassiveValueAsDamage_ThenIsEmpty() 37 | { 38 | Health health = new Health(initialValue); 39 | health.Damage(massiveAmount); 40 | Assert.AreEqual(true, health.IsEmpty()); 41 | } 42 | 43 | [Test] 44 | public void WhenIsHealed_ThenValueIncreases() 45 | { 46 | Health health = new Health(initialValue); 47 | health.Damage(smallDamage); 48 | health.Heal(smallHeal); 49 | Assert.AreEqual(initialValue - smallDamage + smallHeal, health.Value); 50 | } 51 | 52 | [Test] 53 | public void WhenIsHealedMassivelly_ThenValueIncreasesToInitialValue() 54 | { 55 | Health health = new Health(initialValue); 56 | health.Damage(smallDamage); 57 | health.Heal(massiveAmount); 58 | Assert.AreEqual(initialValue, health.Value); 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Character/Tests/HealthTests.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6d1e96041cb2ad44d9adfb4ef7c5acbe 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Combat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 03db0629927908649b043ee386788099 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Combat/Abstractions.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bbe20f4825e00a14b97ba769f68bd11f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Combat/Abstractions/ICombatBehaviour.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidItemSystem 2 | { 3 | public interface ICombatBehaviour 4 | { 5 | void PrimaryAttack(); 6 | void SecondaryAttack(); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Combat/Abstractions/ICombatBehaviour.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 30698dbc69210004191c6dccf153f495 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Combat/Abstractions/ICombatInput.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidItemSystem 2 | { 3 | public interface ICombatInput 4 | { 5 | void Enable(); 6 | void Disable(); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Combat/Abstractions/ICombatInput.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d11dc3885ea84944581f112fe4a99de9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Combat/Abstractions/IWeaponContainer.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias 2 | { 3 | public interface IWeaponContainer 4 | { 5 | void UseWeapon(int weaponIndex); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Combat/Abstractions/IWeaponContainer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1f95b9a4e2eec1d4293a9f91864f7209 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Combat/PlayerCombatBehaviour.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidItemSystem 2 | { 3 | 4 | using UnityEngine; 5 | 6 | [RequireComponent(typeof(Character))] 7 | public class PlayerCombatBehaviour : MonoBehaviour, ICombatBehaviour 8 | { 9 | private Character character; 10 | 11 | private void Awake() 12 | { 13 | character = GetComponent(); 14 | } 15 | 16 | public void PrimaryAttack() 17 | { 18 | character.items.UseWeapon(0); 19 | } 20 | 21 | public void SecondaryAttack() 22 | { 23 | character.items.UseWeapon(1); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Combat/PlayerCombatBehaviour.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c47e0257373404a449651ed1b32e905d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Combat/PlayerCombatInput.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidItemSystem 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class PlayerCombatInput : MonoBehaviour, ICombatInput 7 | { 8 | 9 | public KeyCode primaryAttackButton; 10 | public KeyCode secondaryAttackButton; 11 | 12 | private bool inputEnabled; 13 | private ICombatBehaviour combatBehaviour; 14 | 15 | private void Awake() 16 | { 17 | combatBehaviour = GetComponent(); 18 | Enable(); 19 | } 20 | 21 | private void Update() 22 | { 23 | if (inputEnabled) 24 | { 25 | if (Input.GetKeyDown(primaryAttackButton)) 26 | { 27 | combatBehaviour.PrimaryAttack(); 28 | } 29 | if (Input.GetKeyDown(secondaryAttackButton)) 30 | { 31 | combatBehaviour.SecondaryAttack(); 32 | } 33 | } 34 | } 35 | 36 | public void Disable() 37 | { 38 | inputEnabled = false; 39 | } 40 | 41 | public void Enable() 42 | { 43 | inputEnabled = true; 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Combat/PlayerCombatInput.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4a52dc7403b8fb44d9034a6e29fe103f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Combat/Projectile.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidItemSystem 2 | { 3 | using UnityEngine; 4 | 5 | public class Projectile : MonoBehaviour 6 | { 7 | public float speed; 8 | [HideInInspector] 9 | public float range; 10 | [HideInInspector] 11 | public Weapon weapon; 12 | 13 | private void Update() 14 | { 15 | Move(Time.deltaTime); 16 | CheckRange(); 17 | } 18 | 19 | private void CheckRange() 20 | { 21 | //if range <= 0, destroy the projectile 22 | } 23 | 24 | private void Move(float deltaTime) 25 | { 26 | transform.Translate(Vector3.forward * speed * deltaTime); 27 | } 28 | 29 | private void OnTriggerEnter(Collider other) 30 | { 31 | var character = other.GetComponent(); 32 | character.stats.Damage(weapon.Damage); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Combat/Projectile.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f1d678332322e18448f07c64229f9c25 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Combat/Tests.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 25f43e6dd5539704995ecba24a5e4248 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Combat/Tests/CombatTests.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CombatTests", 3 | "references": [ 4 | "SolidItemSystem" 5 | ], 6 | "optionalUnityReferences": [ 7 | "TestAssemblies" 8 | ], 9 | "includePlatforms": [], 10 | "excludePlatforms": [], 11 | "allowUnsafeCode": false, 12 | "overrideReferences": false, 13 | "precompiledReferences": [], 14 | "autoReferenced": true, 15 | "defineConstraints": [] 16 | } -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Combat/Tests/CombatTests.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5a5f29997d900884fac2aadd21a98e6f 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Combat/Tests/ProjectileTests.cs: -------------------------------------------------------------------------------- 1 | using NUnit.Framework; 2 | using System.Collections; 3 | using UnityEngine; 4 | using UnityEngine.TestTools; 5 | 6 | namespace SampaioDias.SolidItemSystem.Tests 7 | { 8 | public class ProjectileTests 9 | { 10 | [UnityTest] 11 | public IEnumerator WhenUnityUpdates_ThenProjectileMoves() 12 | { 13 | Projectile p = new GameObject().AddComponent(); 14 | p.transform.position = Vector3.zero; 15 | p.transform.rotation = Quaternion.identity; 16 | p.speed = 1000; 17 | yield return null; 18 | Assert.IsTrue(p.transform.position.z > 0); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Combat/Tests/ProjectileTests.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4a777c60545da6c40b648f5463689259 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Items.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b91e8b9647f23464db5504d0117682c3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Items/Abstractions.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 64164fcb656812c4ab34e73dbb34ef83 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Items/Abstractions/Artifact.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidItemSystem 2 | { 3 | public abstract class Artifact : Item, IUsable 4 | { 5 | public abstract void Use(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Items/Abstractions/Artifact.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f2d59f6a584ac984b9751326de2f8bb8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Items/Abstractions/IUsable.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidItemSystem 2 | { 3 | public interface IUsable 4 | { 5 | void Use(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Items/Abstractions/IUsable.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4dab0dc72aaf03c4eac3ab95c3cae4b9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Items/Abstractions/Item.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidItemSystem 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public abstract class Item : ScriptableObject 7 | { 8 | public Texture2D icon; 9 | 10 | public abstract void Config(Character character); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Items/Abstractions/Item.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9dc1d6f481fe198458978be7045944be 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Items/Abstractions/Weapon.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidItemSystem 2 | { 3 | public abstract class Weapon : Item, IUsable 4 | { 5 | public float Damage = 10; 6 | 7 | public abstract void Use(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Items/Abstractions/Weapon.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 83abde1e4788b1b4d8fe59b37ebbfd25 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Items/Potion.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidItemSystem 2 | { 3 | using UnityEngine; 4 | 5 | [CreateAssetMenu(menuName = "Items/Artifacts/Potion")] 6 | public class Potion : Artifact 7 | { 8 | private Character character; 9 | public float healAmount; 10 | 11 | public override void Config(Character character) 12 | { 13 | this.character = character; 14 | } 15 | 16 | public override void Use() 17 | { 18 | character.stats.Heal(healAmount); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Items/Potion.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d5f2ebdfdf67ef949b28a52dbed7a289 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Items/RangedWeapon.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidItemSystem 2 | { 3 | 4 | using UnityEngine; 5 | 6 | [CreateAssetMenu(menuName = "Items/Weapons/Ranged Weapon")] 7 | public class RangedWeapon : Weapon 8 | { 9 | public float range; 10 | public GameObject projectile; 11 | private Character character; 12 | 13 | public override void Config(Character character) 14 | { 15 | this.character = character; 16 | } 17 | 18 | public override void Use() 19 | { 20 | var p = Instantiate(projectile, character.transform.position, projectile.transform.rotation).GetComponent(); 21 | if (p != null) 22 | { 23 | p.range = range; 24 | p.weapon = this; 25 | } 26 | else 27 | { 28 | Debug.Log(name + " tried to shoot " + projectile + ", but it isn't a projectile!"); 29 | Destroy(p); 30 | } 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/Items/RangedWeapon.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9ffdcd1b693afbe43b15e7f7d2e56289 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/SolidItemSystem.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SolidItemSystem" 3 | } 4 | -------------------------------------------------------------------------------- /samples/solid-item-system/Assets/Scripts/SolidItemSystem.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 16a823b63fa27e64ba26d2a06fa77f49 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /samples/solid-item-system/Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.ads": "2.0.8", 4 | "com.unity.analytics": "3.2.2", 5 | "com.unity.collab-proxy": "1.2.15", 6 | "com.unity.package-manager-ui": "2.0.3", 7 | "com.unity.purchasing": "2.0.3", 8 | "com.unity.textmeshpro": "1.3.0", 9 | "com.unity.modules.ai": "1.0.0", 10 | "com.unity.modules.animation": "1.0.0", 11 | "com.unity.modules.assetbundle": "1.0.0", 12 | "com.unity.modules.audio": "1.0.0", 13 | "com.unity.modules.cloth": "1.0.0", 14 | "com.unity.modules.director": "1.0.0", 15 | "com.unity.modules.imageconversion": "1.0.0", 16 | "com.unity.modules.imgui": "1.0.0", 17 | "com.unity.modules.jsonserialize": "1.0.0", 18 | "com.unity.modules.particlesystem": "1.0.0", 19 | "com.unity.modules.physics": "1.0.0", 20 | "com.unity.modules.physics2d": "1.0.0", 21 | "com.unity.modules.screencapture": "1.0.0", 22 | "com.unity.modules.terrain": "1.0.0", 23 | "com.unity.modules.terrainphysics": "1.0.0", 24 | "com.unity.modules.tilemap": "1.0.0", 25 | "com.unity.modules.ui": "1.0.0", 26 | "com.unity.modules.uielements": "1.0.0", 27 | "com.unity.modules.umbra": "1.0.0", 28 | "com.unity.modules.unityanalytics": "1.0.0", 29 | "com.unity.modules.unitywebrequest": "1.0.0", 30 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 31 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 32 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 33 | "com.unity.modules.unitywebrequestwww": "1.0.0", 34 | "com.unity.modules.vehicles": "1.0.0", 35 | "com.unity.modules.video": "1.0.0", 36 | "com.unity.modules.vr": "1.0.0", 37 | "com.unity.modules.wind": "1.0.0", 38 | "com.unity.modules.xr": "1.0.0" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /samples/solid-item-system/ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 1024 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /samples/solid-item-system/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 | -------------------------------------------------------------------------------- /samples/solid-item-system/ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 8 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 1 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ContactPairsMode: 0 26 | m_BroadphaseType: 0 27 | m_WorldBounds: 28 | m_Center: {x: 0, y: 0, z: 0} 29 | m_Extent: {x: 250, y: 250, z: 250} 30 | m_WorldSubdivisions: 8 31 | -------------------------------------------------------------------------------- /samples/solid-item-system/ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: [] 8 | m_configObjects: {} 9 | -------------------------------------------------------------------------------- /samples/solid-item-system/ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 7 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 2 10 | m_DefaultBehaviorMode: 0 11 | m_SpritePackerMode: 0 12 | m_SpritePackerPaddingPower: 1 13 | m_EtcTextureCompressorBehavior: 1 14 | m_EtcTextureFastCompressor: 1 15 | m_EtcTextureNormalCompressor: 2 16 | m_EtcTextureBestCompressor: 4 17 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 18 | m_ProjectGenerationRootNamespace: 19 | m_UserGeneratedProjectSuffix: 20 | m_CollabEditorSettings: 21 | inProgressEnabled: 1 22 | -------------------------------------------------------------------------------- /samples/solid-item-system/ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 12 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} 39 | m_PreloadedShaders: [] 40 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 41 | type: 0} 42 | m_CustomRenderPipeline: {fileID: 0} 43 | m_TransparencySortMode: 0 44 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 45 | m_DefaultRenderingPath: 1 46 | m_DefaultMobileRenderingPath: 1 47 | m_TierSettings: [] 48 | m_LightmapStripping: 0 49 | m_FogStripping: 0 50 | m_InstancingStripping: 0 51 | m_LightmapKeepPlain: 1 52 | m_LightmapKeepDirCombined: 1 53 | m_LightmapKeepDynamicPlain: 1 54 | m_LightmapKeepDynamicDirCombined: 1 55 | m_LightmapKeepShadowMask: 1 56 | m_LightmapKeepSubtractive: 1 57 | m_FogKeepLinear: 1 58 | m_FogKeepExp: 1 59 | m_FogKeepExp2: 1 60 | m_AlbedoSwatchInfos: [] 61 | m_LightsUseLinearIntensity: 0 62 | m_LightsUseColorTemperature: 0 63 | -------------------------------------------------------------------------------- /samples/solid-item-system/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 | -------------------------------------------------------------------------------- /samples/solid-item-system/ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /samples/solid-item-system/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 | -------------------------------------------------------------------------------- /samples/solid-item-system/ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_AutoSimulation: 1 23 | m_QueriesHitTriggers: 1 24 | m_QueriesStartInColliders: 1 25 | m_ChangeStopsCallbacks: 0 26 | m_CallbacksOnDisable: 1 27 | m_ReuseCollisionCallbacks: 1 28 | m_AutoSyncTransforms: 0 29 | m_AlwaysShowColliders: 0 30 | m_ShowColliderSleep: 1 31 | m_ShowColliderContacts: 0 32 | m_ShowColliderAABB: 0 33 | m_ContactArrowScale: 0.2 34 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 35 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 36 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 37 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 38 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 39 | -------------------------------------------------------------------------------- /samples/solid-item-system/ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: 7 | - type: 8 | m_NativeTypeID: 108 9 | m_ManagedTypePPtr: {fileID: 0} 10 | m_ManagedTypeFallback: 11 | defaultPresets: 12 | - m_Preset: {fileID: 2655988077585873504, guid: c1cf8506f04ef2c4a88b64b6c4202eea, 13 | type: 2} 14 | - type: 15 | m_NativeTypeID: 1020 16 | m_ManagedTypePPtr: {fileID: 0} 17 | m_ManagedTypeFallback: 18 | defaultPresets: 19 | - m_Preset: {fileID: 2655988077585873504, guid: 0cd792cc87e492d43b4e95b205fc5cc6, 20 | type: 2} 21 | - type: 22 | m_NativeTypeID: 1006 23 | m_ManagedTypePPtr: {fileID: 0} 24 | m_ManagedTypeFallback: 25 | defaultPresets: 26 | - m_Preset: {fileID: 2655988077585873504, guid: 7a99f8aa944efe94cb9bd74562b7d5f9, 27 | type: 2} 28 | -------------------------------------------------------------------------------- /samples/solid-item-system/ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2018.3.8f1 2 | -------------------------------------------------------------------------------- /samples/solid-item-system/ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 4 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | blendWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | particleRaycastBudget: 4 33 | asyncUploadTimeSlice: 2 34 | asyncUploadBufferSize: 16 35 | resolutionScalingFixedDPIFactor: 1 36 | excludedTargetPlatforms: [] 37 | - serializedVersion: 2 38 | name: Low 39 | pixelLightCount: 0 40 | shadows: 0 41 | shadowResolution: 0 42 | shadowProjection: 1 43 | shadowCascades: 1 44 | shadowDistance: 20 45 | shadowNearPlaneOffset: 3 46 | shadowCascade2Split: 0.33333334 47 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 48 | shadowmaskMode: 0 49 | blendWeights: 2 50 | textureQuality: 0 51 | anisotropicTextures: 0 52 | antiAliasing: 0 53 | softParticles: 0 54 | softVegetation: 0 55 | realtimeReflectionProbes: 0 56 | billboardsFaceCameraPosition: 0 57 | vSyncCount: 0 58 | lodBias: 0.4 59 | maximumLODLevel: 0 60 | particleRaycastBudget: 16 61 | asyncUploadTimeSlice: 2 62 | asyncUploadBufferSize: 16 63 | resolutionScalingFixedDPIFactor: 1 64 | excludedTargetPlatforms: [] 65 | - serializedVersion: 2 66 | name: Medium 67 | pixelLightCount: 1 68 | shadows: 1 69 | shadowResolution: 0 70 | shadowProjection: 1 71 | shadowCascades: 1 72 | shadowDistance: 20 73 | shadowNearPlaneOffset: 3 74 | shadowCascade2Split: 0.33333334 75 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 76 | shadowmaskMode: 0 77 | blendWeights: 2 78 | textureQuality: 0 79 | anisotropicTextures: 1 80 | antiAliasing: 0 81 | softParticles: 0 82 | softVegetation: 0 83 | realtimeReflectionProbes: 0 84 | billboardsFaceCameraPosition: 0 85 | vSyncCount: 1 86 | lodBias: 0.7 87 | maximumLODLevel: 0 88 | particleRaycastBudget: 64 89 | asyncUploadTimeSlice: 2 90 | asyncUploadBufferSize: 16 91 | resolutionScalingFixedDPIFactor: 1 92 | excludedTargetPlatforms: [] 93 | - serializedVersion: 2 94 | name: High 95 | pixelLightCount: 2 96 | shadows: 2 97 | shadowResolution: 1 98 | shadowProjection: 1 99 | shadowCascades: 2 100 | shadowDistance: 40 101 | shadowNearPlaneOffset: 3 102 | shadowCascade2Split: 0.33333334 103 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 104 | shadowmaskMode: 1 105 | blendWeights: 2 106 | textureQuality: 0 107 | anisotropicTextures: 1 108 | antiAliasing: 2 109 | softParticles: 0 110 | softVegetation: 1 111 | realtimeReflectionProbes: 1 112 | billboardsFaceCameraPosition: 1 113 | vSyncCount: 1 114 | lodBias: 1 115 | maximumLODLevel: 0 116 | particleRaycastBudget: 256 117 | asyncUploadTimeSlice: 2 118 | asyncUploadBufferSize: 16 119 | resolutionScalingFixedDPIFactor: 1 120 | excludedTargetPlatforms: [] 121 | - serializedVersion: 2 122 | name: Very High 123 | pixelLightCount: 3 124 | shadows: 2 125 | shadowResolution: 2 126 | shadowProjection: 1 127 | shadowCascades: 2 128 | shadowDistance: 40 129 | shadowNearPlaneOffset: 3 130 | shadowCascade2Split: 0.33333334 131 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 132 | shadowmaskMode: 1 133 | blendWeights: 4 134 | textureQuality: 0 135 | anisotropicTextures: 1 136 | antiAliasing: 4 137 | softParticles: 1 138 | softVegetation: 1 139 | realtimeReflectionProbes: 1 140 | billboardsFaceCameraPosition: 1 141 | vSyncCount: 1 142 | lodBias: 1.5 143 | maximumLODLevel: 0 144 | particleRaycastBudget: 1024 145 | asyncUploadTimeSlice: 2 146 | asyncUploadBufferSize: 16 147 | resolutionScalingFixedDPIFactor: 1 148 | excludedTargetPlatforms: [] 149 | - serializedVersion: 2 150 | name: Ultra 151 | pixelLightCount: 4 152 | shadows: 2 153 | shadowResolution: 2 154 | shadowProjection: 1 155 | shadowCascades: 4 156 | shadowDistance: 150 157 | shadowNearPlaneOffset: 3 158 | shadowCascade2Split: 0.33333334 159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 160 | shadowmaskMode: 1 161 | blendWeights: 4 162 | textureQuality: 0 163 | anisotropicTextures: 1 164 | antiAliasing: 4 165 | softParticles: 1 166 | softVegetation: 1 167 | realtimeReflectionProbes: 1 168 | billboardsFaceCameraPosition: 1 169 | vSyncCount: 1 170 | lodBias: 2 171 | maximumLODLevel: 0 172 | particleRaycastBudget: 4096 173 | asyncUploadTimeSlice: 2 174 | asyncUploadBufferSize: 16 175 | resolutionScalingFixedDPIFactor: 1 176 | excludedTargetPlatforms: [] 177 | m_PerPlatformDefaultQuality: 178 | Android: 2 179 | Nintendo 3DS: 5 180 | Nintendo Switch: 5 181 | PS4: 5 182 | PSP2: 2 183 | Standalone: 5 184 | Tizen: 2 185 | WebGL: 3 186 | WiiU: 5 187 | Windows Store Apps: 5 188 | XboxOne: 5 189 | iPhone: 2 190 | tvOS: 2 191 | -------------------------------------------------------------------------------- /samples/solid-item-system/ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - PostProcessing 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /samples/solid-item-system/ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.1 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /samples/solid-item-system/ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_TestInitMode: 0 13 | CrashReportingSettings: 14 | m_EventUrl: https://perf-events.cloud.unity3d.com 15 | m_Enabled: 0 16 | m_LogBufferSize: 10 17 | m_CaptureEditorExceptions: 1 18 | UnityPurchasingSettings: 19 | m_Enabled: 0 20 | m_TestMode: 0 21 | UnityAnalyticsSettings: 22 | m_Enabled: 0 23 | m_TestMode: 0 24 | m_InitializeOnStartup: 1 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /samples/solid-item-system/ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | -------------------------------------------------------------------------------- /samples/solid-item-system/README.md: -------------------------------------------------------------------------------- 1 | # SOLID Item System 2 | 3 | Example project to showcase [SOLID](https://en.wikipedia.org/wiki/SOLID) usage for a ficticious item system. This is not a complete system! 4 | 5 | * Single Responsibility 6 | * Classes on this project should only have a single responsibility (as much as possible). 7 | * Open Closed 8 | * The available systems are fully open to extension with Interfaces and Abstract classes (e.g.: Create a new type of item inheriting from Item). 9 | * Liskov's Substitution 10 | * Diferent implementations of the same class are interchangeable (e.g.: classes Player and Character). 11 | * Interface Segregation 12 | * Interfaces only serve a single purpose, containing a few methods only but preferably a single method (e.g. interface IUsable). 13 | * Dependency Inversion 14 | * Each concrete class that inherits from Item (or one of its sub-classes) know exactly what to do when they are activated, instead of delegating this behaviour to another class (like Character or PlayerController, for example). 15 | -------------------------------------------------------------------------------- /samples/solid-principles/.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 4 | # 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Mm]emoryCaptures/ 12 | 13 | # Never ignore Asset meta data 14 | !/[Aa]ssets/**/*.meta 15 | 16 | # Uncomment this line if you wish to ignore the asset store tools plugin 17 | # /[Aa]ssets/AssetStoreTools* 18 | 19 | # TextMesh Pro files 20 | [Aa]ssets/TextMesh*Pro/ 21 | 22 | # Autogenerated Jetbrains Rider plugin 23 | [Aa]ssets/Plugins/Editor/JetBrains* 24 | 25 | # Visual Studio cache directory 26 | .vs/ 27 | 28 | # Gradle cache directory 29 | .gradle/ 30 | 31 | # Autogenerated VS/MD/Consulo solution and project files 32 | ExportedObj/ 33 | .consulo/ 34 | *.csproj 35 | *.unityproj 36 | *.sln 37 | *.suo 38 | *.tmp 39 | *.user 40 | *.userprefs 41 | *.pidb 42 | *.booproj 43 | *.svd 44 | *.pdb 45 | *.mdb 46 | *.opendb 47 | *.VC.db 48 | 49 | # Unity3D generated meta files 50 | *.pidb.meta 51 | *.pdb.meta 52 | *.mdb.meta 53 | 54 | # Unity3D generated file on crash reports 55 | sysinfo.txt 56 | 57 | # Builds 58 | *.apk 59 | *.unitypackage 60 | 61 | # Crashlytics generated file 62 | crashlytics-build.properties 63 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7eef56ec6cfe86a439dd28dcadff015e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b699f71f000935a4f9fd7c023322f7fd 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/After SOLID.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 55620de7189c2714c846821713a58792 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/After SOLID/Enemy.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.DependencyInversion.After 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class Enemy : MonoBehaviour 7 | { 8 | public float Health = 1; 9 | 10 | private void OnCollisionEnter(Collision collision) 11 | { 12 | var shot = collision.gameObject.GetComponent(); 13 | if (shot != null) 14 | { 15 | Health -= shot.Damage; 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/After SOLID/Enemy.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e742f18dde665344b87fa0c051850ca3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/After SOLID/RocketShot.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.DependencyInversion.After 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class RocketShot : MonoBehaviour 7 | { 8 | //Do something explosive 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/After SOLID/RocketShot.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f8dc98a2dd0ae946b64482d1e19d4d6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/After SOLID/Score.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.DependencyInversion.After 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class Score : MonoBehaviour 7 | { 8 | public float Points = 0f; 9 | 10 | public void ApplyDamageScore(ShotBehaviour shot) 11 | { 12 | Points += shot.Damage; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/After SOLID/Score.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 45b0998f56923504fa3f8642ad5aed02 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/After SOLID/Shot.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.DependencyInversion.After 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class Shot : MonoBehaviour 7 | { 8 | //Do something cool 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/After SOLID/Shot.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 479628768b677f341876569c99a03a73 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/After SOLID/ShotBehaviour.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.DependencyInversion.After 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public abstract class ShotBehaviour : MonoBehaviour 7 | { 8 | public float Damage = 1f; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/After SOLID/ShotBehaviour.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0c91eaffdd562024dad268002b9eba15 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/Before SOLID.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b84ab1f7eaa096d42888cd987b9fd56e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/Before SOLID/Enemy.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.DependencyInversion.Before 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class Enemy : MonoBehaviour 7 | { 8 | public float Health = 1; 9 | 10 | private void OnCollisionEnter(Collision collision) 11 | { 12 | var shot = collision.gameObject.GetComponent(); 13 | if (shot != null) 14 | { 15 | Health -= shot.Damage; 16 | } 17 | 18 | var rocketShot = collision.gameObject.GetComponent(); 19 | if (rocketShot != null) 20 | { 21 | Health -= rocketShot.Damage; 22 | } 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/Before SOLID/Enemy.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dfe33f3ab51fe9f47837e7fcbb42a38e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/Before SOLID/RocketShot.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.DependencyInversion.Before 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class RocketShot : MonoBehaviour 7 | { 8 | public float Damage = 1f; 9 | } 10 | 11 | //Do something explosive 12 | } 13 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/Before SOLID/RocketShot.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0745994511806434c97006019d0d98e0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/Before SOLID/Score.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.DependencyInversion.Before 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class Score : MonoBehaviour 7 | { 8 | public float Points = 0f; 9 | 10 | public void ApplyDamageScore(object shot) 11 | { 12 | if (shot is Shot) 13 | Points += ((Shot)shot).Damage; 14 | if (shot is RocketShot) 15 | Points += ((RocketShot)shot).Damage; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/Before SOLID/Score.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ca31b899177787b42b5f96cb2d337735 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/Before SOLID/Shot.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.DependencyInversion.Before 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class Shot : MonoBehaviour 7 | { 8 | public float Damage = 1f; 9 | } 10 | 11 | //Do something cool 12 | } 13 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Dependency Inversion/Before SOLID/Shot.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 12d87ed514bfd7045b775c6d58c1cd0a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Interface Segregation.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b582c211ba79a9640a94cb07e1ede330 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Interface Segregation/After SOLID.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f2d48a7dac7e5f44d90d598e9a515df7 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Interface Segregation/After SOLID/Enemy.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.InterfaceSegregation.After 2 | { 3 | 4 | using UnityEngine; 5 | 6 | //Only implements the Load methods this class really needs, also improves readability 7 | public class Enemy : MonoBehaviour, ILoadableAsObject 8 | { 9 | public object LoadAsObject(string id) 10 | { 11 | throw new System.NotImplementedException(); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Interface Segregation/After SOLID/Enemy.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2e9ffc87b59957d42b0cf2452086a3f3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Interface Segregation/After SOLID/ILoadableAsByteArray.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.InterfaceSegregation.After 2 | { 3 | public interface ILoadableAsByteArray 4 | { 5 | byte[] LoadAsByteArray(string id); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Interface Segregation/After SOLID/ILoadableAsByteArray.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 191384de17fe0d84f92b2b18cd984d7c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Interface Segregation/After SOLID/ILoadableAsObject.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.InterfaceSegregation.After 2 | { 3 | public interface ILoadableAsObject 4 | { 5 | object LoadAsObject(string id); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Interface Segregation/After SOLID/ILoadableAsObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c1803a5620214d84581610dcb1c2d4f8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Interface Segregation/After SOLID/ILoadableAsString.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.InterfaceSegregation.After 2 | { 3 | public interface ILoadableAsString 4 | { 5 | string LoadAsString(string id); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Interface Segregation/After SOLID/ILoadableAsString.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 36a8f78061771234aaf72cfda09bd5ee 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Interface Segregation/Before SOLID.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 28c428e96e0ab3c40b13ced1e1632968 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Interface Segregation/Before SOLID/Enemy.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.InterfaceSegregation.Before 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class Enemy : MonoBehaviour, ILoadable 7 | { 8 | public byte[] LoadAsByteArray(string id) 9 | { 10 | throw new System.NotImplementedException(); 11 | } 12 | 13 | public object LoadAsObject(string id) 14 | { 15 | throw new System.NotImplementedException(); 16 | } 17 | 18 | public string LoadAsString(string id) 19 | { 20 | throw new System.NotImplementedException(); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Interface Segregation/Before SOLID/Enemy.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9ef1ad4dece38504d8dbdbe9e965bf2c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Interface Segregation/Before SOLID/ILoadable.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.InterfaceSegregation.Before 2 | { 3 | public interface ILoadable 4 | { 5 | string LoadAsString(string id); 6 | byte[] LoadAsByteArray(string id); 7 | object LoadAsObject(string id); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Interface Segregation/Before SOLID/ILoadable.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3a8888dd3e668614da0dd6c42c9bd42c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Liskov Substitution.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bbb321a130ed3024f8f655673db85ae8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Liskov Substitution/After SOLID.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a93f07b0e522d2a4c887129b1c02cfb8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Liskov Substitution/After SOLID/GameBoard.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.LiskovSubstitution.After 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class GameBoard : MonoBehaviour 7 | { 8 | GameTile[,] Tiles = new GameTile[100, 100]; 9 | 10 | public void SetTile(int x, int y, GameTile tile) 11 | { 12 | Tiles[x, y] = tile; 13 | } 14 | 15 | //Other methods 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Liskov Substitution/After SOLID/GameBoard.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ef16eff39da77e8458b9fcc646e08d60 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Liskov Substitution/After SOLID/GameBoard3D.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.LiskovSubstitution.After 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class GameBoard3D : MonoBehaviour 7 | { 8 | GameTile[,,] Tiles3d = new GameTile[100, 100, 100]; 9 | 10 | public void SetTile(int x, int y, int z, GameTile tile) 11 | { 12 | Tiles3d[x, y, z] = tile; 13 | } 14 | 15 | //Other methods 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Liskov Substitution/After SOLID/GameBoard3D.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 46bfaf663a6633e448f97c72e73ae29d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Liskov Substitution/After SOLID/GameTile.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.LiskovSubstitution.After 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class GameTile : MonoBehaviour 7 | { 8 | 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Liskov Substitution/After SOLID/GameTile.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 88e3ceb5fe8e1e6489f41d295b6095a6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Liskov Substitution/Before SOLID.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 90dd985833855bf47a66cc44cb1bd7a8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Liskov Substitution/Before SOLID/GameBoard.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.LiskovSubstitution.Before 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class GameBoard : MonoBehaviour 7 | { 8 | GameTile[,] Tiles = new GameTile[100, 100]; 9 | 10 | public void SetTile(int x, int y, GameTile tile) 11 | { 12 | Tiles[x, y] = tile; 13 | } 14 | 15 | //Other methods 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Liskov Substitution/Before SOLID/GameBoard.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 37d78df32d118484f88c0d1dff21869f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Liskov Substitution/Before SOLID/GameBoard3D.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.LiskovSubstitution.Before 2 | { 3 | //Tiles and SetTile(int x, int y, GameTile tile) still exists here (inherited from GameBoard), 4 | //so we have two "Tiles" variables and two "SetTile" methods. 5 | public class GameBoard3D : GameBoard 6 | { 7 | GameTile[,,] Tiles3d = new GameTile[100, 100, 100]; 8 | 9 | public void SetTile(int x, int y, int z, GameTile tile) 10 | { 11 | Tiles3d[x, y, z] = tile; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Liskov Substitution/Before SOLID/GameBoard3D.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 30c0228f7544eb04eb79f522705f0442 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Liskov Substitution/Before SOLID/GameTile.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.LiskovSubstitution.Before 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class GameTile : MonoBehaviour 7 | { 8 | 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Liskov Substitution/Before SOLID/GameTile.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f8ac6c23d6657664188f7d8de3b928c0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Open Closed.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 81c3084ed5f9a2a4c8c352f27ac7435f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Open Closed/After SOLID.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f752f253f444bbc42a762007a9b09ce1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Open Closed/After SOLID/CircleShape.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace SampaioDias.SolidPrinciples.OpenClosed.After 4 | { 5 | public class CircleShape : ShapeBehaviour 6 | { 7 | public float Radius { get; set; } 8 | 9 | public override float Area() 10 | { 11 | return Radius * Radius * Mathf.PI; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Open Closed/After SOLID/CircleShape.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 24f3b08998d63574db17a46f31e66667 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Open Closed/After SOLID/RectangleShape.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.OpenClosed.After 2 | { 3 | public class RectangleShape : ShapeBehaviour 4 | { 5 | public override float Area() 6 | { 7 | return Height * Width; 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Open Closed/After SOLID/RectangleShape.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 66b57d95c6bf34a4ea8eb0f2e966b942 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Open Closed/After SOLID/ShapeBehaviour.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.OpenClosed.After 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public abstract class ShapeBehaviour : MonoBehaviour 7 | { 8 | public float Height { get; set; } 9 | public float Width { get; set; } 10 | 11 | public abstract float Area(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Open Closed/After SOLID/ShapeBehaviour.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d2889f7a37d833d45a51914cbf5db242 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Open Closed/Before SOLID.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dedf90777eab00242b79e48f929768bf 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Open Closed/Before SOLID/CircleShape.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.OpenClosed.Before 2 | { 3 | public class CircleShape : ShapeBehaviour 4 | { 5 | public float Radius { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Open Closed/Before SOLID/CircleShape.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e6f26f7f9260cb64388c0faa628b8ab5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Open Closed/Before SOLID/RectangleShape.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.OpenClosed.Before 2 | { 3 | public class RectangleShape : ShapeBehaviour 4 | { 5 | 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Open Closed/Before SOLID/RectangleShape.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bf26ecf86b80b5442921a9085d4b408b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Open Closed/Before SOLID/ShapeBehaviour.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.OpenClosed.Before 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class ShapeBehaviour : MonoBehaviour 7 | { 8 | public float Height { get; set; } 9 | public float Width { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Open Closed/Before SOLID/ShapeBehaviour.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b2fd595142d52374cb8e4714fd2c5b73 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Open Closed/Before SOLID/ShapeTools.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace SampaioDias.SolidPrinciples.OpenClosed.Before 4 | { 5 | public class ShapeTools 6 | { 7 | public static float Area(ShapeBehaviour shape) 8 | { 9 | if (shape is RectangleShape) 10 | { 11 | return shape.Height * shape.Width; 12 | } 13 | 14 | if (shape is CircleShape) 15 | { 16 | var radius = ((CircleShape)shape).Radius; 17 | return radius * radius * Mathf.PI; 18 | } 19 | 20 | throw new System.NotImplementedException(shape.GetType().Name + " is not implemented yet in ShapeTools.Area()"); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Open Closed/Before SOLID/ShapeTools.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7ce15fb6bf8d774448cb6492e3332327 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Single Responsibility.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 94aa9649384aac747b71df6205b7d5c2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Single Responsibility/After SOLID.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ef00c40755b302749b16e73cac57edea 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Single Responsibility/After SOLID/Enemy.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.SingleResponsibility.After 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class Enemy : MonoBehaviour 7 | { 8 | public UnitHealth health; 9 | public UnitMovement movement; 10 | 11 | //Enemy methods 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Single Responsibility/After SOLID/Enemy.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7378449bf0febb4cae7ca73bf3fd56c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Single Responsibility/After SOLID/Player.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.SingleResponsibility.After 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class Player : MonoBehaviour 7 | { 8 | public UnitHealth health; 9 | public UnitMovement movement; 10 | 11 | //Player methods 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Single Responsibility/After SOLID/Player.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6b7d5b62f4fd45047bd06fe7e88d3942 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Single Responsibility/After SOLID/Spawner.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.SingleResponsibility.After 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class Spawner : MonoBehaviour 7 | { 8 | public int EnemySpawnCount = 20; 9 | public int Level = 1; 10 | 11 | //Spawner methods 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Single Responsibility/After SOLID/Spawner.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4d46c993706f04841b969767364bab94 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Single Responsibility/After SOLID/UnitHealth.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.SingleResponsibility.After 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class UnitHealth : MonoBehaviour 7 | { 8 | public float CurrentValue; 9 | public float MaxValue; 10 | 11 | //Health methods (Damage, Heal, etc.) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Single Responsibility/After SOLID/UnitHealth.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5fdf9e9dfc8c65542b3ec8f9ea806aa5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Single Responsibility/After SOLID/UnitMovement.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.SingleResponsibility.After 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class UnitMovement : MonoBehaviour 7 | { 8 | public float Speed = 10f; 9 | 10 | //Movement methods 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Single Responsibility/After SOLID/UnitMovement.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: da9eb72ad9be803418aac04f309060b4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Single Responsibility/Before SOLID.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 89a6b9776657e664bb9f5348f547f8eb 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Single Responsibility/Before SOLID/Game.cs: -------------------------------------------------------------------------------- 1 | namespace SampaioDias.SolidPrinciples.SingleResponsibility.Before 2 | { 3 | 4 | using UnityEngine; 5 | 6 | public class Game : MonoBehaviour 7 | { 8 | public float EnemySpeed = 1f; 9 | public float PlayerSpeed = 1f; 10 | public int EnemySpawnCount = 20; 11 | public int Level = 1; 12 | public float MaxHealth = 100f; 13 | public float Health = 100f; 14 | 15 | //Bunch of methods 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /samples/solid-principles/Assets/Scripts/Single Responsibility/Before SOLID/Game.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b2292e7c8ec7c9247aea7cd3228548db 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /samples/solid-principles/Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.ads": "2.0.8", 4 | "com.unity.analytics": "3.2.2", 5 | "com.unity.collab-proxy": "1.2.15", 6 | "com.unity.package-manager-ui": "2.0.3", 7 | "com.unity.purchasing": "2.0.3", 8 | "com.unity.textmeshpro": "1.3.0", 9 | "com.unity.modules.ai": "1.0.0", 10 | "com.unity.modules.animation": "1.0.0", 11 | "com.unity.modules.assetbundle": "1.0.0", 12 | "com.unity.modules.audio": "1.0.0", 13 | "com.unity.modules.cloth": "1.0.0", 14 | "com.unity.modules.director": "1.0.0", 15 | "com.unity.modules.imageconversion": "1.0.0", 16 | "com.unity.modules.imgui": "1.0.0", 17 | "com.unity.modules.jsonserialize": "1.0.0", 18 | "com.unity.modules.particlesystem": "1.0.0", 19 | "com.unity.modules.physics": "1.0.0", 20 | "com.unity.modules.physics2d": "1.0.0", 21 | "com.unity.modules.screencapture": "1.0.0", 22 | "com.unity.modules.terrain": "1.0.0", 23 | "com.unity.modules.terrainphysics": "1.0.0", 24 | "com.unity.modules.tilemap": "1.0.0", 25 | "com.unity.modules.ui": "1.0.0", 26 | "com.unity.modules.uielements": "1.0.0", 27 | "com.unity.modules.umbra": "1.0.0", 28 | "com.unity.modules.unityanalytics": "1.0.0", 29 | "com.unity.modules.unitywebrequest": "1.0.0", 30 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 31 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 32 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 33 | "com.unity.modules.unitywebrequestwww": "1.0.0", 34 | "com.unity.modules.vehicles": "1.0.0", 35 | "com.unity.modules.video": "1.0.0", 36 | "com.unity.modules.vr": "1.0.0", 37 | "com.unity.modules.wind": "1.0.0", 38 | "com.unity.modules.xr": "1.0.0" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /samples/solid-principles/ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 1024 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /samples/solid-principles/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 | -------------------------------------------------------------------------------- /samples/solid-principles/ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 8 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 1 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ContactPairsMode: 0 26 | m_BroadphaseType: 0 27 | m_WorldBounds: 28 | m_Center: {x: 0, y: 0, z: 0} 29 | m_Extent: {x: 250, y: 250, z: 250} 30 | m_WorldSubdivisions: 8 31 | -------------------------------------------------------------------------------- /samples/solid-principles/ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: [] 8 | m_configObjects: {} 9 | -------------------------------------------------------------------------------- /samples/solid-principles/ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 7 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 2 10 | m_DefaultBehaviorMode: 0 11 | m_SpritePackerMode: 0 12 | m_SpritePackerPaddingPower: 1 13 | m_EtcTextureCompressorBehavior: 1 14 | m_EtcTextureFastCompressor: 1 15 | m_EtcTextureNormalCompressor: 2 16 | m_EtcTextureBestCompressor: 4 17 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 18 | m_ProjectGenerationRootNamespace: 19 | m_UserGeneratedProjectSuffix: 20 | m_CollabEditorSettings: 21 | inProgressEnabled: 1 22 | -------------------------------------------------------------------------------- /samples/solid-principles/ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 12 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} 39 | m_PreloadedShaders: [] 40 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 41 | type: 0} 42 | m_CustomRenderPipeline: {fileID: 0} 43 | m_TransparencySortMode: 0 44 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 45 | m_DefaultRenderingPath: 1 46 | m_DefaultMobileRenderingPath: 1 47 | m_TierSettings: [] 48 | m_LightmapStripping: 0 49 | m_FogStripping: 0 50 | m_InstancingStripping: 0 51 | m_LightmapKeepPlain: 1 52 | m_LightmapKeepDirCombined: 1 53 | m_LightmapKeepDynamicPlain: 1 54 | m_LightmapKeepDynamicDirCombined: 1 55 | m_LightmapKeepShadowMask: 1 56 | m_LightmapKeepSubtractive: 1 57 | m_FogKeepLinear: 1 58 | m_FogKeepExp: 1 59 | m_FogKeepExp2: 1 60 | m_AlbedoSwatchInfos: [] 61 | m_LightsUseLinearIntensity: 0 62 | m_LightsUseColorTemperature: 0 63 | -------------------------------------------------------------------------------- /samples/solid-principles/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 | -------------------------------------------------------------------------------- /samples/solid-principles/ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /samples/solid-principles/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 | -------------------------------------------------------------------------------- /samples/solid-principles/ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_AutoSimulation: 1 23 | m_QueriesHitTriggers: 1 24 | m_QueriesStartInColliders: 1 25 | m_ChangeStopsCallbacks: 0 26 | m_CallbacksOnDisable: 1 27 | m_ReuseCollisionCallbacks: 1 28 | m_AutoSyncTransforms: 0 29 | m_AlwaysShowColliders: 0 30 | m_ShowColliderSleep: 1 31 | m_ShowColliderContacts: 0 32 | m_ShowColliderAABB: 0 33 | m_ContactArrowScale: 0.2 34 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 35 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 36 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 37 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 38 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 39 | -------------------------------------------------------------------------------- /samples/solid-principles/ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: 7 | - type: 8 | m_NativeTypeID: 108 9 | m_ManagedTypePPtr: {fileID: 0} 10 | m_ManagedTypeFallback: 11 | defaultPresets: 12 | - m_Preset: {fileID: 2655988077585873504, guid: c1cf8506f04ef2c4a88b64b6c4202eea, 13 | type: 2} 14 | - type: 15 | m_NativeTypeID: 1020 16 | m_ManagedTypePPtr: {fileID: 0} 17 | m_ManagedTypeFallback: 18 | defaultPresets: 19 | - m_Preset: {fileID: 2655988077585873504, guid: 0cd792cc87e492d43b4e95b205fc5cc6, 20 | type: 2} 21 | - type: 22 | m_NativeTypeID: 1006 23 | m_ManagedTypePPtr: {fileID: 0} 24 | m_ManagedTypeFallback: 25 | defaultPresets: 26 | - m_Preset: {fileID: 2655988077585873504, guid: 7a99f8aa944efe94cb9bd74562b7d5f9, 27 | type: 2} 28 | -------------------------------------------------------------------------------- /samples/solid-principles/ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 15 7 | productGUID: 74050cf486034094980ca872385684f2 8 | AndroidProfiler: 0 9 | AndroidFilterTouchesWhenObscured: 0 10 | AndroidEnableSustainedPerformanceMode: 0 11 | defaultScreenOrientation: 4 12 | targetDevice: 2 13 | useOnDemandResources: 0 14 | accelerometerFrequency: 60 15 | companyName: DefaultCompany 16 | productName: solid-principles 17 | defaultCursor: {fileID: 0} 18 | cursorHotspot: {x: 0, y: 0} 19 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} 20 | m_ShowUnitySplashScreen: 1 21 | m_ShowUnitySplashLogo: 1 22 | m_SplashScreenOverlayOpacity: 1 23 | m_SplashScreenAnimation: 1 24 | m_SplashScreenLogoStyle: 1 25 | m_SplashScreenDrawMode: 0 26 | m_SplashScreenBackgroundAnimationZoom: 1 27 | m_SplashScreenLogoAnimationZoom: 1 28 | m_SplashScreenBackgroundLandscapeAspect: 1 29 | m_SplashScreenBackgroundPortraitAspect: 1 30 | m_SplashScreenBackgroundLandscapeUvs: 31 | serializedVersion: 2 32 | x: 0 33 | y: 0 34 | width: 1 35 | height: 1 36 | m_SplashScreenBackgroundPortraitUvs: 37 | serializedVersion: 2 38 | x: 0 39 | y: 0 40 | width: 1 41 | height: 1 42 | m_SplashScreenLogos: [] 43 | m_VirtualRealitySplashScreen: {fileID: 0} 44 | m_HolographicTrackingLossScreen: {fileID: 0} 45 | defaultScreenWidth: 1024 46 | defaultScreenHeight: 768 47 | defaultScreenWidthWeb: 960 48 | defaultScreenHeightWeb: 600 49 | m_StereoRenderingPath: 0 50 | m_ActiveColorSpace: 0 51 | m_MTRendering: 1 52 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 53 | iosShowActivityIndicatorOnLoading: -1 54 | androidShowActivityIndicatorOnLoading: -1 55 | iosAppInBackgroundBehavior: 0 56 | displayResolutionDialog: 1 57 | iosAllowHTTPDownload: 1 58 | allowedAutorotateToPortrait: 1 59 | allowedAutorotateToPortraitUpsideDown: 1 60 | allowedAutorotateToLandscapeRight: 1 61 | allowedAutorotateToLandscapeLeft: 1 62 | useOSAutorotation: 1 63 | use32BitDisplayBuffer: 1 64 | preserveFramebufferAlpha: 0 65 | disableDepthAndStencilBuffers: 0 66 | androidStartInFullscreen: 1 67 | androidRenderOutsideSafeArea: 0 68 | androidBlitType: 0 69 | defaultIsNativeResolution: 1 70 | macRetinaSupport: 1 71 | runInBackground: 1 72 | captureSingleScreen: 0 73 | muteOtherAudioSources: 0 74 | Prepare IOS For Recording: 0 75 | Force IOS Speakers When Recording: 0 76 | deferSystemGesturesMode: 0 77 | hideHomeButton: 0 78 | submitAnalytics: 1 79 | usePlayerLog: 1 80 | bakeCollisionMeshes: 0 81 | forceSingleInstance: 0 82 | resizableWindow: 0 83 | useMacAppStoreValidation: 0 84 | macAppStoreCategory: public.app-category.games 85 | gpuSkinning: 1 86 | graphicsJobs: 0 87 | xboxPIXTextureCapture: 0 88 | xboxEnableAvatar: 0 89 | xboxEnableKinect: 0 90 | xboxEnableKinectAutoTracking: 0 91 | xboxEnableFitness: 0 92 | visibleInBackground: 1 93 | allowFullscreenSwitch: 1 94 | graphicsJobMode: 0 95 | fullscreenMode: 1 96 | xboxSpeechDB: 0 97 | xboxEnableHeadOrientation: 0 98 | xboxEnableGuest: 0 99 | xboxEnablePIXSampling: 0 100 | metalFramebufferOnly: 0 101 | xboxOneResolution: 0 102 | xboxOneSResolution: 0 103 | xboxOneXResolution: 3 104 | xboxOneMonoLoggingLevel: 0 105 | xboxOneLoggingLevel: 1 106 | xboxOneDisableEsram: 0 107 | xboxOnePresentImmediateThreshold: 0 108 | switchQueueCommandMemory: 0 109 | switchQueueControlMemory: 16384 110 | switchQueueComputeMemory: 262144 111 | switchNVNShaderPoolsGranularity: 33554432 112 | switchNVNDefaultPoolsGranularity: 16777216 113 | switchNVNOtherPoolsGranularity: 16777216 114 | vulkanEnableSetSRGBWrite: 0 115 | m_SupportedAspectRatios: 116 | 4:3: 1 117 | 5:4: 1 118 | 16:10: 1 119 | 16:9: 1 120 | Others: 1 121 | bundleVersion: 0.1 122 | preloadedAssets: [] 123 | metroInputSource: 0 124 | wsaTransparentSwapchain: 0 125 | m_HolographicPauseOnTrackingLoss: 1 126 | xboxOneDisableKinectGpuReservation: 1 127 | xboxOneEnable7thCore: 1 128 | isWsaHolographicRemotingEnabled: 0 129 | vrSettings: 130 | cardboard: 131 | depthFormat: 0 132 | enableTransitionView: 0 133 | daydream: 134 | depthFormat: 0 135 | useSustainedPerformanceMode: 0 136 | enableVideoLayer: 0 137 | useProtectedVideoMemory: 0 138 | minimumSupportedHeadTracking: 0 139 | maximumSupportedHeadTracking: 1 140 | hololens: 141 | depthFormat: 1 142 | depthBufferSharingEnabled: 1 143 | oculus: 144 | sharedDepthBuffer: 1 145 | dashSupport: 1 146 | enable360StereoCapture: 0 147 | protectGraphicsMemory: 0 148 | enableFrameTimingStats: 0 149 | useHDRDisplay: 0 150 | m_ColorGamuts: 00000000 151 | targetPixelDensity: 30 152 | resolutionScalingMode: 0 153 | androidSupportedAspectRatio: 1 154 | androidMaxAspectRatio: 2.1 155 | applicationIdentifier: {} 156 | buildNumber: {} 157 | AndroidBundleVersionCode: 1 158 | AndroidMinSdkVersion: 16 159 | AndroidTargetSdkVersion: 0 160 | AndroidPreferredInstallLocation: 1 161 | aotOptions: 162 | stripEngineCode: 1 163 | iPhoneStrippingLevel: 0 164 | iPhoneScriptCallOptimization: 0 165 | ForceInternetPermission: 0 166 | ForceSDCardPermission: 0 167 | CreateWallpaper: 0 168 | APKExpansionFiles: 0 169 | keepLoadedShadersAlive: 0 170 | StripUnusedMeshComponents: 1 171 | VertexChannelCompressionMask: 4054 172 | iPhoneSdkVersion: 988 173 | iOSTargetOSVersionString: 9.0 174 | tvOSSdkVersion: 0 175 | tvOSRequireExtendedGameController: 0 176 | tvOSTargetOSVersionString: 9.0 177 | uIPrerenderedIcon: 0 178 | uIRequiresPersistentWiFi: 0 179 | uIRequiresFullScreen: 1 180 | uIStatusBarHidden: 1 181 | uIExitOnSuspend: 0 182 | uIStatusBarStyle: 0 183 | iPhoneSplashScreen: {fileID: 0} 184 | iPhoneHighResSplashScreen: {fileID: 0} 185 | iPhoneTallHighResSplashScreen: {fileID: 0} 186 | iPhone47inSplashScreen: {fileID: 0} 187 | iPhone55inPortraitSplashScreen: {fileID: 0} 188 | iPhone55inLandscapeSplashScreen: {fileID: 0} 189 | iPhone58inPortraitSplashScreen: {fileID: 0} 190 | iPhone58inLandscapeSplashScreen: {fileID: 0} 191 | iPadPortraitSplashScreen: {fileID: 0} 192 | iPadHighResPortraitSplashScreen: {fileID: 0} 193 | iPadLandscapeSplashScreen: {fileID: 0} 194 | iPadHighResLandscapeSplashScreen: {fileID: 0} 195 | appleTVSplashScreen: {fileID: 0} 196 | appleTVSplashScreen2x: {fileID: 0} 197 | tvOSSmallIconLayers: [] 198 | tvOSSmallIconLayers2x: [] 199 | tvOSLargeIconLayers: [] 200 | tvOSLargeIconLayers2x: [] 201 | tvOSTopShelfImageLayers: [] 202 | tvOSTopShelfImageLayers2x: [] 203 | tvOSTopShelfImageWideLayers: [] 204 | tvOSTopShelfImageWideLayers2x: [] 205 | iOSLaunchScreenType: 0 206 | iOSLaunchScreenPortrait: {fileID: 0} 207 | iOSLaunchScreenLandscape: {fileID: 0} 208 | iOSLaunchScreenBackgroundColor: 209 | serializedVersion: 2 210 | rgba: 0 211 | iOSLaunchScreenFillPct: 100 212 | iOSLaunchScreenSize: 100 213 | iOSLaunchScreenCustomXibPath: 214 | iOSLaunchScreeniPadType: 0 215 | iOSLaunchScreeniPadImage: {fileID: 0} 216 | iOSLaunchScreeniPadBackgroundColor: 217 | serializedVersion: 2 218 | rgba: 0 219 | iOSLaunchScreeniPadFillPct: 100 220 | iOSLaunchScreeniPadSize: 100 221 | iOSLaunchScreeniPadCustomXibPath: 222 | iOSUseLaunchScreenStoryboard: 0 223 | iOSLaunchScreenCustomStoryboardPath: 224 | iOSDeviceRequirements: [] 225 | iOSURLSchemes: [] 226 | iOSBackgroundModes: 0 227 | iOSMetalForceHardShadows: 0 228 | metalEditorSupport: 1 229 | metalAPIValidation: 1 230 | iOSRenderExtraFrameOnPause: 0 231 | appleDeveloperTeamID: 232 | iOSManualSigningProvisioningProfileID: 233 | tvOSManualSigningProvisioningProfileID: 234 | iOSManualSigningProvisioningProfileType: 0 235 | tvOSManualSigningProvisioningProfileType: 0 236 | appleEnableAutomaticSigning: 0 237 | iOSRequireARKit: 0 238 | appleEnableProMotion: 0 239 | clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea 240 | templatePackageId: com.unity.template.3d@1.3.0 241 | templateDefaultScene: Assets/Scenes/SampleScene.unity 242 | AndroidTargetArchitectures: 5 243 | AndroidSplashScreenScale: 0 244 | androidSplashScreen: {fileID: 0} 245 | AndroidKeystoreName: 246 | AndroidKeyaliasName: 247 | AndroidBuildApkPerCpuArchitecture: 0 248 | AndroidTVCompatibility: 1 249 | AndroidIsGame: 1 250 | AndroidEnableTango: 0 251 | androidEnableBanner: 1 252 | androidUseLowAccuracyLocation: 0 253 | m_AndroidBanners: 254 | - width: 320 255 | height: 180 256 | banner: {fileID: 0} 257 | androidGamepadSupportLevel: 0 258 | resolutionDialogBanner: {fileID: 0} 259 | m_BuildTargetIcons: [] 260 | m_BuildTargetPlatformIcons: [] 261 | m_BuildTargetBatching: 262 | - m_BuildTarget: Standalone 263 | m_StaticBatching: 1 264 | m_DynamicBatching: 0 265 | - m_BuildTarget: tvOS 266 | m_StaticBatching: 1 267 | m_DynamicBatching: 0 268 | - m_BuildTarget: Android 269 | m_StaticBatching: 1 270 | m_DynamicBatching: 0 271 | - m_BuildTarget: iPhone 272 | m_StaticBatching: 1 273 | m_DynamicBatching: 0 274 | - m_BuildTarget: WebGL 275 | m_StaticBatching: 0 276 | m_DynamicBatching: 0 277 | m_BuildTargetGraphicsAPIs: 278 | - m_BuildTarget: AndroidPlayer 279 | m_APIs: 0b00000008000000 280 | m_Automatic: 1 281 | - m_BuildTarget: iOSSupport 282 | m_APIs: 10000000 283 | m_Automatic: 1 284 | - m_BuildTarget: AppleTVSupport 285 | m_APIs: 10000000 286 | m_Automatic: 0 287 | - m_BuildTarget: WebGLSupport 288 | m_APIs: 0b000000 289 | m_Automatic: 1 290 | m_BuildTargetVRSettings: 291 | - m_BuildTarget: Standalone 292 | m_Enabled: 0 293 | m_Devices: 294 | - Oculus 295 | - OpenVR 296 | m_BuildTargetEnableVuforiaSettings: [] 297 | openGLRequireES31: 0 298 | openGLRequireES31AEP: 0 299 | m_TemplateCustomTags: {} 300 | mobileMTRendering: 301 | Android: 1 302 | iPhone: 1 303 | tvOS: 1 304 | m_BuildTargetGroupLightmapEncodingQuality: [] 305 | m_BuildTargetGroupLightmapSettings: [] 306 | playModeTestRunnerEnabled: 0 307 | runPlayModeTestAsEditModeTest: 0 308 | actionOnDotNetUnhandledException: 1 309 | enableInternalProfiler: 0 310 | logObjCUncaughtExceptions: 1 311 | enableCrashReportAPI: 0 312 | cameraUsageDescription: 313 | locationUsageDescription: 314 | microphoneUsageDescription: 315 | switchNetLibKey: 316 | switchSocketMemoryPoolSize: 6144 317 | switchSocketAllocatorPoolSize: 128 318 | switchSocketConcurrencyLimit: 14 319 | switchScreenResolutionBehavior: 2 320 | switchUseCPUProfiler: 0 321 | switchApplicationID: 0x01004b9000490000 322 | switchNSODependencies: 323 | switchTitleNames_0: 324 | switchTitleNames_1: 325 | switchTitleNames_2: 326 | switchTitleNames_3: 327 | switchTitleNames_4: 328 | switchTitleNames_5: 329 | switchTitleNames_6: 330 | switchTitleNames_7: 331 | switchTitleNames_8: 332 | switchTitleNames_9: 333 | switchTitleNames_10: 334 | switchTitleNames_11: 335 | switchTitleNames_12: 336 | switchTitleNames_13: 337 | switchTitleNames_14: 338 | switchPublisherNames_0: 339 | switchPublisherNames_1: 340 | switchPublisherNames_2: 341 | switchPublisherNames_3: 342 | switchPublisherNames_4: 343 | switchPublisherNames_5: 344 | switchPublisherNames_6: 345 | switchPublisherNames_7: 346 | switchPublisherNames_8: 347 | switchPublisherNames_9: 348 | switchPublisherNames_10: 349 | switchPublisherNames_11: 350 | switchPublisherNames_12: 351 | switchPublisherNames_13: 352 | switchPublisherNames_14: 353 | switchIcons_0: {fileID: 0} 354 | switchIcons_1: {fileID: 0} 355 | switchIcons_2: {fileID: 0} 356 | switchIcons_3: {fileID: 0} 357 | switchIcons_4: {fileID: 0} 358 | switchIcons_5: {fileID: 0} 359 | switchIcons_6: {fileID: 0} 360 | switchIcons_7: {fileID: 0} 361 | switchIcons_8: {fileID: 0} 362 | switchIcons_9: {fileID: 0} 363 | switchIcons_10: {fileID: 0} 364 | switchIcons_11: {fileID: 0} 365 | switchIcons_12: {fileID: 0} 366 | switchIcons_13: {fileID: 0} 367 | switchIcons_14: {fileID: 0} 368 | switchSmallIcons_0: {fileID: 0} 369 | switchSmallIcons_1: {fileID: 0} 370 | switchSmallIcons_2: {fileID: 0} 371 | switchSmallIcons_3: {fileID: 0} 372 | switchSmallIcons_4: {fileID: 0} 373 | switchSmallIcons_5: {fileID: 0} 374 | switchSmallIcons_6: {fileID: 0} 375 | switchSmallIcons_7: {fileID: 0} 376 | switchSmallIcons_8: {fileID: 0} 377 | switchSmallIcons_9: {fileID: 0} 378 | switchSmallIcons_10: {fileID: 0} 379 | switchSmallIcons_11: {fileID: 0} 380 | switchSmallIcons_12: {fileID: 0} 381 | switchSmallIcons_13: {fileID: 0} 382 | switchSmallIcons_14: {fileID: 0} 383 | switchManualHTML: 384 | switchAccessibleURLs: 385 | switchLegalInformation: 386 | switchMainThreadStackSize: 1048576 387 | switchPresenceGroupId: 388 | switchLogoHandling: 0 389 | switchReleaseVersion: 0 390 | switchDisplayVersion: 1.0.0 391 | switchStartupUserAccount: 0 392 | switchTouchScreenUsage: 0 393 | switchSupportedLanguagesMask: 0 394 | switchLogoType: 0 395 | switchApplicationErrorCodeCategory: 396 | switchUserAccountSaveDataSize: 0 397 | switchUserAccountSaveDataJournalSize: 0 398 | switchApplicationAttribute: 0 399 | switchCardSpecSize: -1 400 | switchCardSpecClock: -1 401 | switchRatingsMask: 0 402 | switchRatingsInt_0: 0 403 | switchRatingsInt_1: 0 404 | switchRatingsInt_2: 0 405 | switchRatingsInt_3: 0 406 | switchRatingsInt_4: 0 407 | switchRatingsInt_5: 0 408 | switchRatingsInt_6: 0 409 | switchRatingsInt_7: 0 410 | switchRatingsInt_8: 0 411 | switchRatingsInt_9: 0 412 | switchRatingsInt_10: 0 413 | switchRatingsInt_11: 0 414 | switchLocalCommunicationIds_0: 415 | switchLocalCommunicationIds_1: 416 | switchLocalCommunicationIds_2: 417 | switchLocalCommunicationIds_3: 418 | switchLocalCommunicationIds_4: 419 | switchLocalCommunicationIds_5: 420 | switchLocalCommunicationIds_6: 421 | switchLocalCommunicationIds_7: 422 | switchParentalControl: 0 423 | switchAllowsScreenshot: 1 424 | switchAllowsVideoCapturing: 1 425 | switchAllowsRuntimeAddOnContentInstall: 0 426 | switchDataLossConfirmation: 0 427 | switchUserAccountLockEnabled: 0 428 | switchSystemResourceMemory: 16777216 429 | switchSupportedNpadStyles: 3 430 | switchNativeFsCacheSize: 32 431 | switchIsHoldTypeHorizontal: 0 432 | switchSupportedNpadCount: 8 433 | switchSocketConfigEnabled: 0 434 | switchTcpInitialSendBufferSize: 32 435 | switchTcpInitialReceiveBufferSize: 64 436 | switchTcpAutoSendBufferSizeMax: 256 437 | switchTcpAutoReceiveBufferSizeMax: 256 438 | switchUdpSendBufferSize: 9 439 | switchUdpReceiveBufferSize: 42 440 | switchSocketBufferEfficiency: 4 441 | switchSocketInitializeEnabled: 1 442 | switchNetworkInterfaceManagerInitializeEnabled: 1 443 | switchPlayerConnectionEnabled: 1 444 | ps4NPAgeRating: 12 445 | ps4NPTitleSecret: 446 | ps4NPTrophyPackPath: 447 | ps4ParentalLevel: 11 448 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 449 | ps4Category: 0 450 | ps4MasterVersion: 01.00 451 | ps4AppVersion: 01.00 452 | ps4AppType: 0 453 | ps4ParamSfxPath: 454 | ps4VideoOutPixelFormat: 0 455 | ps4VideoOutInitialWidth: 1920 456 | ps4VideoOutBaseModeInitialWidth: 1920 457 | ps4VideoOutReprojectionRate: 60 458 | ps4PronunciationXMLPath: 459 | ps4PronunciationSIGPath: 460 | ps4BackgroundImagePath: 461 | ps4StartupImagePath: 462 | ps4StartupImagesFolder: 463 | ps4IconImagesFolder: 464 | ps4SaveDataImagePath: 465 | ps4SdkOverride: 466 | ps4BGMPath: 467 | ps4ShareFilePath: 468 | ps4ShareOverlayImagePath: 469 | ps4PrivacyGuardImagePath: 470 | ps4NPtitleDatPath: 471 | ps4RemotePlayKeyAssignment: -1 472 | ps4RemotePlayKeyMappingDir: 473 | ps4PlayTogetherPlayerCount: 0 474 | ps4EnterButtonAssignment: 1 475 | ps4ApplicationParam1: 0 476 | ps4ApplicationParam2: 0 477 | ps4ApplicationParam3: 0 478 | ps4ApplicationParam4: 0 479 | ps4DownloadDataSize: 0 480 | ps4GarlicHeapSize: 2048 481 | ps4ProGarlicHeapSize: 2560 482 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 483 | ps4pnSessions: 1 484 | ps4pnPresence: 1 485 | ps4pnFriends: 1 486 | ps4pnGameCustomData: 1 487 | playerPrefsSupport: 0 488 | enableApplicationExit: 0 489 | resetTempFolder: 1 490 | restrictedAudioUsageRights: 0 491 | ps4UseResolutionFallback: 0 492 | ps4ReprojectionSupport: 0 493 | ps4UseAudio3dBackend: 0 494 | ps4SocialScreenEnabled: 0 495 | ps4ScriptOptimizationLevel: 0 496 | ps4Audio3dVirtualSpeakerCount: 14 497 | ps4attribCpuUsage: 0 498 | ps4PatchPkgPath: 499 | ps4PatchLatestPkgPath: 500 | ps4PatchChangeinfoPath: 501 | ps4PatchDayOne: 0 502 | ps4attribUserManagement: 0 503 | ps4attribMoveSupport: 0 504 | ps4attrib3DSupport: 0 505 | ps4attribShareSupport: 0 506 | ps4attribExclusiveVR: 0 507 | ps4disableAutoHideSplash: 0 508 | ps4videoRecordingFeaturesUsed: 0 509 | ps4contentSearchFeaturesUsed: 0 510 | ps4attribEyeToEyeDistanceSettingVR: 0 511 | ps4IncludedModules: [] 512 | monoEnv: 513 | splashScreenBackgroundSourceLandscape: {fileID: 0} 514 | splashScreenBackgroundSourcePortrait: {fileID: 0} 515 | spritePackerPolicy: 516 | webGLMemorySize: 256 517 | webGLExceptionSupport: 1 518 | webGLNameFilesAsHashes: 0 519 | webGLDataCaching: 1 520 | webGLDebugSymbols: 0 521 | webGLEmscriptenArgs: 522 | webGLModulesDirectory: 523 | webGLTemplate: APPLICATION:Default 524 | webGLAnalyzeBuildSize: 0 525 | webGLUseEmbeddedResources: 0 526 | webGLCompressionFormat: 1 527 | webGLLinkerTarget: 1 528 | webGLThreadsSupport: 0 529 | scriptingDefineSymbols: {} 530 | platformArchitecture: {} 531 | scriptingBackend: {} 532 | il2cppCompilerConfiguration: {} 533 | managedStrippingLevel: {} 534 | incrementalIl2cppBuild: {} 535 | allowUnsafeCode: 0 536 | additionalIl2CppArgs: 537 | scriptingRuntimeVersion: 1 538 | apiCompatibilityLevelPerPlatform: {} 539 | m_RenderingPath: 1 540 | m_MobileRenderingPath: 1 541 | metroPackageName: Template_3D 542 | metroPackageVersion: 543 | metroCertificatePath: 544 | metroCertificatePassword: 545 | metroCertificateSubject: 546 | metroCertificateIssuer: 547 | metroCertificateNotAfter: 0000000000000000 548 | metroApplicationDescription: Template_3D 549 | wsaImages: {} 550 | metroTileShortName: 551 | metroTileShowName: 0 552 | metroMediumTileShowName: 0 553 | metroLargeTileShowName: 0 554 | metroWideTileShowName: 0 555 | metroSupportStreamingInstall: 0 556 | metroLastRequiredScene: 0 557 | metroDefaultTileSize: 1 558 | metroTileForegroundText: 2 559 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 560 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, 561 | a: 1} 562 | metroSplashScreenUseBackgroundColor: 0 563 | platformCapabilities: {} 564 | metroTargetDeviceFamilies: {} 565 | metroFTAName: 566 | metroFTAFileTypes: [] 567 | metroProtocolName: 568 | metroCompilationOverrides: 1 569 | XboxOneProductId: 570 | XboxOneUpdateKey: 571 | XboxOneSandboxId: 572 | XboxOneContentId: 573 | XboxOneTitleId: 574 | XboxOneSCId: 575 | XboxOneGameOsOverridePath: 576 | XboxOnePackagingOverridePath: 577 | XboxOneAppManifestOverridePath: 578 | XboxOneVersion: 1.0.0.0 579 | XboxOnePackageEncryption: 0 580 | XboxOnePackageUpdateGranularity: 2 581 | XboxOneDescription: 582 | XboxOneLanguage: 583 | - enus 584 | XboxOneCapability: [] 585 | XboxOneGameRating: {} 586 | XboxOneIsContentPackage: 0 587 | XboxOneEnableGPUVariability: 1 588 | XboxOneSockets: {} 589 | XboxOneSplashScreen: {fileID: 0} 590 | XboxOneAllowedProductIds: [] 591 | XboxOnePersistentLocalStorageSize: 0 592 | XboxOneXTitleMemory: 8 593 | xboxOneScriptCompiler: 1 594 | XboxOneOverrideIdentityName: 595 | vrEditorSettings: 596 | daydream: 597 | daydreamIconForeground: {fileID: 0} 598 | daydreamIconBackground: {fileID: 0} 599 | cloudServicesEnabled: 600 | UNet: 1 601 | luminIcon: 602 | m_Name: 603 | m_ModelFolderPath: 604 | m_PortalFolderPath: 605 | luminCert: 606 | m_CertPath: 607 | m_PrivateKeyPath: 608 | luminIsChannelApp: 0 609 | luminVersion: 610 | m_VersionCode: 1 611 | m_VersionName: 612 | facebookSdkVersion: 7.9.4 613 | facebookAppId: 614 | facebookCookies: 1 615 | facebookLogging: 1 616 | facebookStatus: 1 617 | facebookXfbml: 0 618 | facebookFrictionlessRequests: 1 619 | apiCompatibilityLevel: 6 620 | cloudProjectId: 621 | framebufferDepthMemorylessMode: 0 622 | projectName: 623 | organizationId: 624 | cloudEnabled: 0 625 | enableNativePlatformBackendsForNewInputSystem: 0 626 | disableOldInputManagerSupport: 0 627 | legacyClampBlendShapeWeights: 0 628 | -------------------------------------------------------------------------------- /samples/solid-principles/ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2018.3.8f1 2 | -------------------------------------------------------------------------------- /samples/solid-principles/ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 4 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | blendWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | particleRaycastBudget: 4 33 | asyncUploadTimeSlice: 2 34 | asyncUploadBufferSize: 16 35 | resolutionScalingFixedDPIFactor: 1 36 | excludedTargetPlatforms: [] 37 | - serializedVersion: 2 38 | name: Low 39 | pixelLightCount: 0 40 | shadows: 0 41 | shadowResolution: 0 42 | shadowProjection: 1 43 | shadowCascades: 1 44 | shadowDistance: 20 45 | shadowNearPlaneOffset: 3 46 | shadowCascade2Split: 0.33333334 47 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 48 | shadowmaskMode: 0 49 | blendWeights: 2 50 | textureQuality: 0 51 | anisotropicTextures: 0 52 | antiAliasing: 0 53 | softParticles: 0 54 | softVegetation: 0 55 | realtimeReflectionProbes: 0 56 | billboardsFaceCameraPosition: 0 57 | vSyncCount: 0 58 | lodBias: 0.4 59 | maximumLODLevel: 0 60 | particleRaycastBudget: 16 61 | asyncUploadTimeSlice: 2 62 | asyncUploadBufferSize: 16 63 | resolutionScalingFixedDPIFactor: 1 64 | excludedTargetPlatforms: [] 65 | - serializedVersion: 2 66 | name: Medium 67 | pixelLightCount: 1 68 | shadows: 1 69 | shadowResolution: 0 70 | shadowProjection: 1 71 | shadowCascades: 1 72 | shadowDistance: 20 73 | shadowNearPlaneOffset: 3 74 | shadowCascade2Split: 0.33333334 75 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 76 | shadowmaskMode: 0 77 | blendWeights: 2 78 | textureQuality: 0 79 | anisotropicTextures: 1 80 | antiAliasing: 0 81 | softParticles: 0 82 | softVegetation: 0 83 | realtimeReflectionProbes: 0 84 | billboardsFaceCameraPosition: 0 85 | vSyncCount: 1 86 | lodBias: 0.7 87 | maximumLODLevel: 0 88 | particleRaycastBudget: 64 89 | asyncUploadTimeSlice: 2 90 | asyncUploadBufferSize: 16 91 | resolutionScalingFixedDPIFactor: 1 92 | excludedTargetPlatforms: [] 93 | - serializedVersion: 2 94 | name: High 95 | pixelLightCount: 2 96 | shadows: 2 97 | shadowResolution: 1 98 | shadowProjection: 1 99 | shadowCascades: 2 100 | shadowDistance: 40 101 | shadowNearPlaneOffset: 3 102 | shadowCascade2Split: 0.33333334 103 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 104 | shadowmaskMode: 1 105 | blendWeights: 2 106 | textureQuality: 0 107 | anisotropicTextures: 1 108 | antiAliasing: 2 109 | softParticles: 0 110 | softVegetation: 1 111 | realtimeReflectionProbes: 1 112 | billboardsFaceCameraPosition: 1 113 | vSyncCount: 1 114 | lodBias: 1 115 | maximumLODLevel: 0 116 | particleRaycastBudget: 256 117 | asyncUploadTimeSlice: 2 118 | asyncUploadBufferSize: 16 119 | resolutionScalingFixedDPIFactor: 1 120 | excludedTargetPlatforms: [] 121 | - serializedVersion: 2 122 | name: Very High 123 | pixelLightCount: 3 124 | shadows: 2 125 | shadowResolution: 2 126 | shadowProjection: 1 127 | shadowCascades: 2 128 | shadowDistance: 40 129 | shadowNearPlaneOffset: 3 130 | shadowCascade2Split: 0.33333334 131 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 132 | shadowmaskMode: 1 133 | blendWeights: 4 134 | textureQuality: 0 135 | anisotropicTextures: 1 136 | antiAliasing: 4 137 | softParticles: 1 138 | softVegetation: 1 139 | realtimeReflectionProbes: 1 140 | billboardsFaceCameraPosition: 1 141 | vSyncCount: 1 142 | lodBias: 1.5 143 | maximumLODLevel: 0 144 | particleRaycastBudget: 1024 145 | asyncUploadTimeSlice: 2 146 | asyncUploadBufferSize: 16 147 | resolutionScalingFixedDPIFactor: 1 148 | excludedTargetPlatforms: [] 149 | - serializedVersion: 2 150 | name: Ultra 151 | pixelLightCount: 4 152 | shadows: 2 153 | shadowResolution: 2 154 | shadowProjection: 1 155 | shadowCascades: 4 156 | shadowDistance: 150 157 | shadowNearPlaneOffset: 3 158 | shadowCascade2Split: 0.33333334 159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 160 | shadowmaskMode: 1 161 | blendWeights: 4 162 | textureQuality: 0 163 | anisotropicTextures: 1 164 | antiAliasing: 4 165 | softParticles: 1 166 | softVegetation: 1 167 | realtimeReflectionProbes: 1 168 | billboardsFaceCameraPosition: 1 169 | vSyncCount: 1 170 | lodBias: 2 171 | maximumLODLevel: 0 172 | particleRaycastBudget: 4096 173 | asyncUploadTimeSlice: 2 174 | asyncUploadBufferSize: 16 175 | resolutionScalingFixedDPIFactor: 1 176 | excludedTargetPlatforms: [] 177 | m_PerPlatformDefaultQuality: 178 | Android: 2 179 | Nintendo 3DS: 5 180 | Nintendo Switch: 5 181 | PS4: 5 182 | PSP2: 2 183 | Standalone: 5 184 | Tizen: 2 185 | WebGL: 3 186 | WiiU: 5 187 | Windows Store Apps: 5 188 | XboxOne: 5 189 | iPhone: 2 190 | tvOS: 2 191 | -------------------------------------------------------------------------------- /samples/solid-principles/ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - PostProcessing 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /samples/solid-principles/ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.1 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /samples/solid-principles/ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_TestInitMode: 0 13 | CrashReportingSettings: 14 | m_EventUrl: https://perf-events.cloud.unity3d.com 15 | m_Enabled: 0 16 | m_LogBufferSize: 10 17 | m_CaptureEditorExceptions: 1 18 | UnityPurchasingSettings: 19 | m_Enabled: 0 20 | m_TestMode: 0 21 | UnityAnalyticsSettings: 22 | m_Enabled: 0 23 | m_TestMode: 0 24 | m_InitializeOnStartup: 1 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /samples/solid-principles/ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | -------------------------------------------------------------------------------- /samples/solid-principles/README.md: -------------------------------------------------------------------------------- 1 | # SOLID Principles 2 | Script examples of how to use [SOLID](https://en.wikipedia.org/wiki/SOLID) in Unity. 3 | 4 | * [Single Responsibility](Assets/Scripts/Single%20Responsibility) 5 | * A class should only have a single responsibility, that is, only changes to one part of the software's specification should be able to affect the specification of the class. 6 | * [Open Closed](Assets/Scripts/Open%20Closed) 7 | * "Software entities ... should be open for extension, but closed for modification." 8 | * [Liskov's Substitution](Assets/Scripts/Liskov%20Substitution) 9 | * "Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program." 10 | * [Interface Segregation](Assets/Scripts/Interface%20Segregation) 11 | * "Many client-specific interfaces are better than one general-purpose interface." 12 | * [Dependency Inversion](Assets/Scripts/Dependency%20Inversion) 13 | * One should "depend upon abstractions, [not] concretions." 14 | 15 | *Note: examples inspired by [this talk by Dan Sagmiller](https://www.youtube.com/watch?v=eIf3-aDTOOA).* 16 | --------------------------------------------------------------------------------