├── ProjectSettings ├── ProjectVersion.txt ├── TagManager.asset ├── TimeManager.asset ├── AudioManager.asset ├── EditorSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── DynamicsManager.asset ├── GraphicsSettings.asset ├── ProjectSettings.asset ├── QualitySettings.asset ├── ClusterInputManager.asset ├── EditorBuildSettings.asset ├── Physics2DSettings.asset └── UnityConnectSettings.asset ├── Assets ├── Game │ ├── Prefabs │ │ ├── Loader.prefab │ │ ├── Preloader.prefab │ │ ├── Lights │ │ │ ├── Sun.prefab │ │ │ └── Sun.prefab.meta │ │ ├── Main Camera.prefab │ │ ├── World │ │ │ ├── Floor.prefab │ │ │ ├── Water.prefab │ │ │ ├── Bridge.prefab │ │ │ ├── Bridge.prefab.meta │ │ │ ├── Floor.prefab.meta │ │ │ └── Water.prefab.meta │ │ ├── Gameplay │ │ │ ├── BasicUnit.prefab │ │ │ ├── SpawningHandler.prefab │ │ │ ├── Towers │ │ │ │ ├── ArenaTower.prefab │ │ │ │ ├── KingTower.prefab │ │ │ │ ├── KingTower.prefab.meta │ │ │ │ └── ArenaTower.prefab.meta │ │ │ ├── Towers.meta │ │ │ ├── BasicUnit.prefab.meta │ │ │ └── SpawningHandler.prefab.meta │ │ ├── Managers │ │ │ ├── AudioManager.prefab │ │ │ ├── GameManager.prefab │ │ │ ├── AudioManager.prefab.meta │ │ │ └── GameManager.prefab.meta │ │ ├── UI │ │ │ ├── HUD │ │ │ │ ├── TowerHealthPanel.prefab │ │ │ │ ├── UnitHealthPanel.prefab │ │ │ │ ├── TowerHealthPanel.prefab.meta │ │ │ │ └── UnitHealthPanel.prefab.meta │ │ │ └── HUD.meta │ │ ├── Loader.prefab.meta │ │ ├── Preloader.prefab.meta │ │ ├── UI.meta │ │ ├── World.meta │ │ ├── Gameplay.meta │ │ ├── Lights.meta │ │ ├── Managers.meta │ │ └── Main Camera.prefab.meta │ ├── Scenes │ │ ├── Preloader.unity │ │ ├── Levels │ │ │ ├── Level.unity │ │ │ ├── Level │ │ │ │ ├── LightingData.asset │ │ │ │ ├── ReflectionProbe-0.exr │ │ │ │ ├── NavMesh-NavMesh Surface.asset │ │ │ │ ├── LightingData.asset.meta │ │ │ │ ├── NavMesh-NavMesh Surface.asset.meta │ │ │ │ └── ReflectionProbe-0.exr.meta │ │ │ ├── Level.unity.meta │ │ │ └── Level.meta │ │ ├── Preloader │ │ │ ├── LightingData.asset │ │ │ ├── ReflectionProbe-0.exr │ │ │ ├── LightingData.asset.meta │ │ │ └── ReflectionProbe-0.exr.meta │ │ ├── Preloader.unity.meta │ │ ├── Levels.meta │ │ ├── Menus.meta │ │ └── Preloader.meta │ ├── Fonts │ │ ├── Supercell-magic-webfont.ttf │ │ └── Supercell-magic-webfont.ttf.meta │ ├── Graphics │ │ ├── Textures │ │ │ ├── UI │ │ │ │ ├── 4x4white.png │ │ │ │ └── 4x4white.png.meta │ │ │ ├── Gameplay │ │ │ │ ├── Towers │ │ │ │ │ ├── BlueKingTower.png │ │ │ │ │ ├── RedKingTower.png │ │ │ │ │ ├── RedPrincessTower.png │ │ │ │ │ ├── BluePrincessTower.png │ │ │ │ │ ├── RedKingTower.png.meta │ │ │ │ │ ├── BlueKingTower.png.meta │ │ │ │ │ ├── BluePrincessTower.png.meta │ │ │ │ │ └── RedPrincessTower.png.meta │ │ │ │ └── Towers.meta │ │ │ ├── UI.meta │ │ │ └── Gameplay.meta │ │ ├── Materials │ │ │ ├── Gameplay │ │ │ │ ├── UnitMat.mat │ │ │ │ ├── TowerMat.mat │ │ │ │ ├── TowerMat.mat.meta │ │ │ │ └── UnitMat.mat.meta │ │ │ ├── World │ │ │ │ ├── BridgeMat.mat │ │ │ │ ├── FloorMat.mat │ │ │ │ ├── WaterMat.mat │ │ │ │ ├── FloorMat.mat.meta │ │ │ │ ├── WaterMat.mat.meta │ │ │ │ └── BridgeMat.mat.meta │ │ │ ├── Gameplay.meta │ │ │ └── World.meta │ │ ├── Materials.meta │ │ ├── Meshes.meta │ │ ├── Textures.meta │ │ └── Meshes │ │ │ ├── BlueKingTower.obj.meta │ │ │ ├── RedKingTower.obj.meta │ │ │ ├── BluePrincessTower.obj.meta │ │ │ ├── RedPrincessTower.obj.meta │ │ │ ├── RedKingTower.obj │ │ │ ├── BlueKingTower.obj │ │ │ ├── BluePrincessTower.obj │ │ │ └── RedPrincessTower.obj │ ├── ScriptableObjects │ │ ├── Players │ │ │ ├── Player1.asset │ │ │ ├── Player2.asset │ │ │ ├── Player1.asset.meta │ │ │ └── Player2.asset.meta │ │ ├── Units │ │ │ ├── BasicUnit.asset │ │ │ └── BasicUnit.asset.meta │ │ ├── Units.meta │ │ └── Players.meta │ ├── Audio.meta │ ├── Fonts.meta │ ├── Graphics.meta │ ├── Prefabs.meta │ ├── Scenes.meta │ ├── Scripts.meta │ ├── Audio │ │ ├── Music.meta │ │ └── SFX.meta │ ├── Resources.meta │ ├── Scripts │ │ ├── UI.meta │ │ ├── Gameplay.meta │ │ ├── Managers.meta │ │ ├── Gameplay │ │ │ ├── Units.meta │ │ │ ├── Modules.meta │ │ │ ├── Tower.cs.meta │ │ │ ├── ArenaTower.cs.meta │ │ │ ├── KingTower.cs.meta │ │ │ ├── Units │ │ │ │ ├── Unit.cs.meta │ │ │ │ └── Unit.cs │ │ │ ├── SpawningHandler.cs.meta │ │ │ ├── Modules │ │ │ │ ├── IDamageable.cs.meta │ │ │ │ └── IDamageable.cs │ │ │ ├── ArenaTower.cs │ │ │ ├── Tower.cs │ │ │ ├── KingTower.cs │ │ │ └── SpawningHandler.cs │ │ ├── Preloader.cs │ │ ├── Loader.cs.meta │ │ ├── Preloader.cs.meta │ │ ├── Singleton.cs.meta │ │ ├── DDOLSingleton.cs.meta │ │ ├── DontDestroyOnLoad.cs.meta │ │ ├── Managers │ │ │ ├── AudioManager.cs.meta │ │ │ ├── GameManager.cs.meta │ │ │ ├── GameManager.cs │ │ │ └── AudioManager.cs │ │ ├── UI │ │ │ ├── UnitHealthPanel.cs.meta │ │ │ └── UnitHealthPanel.cs │ │ ├── DontDestroyOnLoad.cs │ │ ├── Loader.cs │ │ ├── Singleton.cs │ │ └── DDOLSingleton.cs │ └── ScriptableObjects.meta ├── Plugins │ ├── HLNMC │ │ ├── Gizmos │ │ │ ├── Thumbs.db │ │ │ ├── NavMeshLink Icon.png │ │ │ ├── NavMeshSurface Icon.png │ │ │ ├── NavMeshModifierVolume Icon.png │ │ │ ├── Thumbs.db.meta │ │ │ ├── NavMeshLink Icon.png.meta │ │ │ ├── NavMeshSurface Icon.png.meta │ │ │ └── NavMeshModifierVolume Icon.png.meta │ │ ├── Gizmos.meta │ │ ├── NavMeshComponents.meta │ │ └── NavMeshComponents │ │ │ ├── Editor.meta │ │ │ ├── Scripts.meta │ │ │ ├── Editor │ │ │ ├── NavMeshLinkEditor.cs.meta │ │ │ ├── NavMeshModifierEditor.cs.meta │ │ │ ├── NavMeshSurfaceEditor.cs.meta │ │ │ ├── NavMeshComponentsGUIUtility.cs.meta │ │ │ ├── NavMeshModifierVolumeEditor.cs.meta │ │ │ ├── NavMeshModifierEditor.cs │ │ │ ├── NavMeshModifierVolumeEditor.cs │ │ │ ├── NavMeshComponentsGUIUtility.cs │ │ │ └── NavMeshLinkEditor.cs │ │ │ └── Scripts │ │ │ ├── NavMeshLink.cs.meta │ │ │ ├── NavMeshSurface.cs.meta │ │ │ ├── NavMeshModifier.cs.meta │ │ │ ├── NavMeshModifierVolume.cs.meta │ │ │ ├── NavMeshModifier.cs │ │ │ ├── NavMeshModifierVolume.cs │ │ │ ├── NavMeshLink.cs │ │ │ └── NavMeshSurface.cs │ └── HLNMC.meta ├── Editor.meta ├── Game.meta └── Plugins.meta ├── README.md ├── .gitattributes └── .gitignore /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 5.6.0f3 2 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Loader.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Prefabs/Loader.prefab -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/ProjectSettings/TagManager.asset -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/ProjectSettings/TimeManager.asset -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Preloader.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Prefabs/Preloader.prefab -------------------------------------------------------------------------------- /Assets/Game/Scenes/Preloader.unity: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Scenes/Preloader.unity -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/ProjectSettings/AudioManager.asset -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/ProjectSettings/EditorSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/ProjectSettings/InputManager.asset -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/ProjectSettings/NavMeshAreas.asset -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/ProjectSettings/NetworkManager.asset -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Lights/Sun.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Prefabs/Lights/Sun.prefab -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Main Camera.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Prefabs/Main Camera.prefab -------------------------------------------------------------------------------- /Assets/Game/Prefabs/World/Floor.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Prefabs/World/Floor.prefab -------------------------------------------------------------------------------- /Assets/Game/Prefabs/World/Water.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Prefabs/World/Water.prefab -------------------------------------------------------------------------------- /Assets/Game/Scenes/Levels/Level.unity: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Scenes/Levels/Level.unity -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/Gizmos/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Plugins/HLNMC/Gizmos/Thumbs.db -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/ProjectSettings/DynamicsManager.asset -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/ProjectSettings/GraphicsSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/ProjectSettings/ProjectSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/ProjectSettings/QualitySettings.asset -------------------------------------------------------------------------------- /Assets/Game/Prefabs/World/Bridge.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Prefabs/World/Bridge.prefab -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/ProjectSettings/ClusterInputManager.asset -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/ProjectSettings/EditorBuildSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/ProjectSettings/Physics2DSettings.asset -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/ProjectSettings/UnityConnectSettings.asset -------------------------------------------------------------------------------- /Assets/Game/Fonts/Supercell-magic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Fonts/Supercell-magic-webfont.ttf -------------------------------------------------------------------------------- /Assets/Game/Graphics/Textures/UI/4x4white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Graphics/Textures/UI/4x4white.png -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Gameplay/BasicUnit.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Prefabs/Gameplay/BasicUnit.prefab -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Managers/AudioManager.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Prefabs/Managers/AudioManager.prefab -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Managers/GameManager.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Prefabs/Managers/GameManager.prefab -------------------------------------------------------------------------------- /Assets/Game/Scenes/Preloader/LightingData.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Scenes/Preloader/LightingData.asset -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/Gizmos/NavMeshLink Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Plugins/HLNMC/Gizmos/NavMeshLink Icon.png -------------------------------------------------------------------------------- /Assets/Game/Graphics/Materials/Gameplay/UnitMat.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Graphics/Materials/Gameplay/UnitMat.mat -------------------------------------------------------------------------------- /Assets/Game/Graphics/Materials/World/BridgeMat.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Graphics/Materials/World/BridgeMat.mat -------------------------------------------------------------------------------- /Assets/Game/Graphics/Materials/World/FloorMat.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Graphics/Materials/World/FloorMat.mat -------------------------------------------------------------------------------- /Assets/Game/Graphics/Materials/World/WaterMat.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Graphics/Materials/World/WaterMat.mat -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Gameplay/SpawningHandler.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Prefabs/Gameplay/SpawningHandler.prefab -------------------------------------------------------------------------------- /Assets/Game/Prefabs/UI/HUD/TowerHealthPanel.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Prefabs/UI/HUD/TowerHealthPanel.prefab -------------------------------------------------------------------------------- /Assets/Game/Prefabs/UI/HUD/UnitHealthPanel.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Prefabs/UI/HUD/UnitHealthPanel.prefab -------------------------------------------------------------------------------- /Assets/Game/Scenes/Levels/Level/LightingData.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Scenes/Levels/Level/LightingData.asset -------------------------------------------------------------------------------- /Assets/Game/Scenes/Preloader/ReflectionProbe-0.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Scenes/Preloader/ReflectionProbe-0.exr -------------------------------------------------------------------------------- /Assets/Game/ScriptableObjects/Players/Player1.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/ScriptableObjects/Players/Player1.asset -------------------------------------------------------------------------------- /Assets/Game/ScriptableObjects/Players/Player2.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/ScriptableObjects/Players/Player2.asset -------------------------------------------------------------------------------- /Assets/Game/ScriptableObjects/Units/BasicUnit.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/ScriptableObjects/Units/BasicUnit.asset -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/Gizmos/NavMeshSurface Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Plugins/HLNMC/Gizmos/NavMeshSurface Icon.png -------------------------------------------------------------------------------- /Assets/Game/Graphics/Materials/Gameplay/TowerMat.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Graphics/Materials/Gameplay/TowerMat.mat -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Gameplay/Towers/ArenaTower.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Prefabs/Gameplay/Towers/ArenaTower.prefab -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Gameplay/Towers/KingTower.prefab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Prefabs/Gameplay/Towers/KingTower.prefab -------------------------------------------------------------------------------- /Assets/Game/Scenes/Levels/Level/ReflectionProbe-0.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Scenes/Levels/Level/ReflectionProbe-0.exr -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/Gizmos/NavMeshModifierVolume Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Plugins/HLNMC/Gizmos/NavMeshModifierVolume Icon.png -------------------------------------------------------------------------------- /Assets/Game/Scenes/Levels/Level/NavMesh-NavMesh Surface.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Scenes/Levels/Level/NavMesh-NavMesh Surface.asset -------------------------------------------------------------------------------- /Assets/Game/Graphics/Textures/Gameplay/Towers/BlueKingTower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Graphics/Textures/Gameplay/Towers/BlueKingTower.png -------------------------------------------------------------------------------- /Assets/Game/Graphics/Textures/Gameplay/Towers/RedKingTower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Graphics/Textures/Gameplay/Towers/RedKingTower.png -------------------------------------------------------------------------------- /Assets/Game/Graphics/Textures/Gameplay/Towers/RedPrincessTower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Graphics/Textures/Gameplay/Towers/RedPrincessTower.png -------------------------------------------------------------------------------- /Assets/Game/Graphics/Textures/Gameplay/Towers/BluePrincessTower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/squiig/clash-royale-clone/HEAD/Assets/Game/Graphics/Textures/Gameplay/Towers/BluePrincessTower.png -------------------------------------------------------------------------------- /Assets/Game/Scenes/Preloader.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d48eb8c8c37886e408a7b89e0738c226 3 | timeCreated: 1485869649 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Loader.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0cc9d4826da96c14c8ec7659f8ac21f3 3 | timeCreated: 1484131199 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Preloader.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 29f32a19232a94242b054633debe0077 3 | timeCreated: 1484130414 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Game/Scenes/Levels/Level.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a12e409b8dd9be4428981003d02efe63 3 | timeCreated: 1487513562 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/Gizmos/Thumbs.db.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6609dd6923f9e9d44ace98b16f5e59cd 3 | timeCreated: 1496920032 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 08fab2c7073fb13448ebc6c428fe4a57 3 | folderAsset: yes 4 | timeCreated: 1485868284 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: db4b09fa16b5b014f9d123516df36f60 3 | folderAsset: yes 4 | timeCreated: 1488148064 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Plugins.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 769a5c9aa702a524fb00140bf5e5d816 3 | folderAsset: yes 4 | timeCreated: 1488148363 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 996.icu 2 | 3 | # Clash Cloneyale 4 | A Unity clone of Supercell's Clash of Clans spin-off mobile game Clash Royale with possibly some twists. 5 | -------------------------------------------------------------------------------- /Assets/Game/Audio.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7daa3a543dd4a3f4bb31948212768860 3 | folderAsset: yes 4 | timeCreated: 1485868285 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Fonts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 14e7e49802a41fc45a3bbf42e07910d0 3 | folderAsset: yes 4 | timeCreated: 1485868312 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Graphics.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b1596e865d75c6438cb04d8dcf6513c 3 | folderAsset: yes 4 | timeCreated: 1485868285 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3cd0684b15dbb7a478b91d91d6570a85 3 | folderAsset: yes 4 | timeCreated: 1485868285 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bc64b623146113a4a8095d594283276f 3 | folderAsset: yes 4 | timeCreated: 1485868285 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2cef415e3ea75f74da6109d1c8bb5054 3 | folderAsset: yes 4 | timeCreated: 1485868285 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 315871fb03d33a04e97b4cfd2c37c187 3 | folderAsset: yes 4 | timeCreated: 1496920032 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Audio/Music.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 396cb7f4b3a5d7f45a54d8a81aa8d827 3 | folderAsset: yes 4 | timeCreated: 1485868285 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Audio/SFX.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a21cd020f9918ca4fa0fdfa77b1d901a 3 | folderAsset: yes 4 | timeCreated: 1485868285 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Managers/AudioManager.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 353808c8e0d6cf84ebe2c2a58c5a92c4 3 | timeCreated: 1484131176 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Managers/GameManager.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 64e5c599d9d80714da0bdb4bc331368b 3 | timeCreated: 1484131174 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/UI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a603265da45268340b2eb14b0302ac3b 3 | folderAsset: yes 4 | timeCreated: 1496864990 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/World.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a296898f8a05f4a4c8af771c9e80da38 3 | folderAsset: yes 4 | timeCreated: 1496311469 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 37fb9d73172256e4f9e9235711cd4910 3 | folderAsset: yes 4 | timeCreated: 1485868285 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Scenes/Levels.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 334ccb0c09ac85e4ab5a09fabd82ec16 3 | folderAsset: yes 4 | timeCreated: 1488148191 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Scenes/Levels/Level/LightingData.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 58d391f329ae29940bb8e4fed0eb49bd 3 | timeCreated: 1487513999 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Game/Scenes/Menus.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9628e8f281a998a47b8bfb7a2b894106 3 | folderAsset: yes 4 | timeCreated: 1488148186 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Scenes/Preloader/LightingData.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4d216c4e65f0e734ea579b483784e94a 3 | timeCreated: 1486473859 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/UI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b90b7cb768797c74da4273041e78336d 3 | folderAsset: yes 4 | timeCreated: 1496871080 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 11585617304b8674ba16c5fb5f0119ac 3 | folderAsset: yes 4 | timeCreated: 1485868285 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Meshes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3bf1e3ee5eddd354b86278c20a262eb7 3 | folderAsset: yes 4 | timeCreated: 1485868285 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e75efdb75bde51b4a9e65472c965213d 3 | folderAsset: yes 4 | timeCreated: 1485868285 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Gameplay.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5551e3149b3446847bb3c31aee197f12 3 | folderAsset: yes 4 | timeCreated: 1496311652 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Lights.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 289a24b1d20af5e418556ec0cb8eeeb2 3 | folderAsset: yes 4 | timeCreated: 1496312931 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Managers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eeef4ed5afe28a648b06cdd0f15c302d 3 | folderAsset: yes 4 | timeCreated: 1485869832 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/UI/HUD.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ad9d50637153e842ab2e0cef00e13d9 3 | folderAsset: yes 4 | timeCreated: 1496865006 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Scenes/Preloader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 43eb82f4e14fca448be1a0f113f287c4 3 | folderAsset: yes 4 | timeCreated: 1486473858 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/ScriptableObjects.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: daddd3cae4d10a84b8a5a240e4172510 3 | folderAsset: yes 4 | timeCreated: 1496405875 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Gameplay.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fffa4f3f689420e4693b6896678d43c4 3 | folderAsset: yes 4 | timeCreated: 1496314727 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Managers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 362eb8b71ddf0a04a97030627813f632 3 | folderAsset: yes 4 | timeCreated: 1485869473 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/Gizmos.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ca996cf7fb7bb2488886eb966e52c88 3 | folderAsset: yes 4 | timeCreated: 1496920032 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Textures/UI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 59a52fe93af51b14db15246d036ec340 3 | folderAsset: yes 4 | timeCreated: 1488148293 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Gameplay/Towers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ce83a82e35fcb8347829e00130255a0a 3 | folderAsset: yes 4 | timeCreated: 1496318139 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Scenes/Levels/Level.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 97546da3dba50ed4887d681277a785cd 3 | folderAsset: yes 4 | timeCreated: 1487513998 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/ScriptableObjects/Units.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 059729893e0723e48a5dc800b97fd88f 3 | folderAsset: yes 4 | timeCreated: 1496405937 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Gameplay/Units.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eb9397237323889488de3f5208ecd709 3 | folderAsset: yes 4 | timeCreated: 1496319816 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Materials/Gameplay.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a479850f75c0f2441b53ff8190b21e6d 3 | folderAsset: yes 4 | timeCreated: 1496312486 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Materials/World.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f7be6fb68cbd7944d8a0a63cf9694efc 3 | folderAsset: yes 4 | timeCreated: 1496312491 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Textures/Gameplay.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: df3b32a3ed35fba41aabd1001a2087b0 3 | folderAsset: yes 4 | timeCreated: 1496318834 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/ScriptableObjects/Players.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ec1f6c965d702004385a1468c2ee021a 3 | folderAsset: yes 4 | timeCreated: 1496405916 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Gameplay/Modules.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4203f93c574dc0b4a9b5434deea7c257 3 | folderAsset: yes 4 | timeCreated: 1496404993 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1668602566843c64abc968f33024ad5e 3 | folderAsset: yes 4 | timeCreated: 1496920032 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Textures/Gameplay/Towers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6bcea14d803c64f4f9d464c899644045 3 | folderAsset: yes 4 | timeCreated: 1496318842 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 63b588f3892bb4b5eb73ad3d2791e05c 3 | folderAsset: yes 4 | timeCreated: 1477656493 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ce67aa87f613246dda63a54a59c6399e 3 | folderAsset: yes 4 | timeCreated: 1477656493 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Lights/Sun.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 91f30f93ce520844784ec2662d25a318 3 | timeCreated: 1496312934 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Main Camera.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2454c196e6732a64cb096e883fb287d3 3 | timeCreated: 1496312918 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/World/Bridge.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5a62cef44e330a444a72f109a444be78 3 | timeCreated: 1496312341 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/World/Floor.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cae6a0867e8afef478daa6d015fd0729 3 | timeCreated: 1496311879 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/World/Water.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a7451c88ea6bbe545b547e00c0ec68b6 3 | timeCreated: 1496311510 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Preloader.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.SceneManagement; 5 | 6 | public class Preloader : MonoBehaviour 7 | { 8 | void Start() 9 | { 10 | SceneManager.LoadScene(1); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Materials/World/FloorMat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 590c173fa7adbe84ab68c3c1d82c44d6 3 | timeCreated: 1496311304 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Materials/World/WaterMat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a6a5b8fe581b0ec408b04e1909bd0b12 3 | timeCreated: 1496311725 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Gameplay/BasicUnit.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f0f555a043805944c99fed17d0e9d9bb 3 | timeCreated: 1496872300 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Materials/Gameplay/TowerMat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c92d40c5d93f1104ebefd63a02d471ae 3 | timeCreated: 1496312524 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Materials/Gameplay/UnitMat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e1f138076efbcb64a98b68ec77a4dec7 3 | timeCreated: 1496313078 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Materials/World/BridgeMat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ebe23f5646819914895eb64d5bbec785 3 | timeCreated: 1496312237 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Gameplay/SpawningHandler.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: feccf7619ab69fc48b204d850fe216a0 3 | timeCreated: 1496314946 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Gameplay/Towers/KingTower.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 937e9cad94ca9e64381ed9f748a88cb3 3 | timeCreated: 1496318908 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/UI/HUD/TowerHealthPanel.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0fbdf6a0c2779dc43b7aa281abca2533 3 | timeCreated: 1496865009 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/UI/HUD/UnitHealthPanel.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1d3590b981176ad40a390713ef340560 3 | timeCreated: 1496869195 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/ScriptableObjects/Players/Player1.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 21d3cef81cbe4234da1969ffb9d1809e 3 | timeCreated: 1496405890 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 11400000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/ScriptableObjects/Players/Player2.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 690468dc50fdeee41bfd770928e292f7 3 | timeCreated: 1496405923 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 11400000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/ScriptableObjects/Units/BasicUnit.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 01ffbbc9015ad1c48b6b066d278b0472 3 | timeCreated: 1496425815 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 11400000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Prefabs/Gameplay/Towers/ArenaTower.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 55cc4d6bb79727143ae0d14b0a1178f1 3 | timeCreated: 1496318739 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Scenes/Levels/Level/NavMesh-NavMesh Surface.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ba5596e02c5e0204f9715e055e0e4afa 3 | timeCreated: 1496920330 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 23800000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Loader.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 275f219b00ed3d64f980d6237648226b 3 | timeCreated: 1483484781 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Preloader.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c8649819279006d41a198316ba6c95aa 3 | timeCreated: 1483483245 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Singleton.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f039d694b6f3c5b4ca9714e5fff0f472 3 | timeCreated: 1486732437 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/DDOLSingleton.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ff02b42cf0f557d489b7a914cd512734 3 | timeCreated: 1486735756 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Gameplay/Tower.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bc88a0b2b5b68bb4bb4e8198e5e6791d 3 | timeCreated: 1496409074 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/DontDestroyOnLoad.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 399b05e9fea0f54478872fd4f7688616 3 | timeCreated: 1493577455 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Gameplay/ArenaTower.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5776fc75ae02f7c449ea310715a1a0ac 3 | timeCreated: 1496314771 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Gameplay/KingTower.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2baaf052be7c0de47ad8673eed47f683 3 | timeCreated: 1496314781 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Gameplay/Units/Unit.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3893d8a110cfb974797796f4424c9130 3 | timeCreated: 1496319831 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Managers/AudioManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e198cd7b0c17cf2438254a3e4bcc41ea 3 | timeCreated: 1483485327 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Managers/GameManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c9450dc7ccb90224688f1e5e2869bd12 3 | timeCreated: 1483484797 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/UI/UnitHealthPanel.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9a0c5392fbb226f4aa28e45dc47564e9 3 | timeCreated: 1496871090 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Gameplay/SpawningHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 206ccb48132d51f4782c14f221bfac51 3 | timeCreated: 1496314872 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Gameplay/Modules/IDamageable.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3c9a72c9f9f0e634f86a0b5951ceb558 3 | timeCreated: 1496405002 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents/Editor/NavMeshLinkEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ece1e865d1ad84587872fe8580ab5a20 3 | timeCreated: 1477036743 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents/Editor/NavMeshModifierEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6fa04b4743e3947eba4d7b9e5832ea69 3 | timeCreated: 1477036742 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1c32167dbf3314852b6006a288eb449b 3 | timeCreated: 1476968447 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents/Editor/NavMeshComponentsGUIUtility.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 77fba670b979046f18d52d751e0d4659 3 | timeCreated: 1480524815 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents/Editor/NavMeshModifierVolumeEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c0f3bef2a67ae4e139538afec3e59b03 3 | timeCreated: 1477036743 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/DontDestroyOnLoad.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class DontDestroyOnLoad : MonoBehaviour 6 | { 7 | /// 8 | /// This function is called after the Awake function. 9 | /// 10 | void Start() 11 | { 12 | DontDestroyOnLoad(this.gameObject); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents/Scripts/NavMeshLink.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6eeb5dc026fdf4b488bc7ae0138ab719 3 | timeCreated: 1477924439 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {fileID: 2800000, guid: 92f4afa3e25264f5b964937ccea49ff2, type: 3} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents/Scripts/NavMeshSurface.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7a5ac11cc976e418e8d13136b07e1f52 3 | timeCreated: 1477658803 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {fileID: 2800000, guid: e4f97225bcfb64760a1c81f460837f01, type: 3} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents/Scripts/NavMeshModifier.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1e3fdca004f2d45fe8abbed571a8abd5 3 | timeCreated: 1477924411 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {fileID: 2800000, guid: cc7b9475dbddf4f9088d327d6e10ab77, type: 3} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents/Scripts/NavMeshModifierVolume.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 35e95dc5ff2b64380880dd7ac5922847 3 | timeCreated: 1477924430 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {fileID: 2800000, guid: cc7b9475dbddf4f9088d327d6e10ab77, type: 3} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Gameplay/ArenaTower.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace CRC 6 | { 7 | public class ArenaTower : Tower 8 | { 9 | [SerializeField] 10 | private Renderer m_Renderer; 11 | 12 | protected override void Awake() 13 | { 14 | base.Awake(); 15 | 16 | m_Renderer.material.color = m_Owner.Definition.Color; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /[Ll]ibrary/ 2 | /[Tt]emp/ 3 | /[Oo]bj/ 4 | /[Bb]uild/ 5 | /[Bb]uilds/ 6 | /Assets/AssetStoreTools* 7 | 8 | # Autogenerated VS/MD solution and project files 9 | ExportedObj/ 10 | *.csproj 11 | *.unityproj 12 | *.sln 13 | *.suo 14 | *.tmp 15 | *.user 16 | *.userprefs 17 | *.pidb 18 | *.booproj 19 | *.svd 20 | 21 | 22 | # Unity3D generated meta files 23 | *.pidb.meta 24 | 25 | # Unity3D Generated File On Crash Reports 26 | sysinfo.txt 27 | 28 | # Builds 29 | *.apk 30 | *.unitypackage 31 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Loader.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class Loader : MonoBehaviour 6 | { 7 | [SerializeField] 8 | private GameManager m_GameManager; 9 | 10 | [SerializeField] 11 | private AudioManager m_SoundManager; 12 | 13 | void Awake() 14 | { 15 | if (GameManager.Instance == null) Instantiate(m_GameManager.gameObject); 16 | if (AudioManager.Instance == null) Instantiate(m_SoundManager.gameObject); 17 | 18 | Destroy(gameObject); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Assets/Game/Fonts/Supercell-magic-webfont.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c37631301d0458243b28847c9af49e40 3 | timeCreated: 1496864542 4 | licenseType: Free 5 | TrueTypeFontImporter: 6 | serializedVersion: 4 7 | fontSize: 16 8 | forceTextureCase: -2 9 | characterSpacing: 0 10 | characterPadding: 1 11 | includeFontData: 1 12 | fontName: Supercell-Magic 13 | fontNames: 14 | - Supercell-Magic 15 | fallbackFontReferences: [] 16 | customCharacters: 17 | fontRenderingMode: 0 18 | ascentCalculationMode: 1 19 | userData: 20 | assetBundleName: 21 | assetBundleVariant: 22 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Managers/GameManager.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.SceneManagement; 5 | 6 | public class GameManager : DDOLSingleton 7 | { 8 | /// 9 | /// This function is called first thing in the entire script. 10 | /// 11 | public override void Awake() 12 | { 13 | base.Awake(); 14 | } 15 | 16 | /// 17 | /// This function is called after the Awake function. 18 | /// 19 | void Start() 20 | { 21 | 22 | } 23 | 24 | /// 25 | /// This function is called every frame. 26 | /// 27 | void Update() 28 | { 29 | if (Input.GetKeyDown(KeyCode.R)) SceneManager.LoadScene(SceneManager.GetActiveScene().name); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Gameplay/Tower.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | using UnityEngine.UI; 6 | 7 | namespace CRC 8 | { 9 | public class Tower : Damageable 10 | { 11 | [SerializeField] 12 | private Text m_HPText; 13 | 14 | protected virtual void Awake() 15 | { 16 | m_CurrentHealth = m_MaxHealth; 17 | 18 | m_HPText.text = m_CurrentHealth.ToString(); 19 | } 20 | 21 | protected virtual void Start() 22 | { 23 | HealthChangeEvent += OnHealthChange; 24 | } 25 | 26 | protected virtual void OnDestroy() 27 | { 28 | HealthChangeEvent -= OnHealthChange; 29 | } 30 | 31 | protected virtual void OnHealthChange() 32 | { 33 | m_HPText.text = m_CurrentHealth.ToString(); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/UI/UnitHealthPanel.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace CRC 6 | { 7 | public class UnitHealthPanel : MonoBehaviour 8 | { 9 | private Unit m_Owner; 10 | 11 | private float m_HPBarYOffPx; 12 | 13 | public void Initialize(Unit owner, float hpBarYOffPx) 14 | { 15 | m_Owner = owner; 16 | m_HPBarYOffPx = hpBarYOffPx; 17 | } 18 | 19 | void Update() 20 | { 21 | if (m_Owner != null) 22 | FollowOwner(); 23 | } 24 | 25 | private void FollowOwner() 26 | { 27 | Vector3 pos = this.transform.position; 28 | pos = Camera.main.WorldToScreenPoint(m_Owner.transform.position) + Vector3.up * m_HPBarYOffPx; 29 | pos.z = .0f; 30 | this.transform.position = pos; 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Gameplay/KingTower.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | 6 | namespace CRC 7 | { 8 | [CreateAssetMenu(fileName = "New Player Type")] 9 | public class PlayerDefinition : ScriptableObject 10 | { 11 | [SerializeField] 12 | private string m_Tag; 13 | 14 | [SerializeField] 15 | private Color m_Color; 16 | public Color Color { get { return m_Color; } } 17 | } 18 | 19 | public class KingTower : Tower 20 | { 21 | [SerializeField] 22 | private PlayerDefinition m_Definition; 23 | public PlayerDefinition Definition { get { return m_Definition; } } 24 | 25 | [SerializeField] 26 | private Renderer m_Renderer; 27 | 28 | protected override void Awake() 29 | { 30 | base.Awake(); 31 | 32 | m_Renderer.material.color = m_Definition.Color; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Singleton.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class Singleton : MonoBehaviour where T : Component 6 | { 7 | private static T m_Instance; 8 | public static T Instance 9 | { 10 | get 11 | { 12 | if (m_Instance == null) 13 | { 14 | m_Instance = FindObjectOfType(); 15 | if (m_Instance == null) 16 | { 17 | GameObject obj = new GameObject(); 18 | obj.name = typeof(T).Name; 19 | m_Instance = obj.AddComponent(); 20 | } 21 | } 22 | return m_Instance; 23 | } 24 | } 25 | 26 | /// 27 | /// This function is called first thing in the entire script. 28 | /// 29 | public virtual void Awake() 30 | { 31 | if (m_Instance == null) 32 | { 33 | m_Instance = this as T; 34 | } 35 | else 36 | { 37 | Destroy(gameObject); 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/DDOLSingleton.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class DDOLSingleton : MonoBehaviour where T : Component 6 | { 7 | private static T m_Instance; 8 | public static T Instance 9 | { 10 | get 11 | { 12 | if (m_Instance == null) 13 | { 14 | m_Instance = FindObjectOfType(); 15 | if (m_Instance == null) 16 | { 17 | GameObject obj = new GameObject(); 18 | obj.name = typeof(T).Name; 19 | m_Instance = obj.AddComponent(); 20 | } 21 | } 22 | return m_Instance; 23 | } 24 | } 25 | 26 | /// 27 | /// This function is called first thing in the entire script. 28 | /// 29 | public virtual void Awake() 30 | { 31 | if (m_Instance == null) 32 | { 33 | m_Instance = this as T; 34 | DontDestroyOnLoad(this.gameObject); 35 | } 36 | else 37 | { 38 | Destroy(gameObject); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Gameplay/SpawningHandler.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace CRC 6 | { 7 | public class SpawningHandler : Singleton 8 | { 9 | [SerializeField] 10 | private KingTower m_KingTowerOne, m_KingTowerTwo; 11 | public KingTower KingTowerOne { get { return m_KingTowerOne; } } 12 | public KingTower KingTowerTwo { get { return m_KingTowerTwo; } } 13 | 14 | [SerializeField] 15 | private Unit m_UnitPrefab; 16 | 17 | [SerializeField] 18 | private LayerMask m_SpawnableLayer; 19 | 20 | [SerializeField] 21 | private Transform m_Container; 22 | 23 | void Update() 24 | { 25 | if (Input.GetMouseButtonDown(0)) 26 | { 27 | RaycastHit hitInfo; 28 | bool hitSuccess = Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hitInfo, Mathf.Infinity, m_SpawnableLayer); 29 | 30 | if (hitSuccess) 31 | { 32 | Unit unit = Instantiate 33 | ( 34 | m_UnitPrefab.gameObject, 35 | hitInfo.point + Vector3.up * m_UnitPrefab.transform.lossyScale.y, 36 | Quaternion.identity 37 | ) 38 | .GetComponent(); 39 | 40 | if (unit == null) 41 | return; 42 | 43 | unit.transform.SetParent(m_Container, true); 44 | unit.Initialize(m_KingTowerOne); 45 | } 46 | } 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents/Editor/NavMeshModifierEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine.AI; 2 | 3 | namespace UnityEditor.AI 4 | { 5 | [CanEditMultipleObjects] 6 | [CustomEditor(typeof(NavMeshModifier))] 7 | class NavMeshModifierEditor : Editor 8 | { 9 | SerializedProperty m_AffectedAgents; 10 | SerializedProperty m_Area; 11 | SerializedProperty m_IgnoreFromBuild; 12 | SerializedProperty m_OverrideArea; 13 | 14 | void OnEnable() 15 | { 16 | m_AffectedAgents = serializedObject.FindProperty("m_AffectedAgents"); 17 | m_Area = serializedObject.FindProperty("m_Area"); 18 | m_IgnoreFromBuild = serializedObject.FindProperty("m_IgnoreFromBuild"); 19 | m_OverrideArea = serializedObject.FindProperty("m_OverrideArea"); 20 | 21 | NavMeshVisualizationSettings.showNavigation++; 22 | } 23 | 24 | void OnDisable() 25 | { 26 | NavMeshVisualizationSettings.showNavigation--; 27 | } 28 | 29 | public override void OnInspectorGUI() 30 | { 31 | serializedObject.Update(); 32 | 33 | EditorGUILayout.PropertyField(m_IgnoreFromBuild); 34 | 35 | EditorGUILayout.PropertyField(m_OverrideArea); 36 | if (m_OverrideArea.boolValue) 37 | { 38 | EditorGUI.indentLevel++; 39 | NavMeshComponentsGUIUtility.AreaPopup("Area Type", m_Area); 40 | EditorGUI.indentLevel--; 41 | } 42 | 43 | NavMeshComponentsGUIUtility.AgentMaskPopup("Affected Agents", m_AffectedAgents); 44 | EditorGUILayout.Space(); 45 | 46 | serializedObject.ApplyModifiedProperties(); 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/Gizmos/NavMeshLink Icon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 92f4afa3e25264f5b964937ccea49ff2 3 | timeCreated: 1477656497 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/Gizmos/NavMeshSurface Icon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e4f97225bcfb64760a1c81f460837f01 3 | timeCreated: 1477656497 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/Gizmos/NavMeshModifierVolume Icon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cc7b9475dbddf4f9088d327d6e10ab77 3 | timeCreated: 1477656497 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Assets/Game/Scenes/Levels/Level/ReflectionProbe-0.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cd2560e734f960748a1b238abd2f31fe 3 | timeCreated: 1487513999 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: 7 | 8900000: generatedCubemap 8 | serializedVersion: 4 9 | mipmaps: 10 | mipMapMode: 0 11 | enableMipMap: 1 12 | sRGBTexture: 1 13 | linearTexture: 0 14 | fadeOut: 0 15 | borderMipMap: 0 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | grayScaleToAlpha: 0 25 | generateCubemap: 6 26 | cubemapConvolution: 1 27 | seamlessCubemap: 1 28 | textureFormat: 1 29 | maxTextureSize: 2048 30 | textureSettings: 31 | filterMode: 2 32 | aniso: 0 33 | mipBias: 0 34 | wrapMode: 1 35 | nPOTScale: 1 36 | lightmap: 0 37 | compressionQuality: 50 38 | spriteMode: 0 39 | spriteExtrude: 1 40 | spriteMeshType: 1 41 | alignment: 0 42 | spritePivot: {x: 0.5, y: 0.5} 43 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 44 | spritePixelsToUnits: 100 45 | alphaUsage: 1 46 | alphaIsTransparency: 0 47 | spriteTessellationDetail: -1 48 | textureType: 0 49 | textureShape: 2 50 | maxTextureSizeSet: 0 51 | compressionQualitySet: 0 52 | textureFormatSet: 0 53 | platformSettings: 54 | - buildTarget: DefaultTexturePlatform 55 | maxTextureSize: 2048 56 | textureFormat: -1 57 | textureCompression: 1 58 | compressionQuality: 100 59 | crunchedCompression: 0 60 | allowsAlphaSplitting: 0 61 | overridden: 0 62 | spriteSheet: 63 | serializedVersion: 2 64 | sprites: [] 65 | outline: [] 66 | spritePackingTag: 67 | userData: 68 | assetBundleName: 69 | assetBundleVariant: 70 | -------------------------------------------------------------------------------- /Assets/Game/Scenes/Preloader/ReflectionProbe-0.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1d1f59b9c888a964e99edc9571bade86 3 | timeCreated: 1486473859 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: 7 | 8900000: generatedCubemap 8 | serializedVersion: 4 9 | mipmaps: 10 | mipMapMode: 0 11 | enableMipMap: 1 12 | sRGBTexture: 1 13 | linearTexture: 0 14 | fadeOut: 0 15 | borderMipMap: 0 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | grayScaleToAlpha: 0 25 | generateCubemap: 6 26 | cubemapConvolution: 1 27 | seamlessCubemap: 1 28 | textureFormat: 1 29 | maxTextureSize: 2048 30 | textureSettings: 31 | filterMode: 2 32 | aniso: 0 33 | mipBias: 0 34 | wrapMode: 1 35 | nPOTScale: 1 36 | lightmap: 0 37 | compressionQuality: 50 38 | spriteMode: 0 39 | spriteExtrude: 1 40 | spriteMeshType: 1 41 | alignment: 0 42 | spritePivot: {x: 0.5, y: 0.5} 43 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 44 | spritePixelsToUnits: 100 45 | alphaUsage: 1 46 | alphaIsTransparency: 0 47 | spriteTessellationDetail: -1 48 | textureType: 0 49 | textureShape: 2 50 | maxTextureSizeSet: 0 51 | compressionQualitySet: 0 52 | textureFormatSet: 0 53 | platformSettings: 54 | - buildTarget: DefaultTexturePlatform 55 | maxTextureSize: 2048 56 | textureFormat: -1 57 | textureCompression: 1 58 | compressionQuality: 100 59 | crunchedCompression: 0 60 | allowsAlphaSplitting: 0 61 | overridden: 0 62 | spriteSheet: 63 | serializedVersion: 2 64 | sprites: [] 65 | outline: [] 66 | spritePackingTag: 67 | userData: 68 | assetBundleName: 69 | assetBundleVariant: 70 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents/Scripts/NavMeshModifier.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace UnityEngine.AI 4 | { 5 | [ExecuteInEditMode] 6 | [AddComponentMenu("Navigation/NavMeshModifier", 32)] 7 | [HelpURL("https://github.com/Unity-Technologies/NavMeshComponents#documentation-draft")] 8 | public class NavMeshModifier : MonoBehaviour 9 | { 10 | [SerializeField] 11 | bool m_OverrideArea; 12 | public bool overrideArea { get { return m_OverrideArea; } set { m_OverrideArea = value; } } 13 | 14 | [SerializeField] 15 | int m_Area; 16 | public int area { get { return m_Area; } set { m_Area = value; } } 17 | 18 | [SerializeField] 19 | bool m_IgnoreFromBuild; 20 | public bool ignoreFromBuild { get { return m_IgnoreFromBuild; } set { m_IgnoreFromBuild = value; } } 21 | 22 | // List of agent types the modifier is applied for. 23 | // Special values: empty == None, m_AffectedAgents[0] =-1 == All. 24 | [SerializeField] 25 | List m_AffectedAgents = new List(new int[] { -1 }); // Default value is All 26 | 27 | static readonly List s_NavMeshModifiers = new List(); 28 | 29 | public static List activeModifiers 30 | { 31 | get { return s_NavMeshModifiers; } 32 | } 33 | 34 | void OnEnable() 35 | { 36 | if (!s_NavMeshModifiers.Contains(this)) 37 | s_NavMeshModifiers.Add(this); 38 | } 39 | 40 | void OnDisable() 41 | { 42 | s_NavMeshModifiers.Remove(this); 43 | } 44 | 45 | public bool AffectsAgentType(int agentTypeID) 46 | { 47 | if (m_AffectedAgents.Count == 0) 48 | return false; 49 | if (m_AffectedAgents[0] == -1) 50 | return true; 51 | return m_AffectedAgents.IndexOf(agentTypeID) != -1; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents/Scripts/NavMeshModifierVolume.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace UnityEngine.AI 4 | { 5 | [ExecuteInEditMode] 6 | [AddComponentMenu("Navigation/NavMeshModifierVolume", 31)] 7 | [HelpURL("https://github.com/Unity-Technologies/NavMeshComponents#documentation-draft")] 8 | public class NavMeshModifierVolume : MonoBehaviour 9 | { 10 | [SerializeField] 11 | Vector3 m_Size = new Vector3(4.0f, 3.0f, 4.0f); 12 | public Vector3 size { get { return m_Size; } set { m_Size = value; } } 13 | 14 | [SerializeField] 15 | Vector3 m_Center = new Vector3(0, 1.0f, 0); 16 | public Vector3 center { get { return m_Center; } set { m_Center = value; } } 17 | 18 | [SerializeField] 19 | int m_Area; 20 | public int area { get { return m_Area; } set { m_Area = value; } } 21 | 22 | // List of agent types the modifier is applied for. 23 | // Special values: empty == None, m_AffectedAgents[0] =-1 == All. 24 | [SerializeField] 25 | List m_AffectedAgents = new List(new int[] { -1 }); // Default value is All 26 | 27 | static readonly List s_NavMeshModifiers = new List(); 28 | 29 | public static List activeModifiers 30 | { 31 | get { return s_NavMeshModifiers; } 32 | } 33 | 34 | void OnEnable() 35 | { 36 | if (!s_NavMeshModifiers.Contains(this)) 37 | s_NavMeshModifiers.Add(this); 38 | } 39 | 40 | void OnDisable() 41 | { 42 | s_NavMeshModifiers.Remove(this); 43 | } 44 | 45 | public bool AffectsAgentType(int agentTypeID) 46 | { 47 | if (m_AffectedAgents.Count == 0) 48 | return false; 49 | if (m_AffectedAgents[0] == -1) 50 | return true; 51 | return m_AffectedAgents.IndexOf(agentTypeID) != -1; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Gameplay/Modules/IDamageable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | using UnityEngine.UI; 6 | 7 | namespace CRC 8 | { 9 | public delegate void DeathEventHandler(); 10 | public delegate void HealthChangeEventHandler(); 11 | public interface IDamageable 12 | { 13 | event DeathEventHandler DeathEvent; 14 | event HealthChangeEventHandler HealthChangeEvent; 15 | 16 | KingTower Owner { get; } 17 | 18 | float MaxHealth { get; } 19 | float CurrentHealth { get; } 20 | 21 | void Hurt(float amount); 22 | void Heal(float amount); 23 | } 24 | 25 | public abstract class Damageable : MonoBehaviour, IDamageable 26 | { 27 | public event DeathEventHandler DeathEvent; 28 | public event HealthChangeEventHandler HealthChangeEvent; 29 | 30 | [SerializeField] 31 | protected KingTower m_Owner; 32 | public KingTower Owner { get { return m_Owner; } } 33 | 34 | [SerializeField] 35 | protected float m_MaxHealth; 36 | public float MaxHealth { get { return m_MaxHealth; } } 37 | 38 | protected float m_CurrentHealth; 39 | public float CurrentHealth { get { return m_CurrentHealth; } } 40 | 41 | public virtual void Hurt(float amount) 42 | { 43 | m_CurrentHealth -= amount; 44 | 45 | if (m_CurrentHealth <= .0f) 46 | { 47 | m_CurrentHealth = .0f; 48 | FireDeathEvent(); 49 | } 50 | 51 | FireHealthChangeEvent(); 52 | } 53 | 54 | public virtual void Heal(float amount) 55 | { 56 | m_CurrentHealth += amount; 57 | 58 | if (m_CurrentHealth > m_MaxHealth) 59 | m_CurrentHealth = m_MaxHealth; 60 | 61 | FireHealthChangeEvent(); 62 | } 63 | 64 | protected void FireDeathEvent() 65 | { 66 | if (DeathEvent != null) 67 | DeathEvent(); 68 | } 69 | 70 | protected void FireHealthChangeEvent() 71 | { 72 | if (HealthChangeEvent != null) 73 | HealthChangeEvent(); 74 | } 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Meshes/BlueKingTower.obj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f0b032d01ba07f74185b7ba3771dbc2e 3 | timeCreated: 1496317624 4 | licenseType: Free 5 | ModelImporter: 6 | serializedVersion: 19 7 | fileIDToRecycleName: 8 | 100000: //RootNode 9 | 100002: default 10 | 400000: //RootNode 11 | 400002: default 12 | 2300000: default 13 | 3300000: default 14 | 4300000: default 15 | materials: 16 | importMaterials: 1 17 | materialName: 0 18 | materialSearch: 1 19 | animations: 20 | legacyGenerateAnimations: 4 21 | bakeSimulation: 0 22 | resampleCurves: 1 23 | optimizeGameObjects: 0 24 | motionNodeName: 25 | rigImportErrors: 26 | rigImportWarnings: 27 | animationImportErrors: 28 | animationImportWarnings: 29 | animationRetargetingWarnings: 30 | animationDoRetargetingWarnings: 0 31 | animationCompression: 1 32 | animationRotationError: 0.5 33 | animationPositionError: 0.5 34 | animationScaleError: 0.5 35 | animationWrapMode: 0 36 | extraExposedTransformPaths: [] 37 | clipAnimations: [] 38 | isReadable: 1 39 | meshes: 40 | lODScreenPercentages: [] 41 | globalScale: 1 42 | meshCompression: 0 43 | addColliders: 0 44 | importBlendShapes: 1 45 | swapUVChannels: 0 46 | generateSecondaryUV: 0 47 | useFileUnits: 1 48 | optimizeMeshForGPU: 1 49 | keepQuads: 0 50 | weldVertices: 1 51 | secondaryUVAngleDistortion: 8 52 | secondaryUVAreaDistortion: 15.000001 53 | secondaryUVHardAngle: 88 54 | secondaryUVPackMargin: 4 55 | useFileScale: 1 56 | tangentSpace: 57 | normalSmoothAngle: 60 58 | normalImportMode: 0 59 | tangentImportMode: 3 60 | importAnimation: 1 61 | copyAvatar: 0 62 | humanDescription: 63 | serializedVersion: 2 64 | human: [] 65 | skeleton: [] 66 | armTwist: 0.5 67 | foreArmTwist: 0.5 68 | upperLegTwist: 0.5 69 | legTwist: 0.5 70 | armStretch: 0.05 71 | legStretch: 0.05 72 | feetSpacing: 0 73 | rootMotionBoneName: 74 | rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} 75 | hasTranslationDoF: 0 76 | hasExtraRoot: 0 77 | skeletonHasParents: 1 78 | lastHumanDescriptionAvatarSource: {instanceID: 0} 79 | animationType: 0 80 | humanoidOversampling: 1 81 | additionalBone: 0 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Meshes/RedKingTower.obj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a10a1e352ce369b47afda178e543a0e3 3 | timeCreated: 1496317923 4 | licenseType: Free 5 | ModelImporter: 6 | serializedVersion: 19 7 | fileIDToRecycleName: 8 | 100000: default 9 | 100002: //RootNode 10 | 400000: default 11 | 400002: //RootNode 12 | 2300000: default 13 | 3300000: default 14 | 4300000: default 15 | materials: 16 | importMaterials: 1 17 | materialName: 0 18 | materialSearch: 1 19 | animations: 20 | legacyGenerateAnimations: 4 21 | bakeSimulation: 0 22 | resampleCurves: 1 23 | optimizeGameObjects: 0 24 | motionNodeName: 25 | rigImportErrors: 26 | rigImportWarnings: 27 | animationImportErrors: 28 | animationImportWarnings: 29 | animationRetargetingWarnings: 30 | animationDoRetargetingWarnings: 0 31 | animationCompression: 1 32 | animationRotationError: 0.5 33 | animationPositionError: 0.5 34 | animationScaleError: 0.5 35 | animationWrapMode: 0 36 | extraExposedTransformPaths: [] 37 | clipAnimations: [] 38 | isReadable: 1 39 | meshes: 40 | lODScreenPercentages: [] 41 | globalScale: 1 42 | meshCompression: 0 43 | addColliders: 0 44 | importBlendShapes: 1 45 | swapUVChannels: 0 46 | generateSecondaryUV: 0 47 | useFileUnits: 1 48 | optimizeMeshForGPU: 1 49 | keepQuads: 0 50 | weldVertices: 1 51 | secondaryUVAngleDistortion: 8 52 | secondaryUVAreaDistortion: 15.000001 53 | secondaryUVHardAngle: 88 54 | secondaryUVPackMargin: 4 55 | useFileScale: 1 56 | tangentSpace: 57 | normalSmoothAngle: 60 58 | normalImportMode: 0 59 | tangentImportMode: 3 60 | importAnimation: 1 61 | copyAvatar: 0 62 | humanDescription: 63 | serializedVersion: 2 64 | human: [] 65 | skeleton: [] 66 | armTwist: 0.5 67 | foreArmTwist: 0.5 68 | upperLegTwist: 0.5 69 | legTwist: 0.5 70 | armStretch: 0.05 71 | legStretch: 0.05 72 | feetSpacing: 0 73 | rootMotionBoneName: 74 | rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} 75 | hasTranslationDoF: 0 76 | hasExtraRoot: 0 77 | skeletonHasParents: 1 78 | lastHumanDescriptionAvatarSource: {instanceID: 0} 79 | animationType: 0 80 | humanoidOversampling: 1 81 | additionalBone: 0 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Meshes/BluePrincessTower.obj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6086e24b00f90c24190bedfb47932886 3 | timeCreated: 1496317624 4 | licenseType: Free 5 | ModelImporter: 6 | serializedVersion: 19 7 | fileIDToRecycleName: 8 | 100000: //RootNode 9 | 100002: default 10 | 400000: //RootNode 11 | 400002: default 12 | 2300000: default 13 | 3300000: default 14 | 4300000: default 15 | materials: 16 | importMaterials: 1 17 | materialName: 0 18 | materialSearch: 1 19 | animations: 20 | legacyGenerateAnimations: 4 21 | bakeSimulation: 0 22 | resampleCurves: 1 23 | optimizeGameObjects: 0 24 | motionNodeName: 25 | rigImportErrors: 26 | rigImportWarnings: 27 | animationImportErrors: 28 | animationImportWarnings: 29 | animationRetargetingWarnings: 30 | animationDoRetargetingWarnings: 0 31 | animationCompression: 1 32 | animationRotationError: 0.5 33 | animationPositionError: 0.5 34 | animationScaleError: 0.5 35 | animationWrapMode: 0 36 | extraExposedTransformPaths: [] 37 | clipAnimations: [] 38 | isReadable: 1 39 | meshes: 40 | lODScreenPercentages: [] 41 | globalScale: 1 42 | meshCompression: 0 43 | addColliders: 0 44 | importBlendShapes: 1 45 | swapUVChannels: 0 46 | generateSecondaryUV: 0 47 | useFileUnits: 1 48 | optimizeMeshForGPU: 1 49 | keepQuads: 0 50 | weldVertices: 1 51 | secondaryUVAngleDistortion: 8 52 | secondaryUVAreaDistortion: 15.000001 53 | secondaryUVHardAngle: 88 54 | secondaryUVPackMargin: 4 55 | useFileScale: 1 56 | tangentSpace: 57 | normalSmoothAngle: 60 58 | normalImportMode: 0 59 | tangentImportMode: 3 60 | importAnimation: 1 61 | copyAvatar: 0 62 | humanDescription: 63 | serializedVersion: 2 64 | human: [] 65 | skeleton: [] 66 | armTwist: 0.5 67 | foreArmTwist: 0.5 68 | upperLegTwist: 0.5 69 | legTwist: 0.5 70 | armStretch: 0.05 71 | legStretch: 0.05 72 | feetSpacing: 0 73 | rootMotionBoneName: 74 | rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} 75 | hasTranslationDoF: 0 76 | hasExtraRoot: 0 77 | skeletonHasParents: 1 78 | lastHumanDescriptionAvatarSource: {instanceID: 0} 79 | animationType: 0 80 | humanoidOversampling: 1 81 | additionalBone: 0 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Meshes/RedPrincessTower.obj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c3175674a4d112946820dd4cd9dd5855 3 | timeCreated: 1496317924 4 | licenseType: Free 5 | ModelImporter: 6 | serializedVersion: 19 7 | fileIDToRecycleName: 8 | 100000: default 9 | 100002: //RootNode 10 | 400000: default 11 | 400002: //RootNode 12 | 2300000: default 13 | 3300000: default 14 | 4300000: default 15 | materials: 16 | importMaterials: 1 17 | materialName: 0 18 | materialSearch: 1 19 | animations: 20 | legacyGenerateAnimations: 4 21 | bakeSimulation: 0 22 | resampleCurves: 1 23 | optimizeGameObjects: 0 24 | motionNodeName: 25 | rigImportErrors: 26 | rigImportWarnings: 27 | animationImportErrors: 28 | animationImportWarnings: 29 | animationRetargetingWarnings: 30 | animationDoRetargetingWarnings: 0 31 | animationCompression: 1 32 | animationRotationError: 0.5 33 | animationPositionError: 0.5 34 | animationScaleError: 0.5 35 | animationWrapMode: 0 36 | extraExposedTransformPaths: [] 37 | clipAnimations: [] 38 | isReadable: 1 39 | meshes: 40 | lODScreenPercentages: [] 41 | globalScale: 1 42 | meshCompression: 0 43 | addColliders: 0 44 | importBlendShapes: 1 45 | swapUVChannels: 0 46 | generateSecondaryUV: 0 47 | useFileUnits: 1 48 | optimizeMeshForGPU: 1 49 | keepQuads: 0 50 | weldVertices: 1 51 | secondaryUVAngleDistortion: 8 52 | secondaryUVAreaDistortion: 15.000001 53 | secondaryUVHardAngle: 88 54 | secondaryUVPackMargin: 4 55 | useFileScale: 1 56 | tangentSpace: 57 | normalSmoothAngle: 60 58 | normalImportMode: 0 59 | tangentImportMode: 3 60 | importAnimation: 1 61 | copyAvatar: 0 62 | humanDescription: 63 | serializedVersion: 2 64 | human: [] 65 | skeleton: [] 66 | armTwist: 0.5 67 | foreArmTwist: 0.5 68 | upperLegTwist: 0.5 69 | legTwist: 0.5 70 | armStretch: 0.05 71 | legStretch: 0.05 72 | feetSpacing: 0 73 | rootMotionBoneName: 74 | rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} 75 | hasTranslationDoF: 0 76 | hasExtraRoot: 0 77 | skeletonHasParents: 1 78 | lastHumanDescriptionAvatarSource: {instanceID: 0} 79 | animationType: 0 80 | humanoidOversampling: 1 81 | additionalBone: 0 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Textures/UI/4x4white.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e6645566062c51f479856e117869e881 3 | timeCreated: 1496869133 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 16 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 1 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 8 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: WebGL 78 | maxTextureSize: 2048 79 | textureFormat: -1 80 | textureCompression: 1 81 | compressionQuality: 50 82 | crunchedCompression: 0 83 | allowsAlphaSplitting: 0 84 | overridden: 0 85 | spriteSheet: 86 | serializedVersion: 2 87 | sprites: [] 88 | outline: [] 89 | spritePackingTag: 90 | userData: 91 | assetBundleName: 92 | assetBundleVariant: 93 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Textures/Gameplay/Towers/RedKingTower.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 04269a3fe3c6cb24cab9a0700929870e 3 | timeCreated: 1496317764 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 16 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 8 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: WebGL 78 | maxTextureSize: 2048 79 | textureFormat: -1 80 | textureCompression: 1 81 | compressionQuality: 50 82 | crunchedCompression: 0 83 | allowsAlphaSplitting: 0 84 | overridden: 0 85 | spriteSheet: 86 | serializedVersion: 2 87 | sprites: [] 88 | outline: [] 89 | spritePackingTag: 90 | userData: 91 | assetBundleName: 92 | assetBundleVariant: 93 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Textures/Gameplay/Towers/BlueKingTower.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1728483aa4e922c49a17148aa5ffc84b 3 | timeCreated: 1496317764 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 16 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 8 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: WebGL 78 | maxTextureSize: 2048 79 | textureFormat: -1 80 | textureCompression: 1 81 | compressionQuality: 50 82 | crunchedCompression: 0 83 | allowsAlphaSplitting: 0 84 | overridden: 0 85 | spriteSheet: 86 | serializedVersion: 2 87 | sprites: [] 88 | outline: [] 89 | spritePackingTag: 90 | userData: 91 | assetBundleName: 92 | assetBundleVariant: 93 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Textures/Gameplay/Towers/BluePrincessTower.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 685071307602d544ab825de4fe4eb421 3 | timeCreated: 1496317764 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 16 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 8 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: WebGL 78 | maxTextureSize: 2048 79 | textureFormat: -1 80 | textureCompression: 1 81 | compressionQuality: 50 82 | crunchedCompression: 0 83 | allowsAlphaSplitting: 0 84 | overridden: 0 85 | spriteSheet: 86 | serializedVersion: 2 87 | sprites: [] 88 | outline: [] 89 | spritePackingTag: 90 | userData: 91 | assetBundleName: 92 | assetBundleVariant: 93 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Textures/Gameplay/Towers/RedPrincessTower.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 974b52c24c7972b45aa7752fa12776cd 3 | timeCreated: 1496317764 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 16 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 8 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: WebGL 78 | maxTextureSize: 2048 79 | textureFormat: -1 80 | textureCompression: 1 81 | compressionQuality: 50 82 | crunchedCompression: 0 83 | allowsAlphaSplitting: 0 84 | overridden: 0 85 | spriteSheet: 86 | serializedVersion: 2 87 | sprites: [] 88 | outline: [] 89 | spritePackingTag: 90 | userData: 91 | assetBundleName: 92 | assetBundleVariant: 93 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Managers/AudioManager.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class AudioManager : DDOLSingleton 6 | { 7 | private AudioSource[] m_SFXSources; 8 | 9 | [SerializeField] 10 | private AudioSource m_MusicSource; 11 | public AudioSource MusicSource { get { return m_MusicSource; } } 12 | 13 | [SerializeField] 14 | private int m_SFXBuffers = 8; 15 | public int SFXBuffers { get { return m_SFXBuffers; } } 16 | 17 | [SerializeField] 18 | private const float m_DefaultSFXVolume = .5f; 19 | public float DefaultSFXVolume { get { return m_DefaultSFXVolume; } } 20 | 21 | private Vector2 m_DefaultPitchRange = new Vector2(.95f, 1.05f); 22 | 23 | /// 24 | /// This function is called first thing in the entire script. 25 | /// 26 | public override void Awake() 27 | { 28 | base.Awake(); 29 | } 30 | 31 | /// 32 | /// This function is called after the Awake function. 33 | /// 34 | void Start() 35 | { 36 | m_SFXSources = new AudioSource[m_SFXBuffers]; 37 | 38 | for (int i = 0; i < m_SFXSources.Length; i++) 39 | { 40 | m_SFXSources[i] = gameObject.AddComponent(); 41 | } 42 | } 43 | 44 | public void PlayEffect( AudioClip clip, float volume = m_DefaultSFXVolume, bool loop = false ) 45 | { 46 | AudioSource source = GetInactiveAudioSource(); 47 | source.pitch = Random.Range(m_DefaultPitchRange.x, m_DefaultPitchRange.y); 48 | source.clip = clip; 49 | source.volume = volume; 50 | source.loop = loop; 51 | source.Play(); 52 | } 53 | 54 | public void PlayEffect( AudioClip clip, int priority, float volume = m_DefaultSFXVolume, bool loop = false ) 55 | { 56 | AudioSource source = m_SFXSources[Mathf.Clamp(priority, 0, m_SFXSources.Length)]; 57 | source.pitch = Random.Range(m_DefaultPitchRange.x, m_DefaultPitchRange.y); 58 | source.clip = clip; 59 | source.volume = volume; 60 | source.Play(); 61 | } 62 | 63 | public void PlayRandomEffect( AudioClip[] clips, float volume = m_DefaultSFXVolume, bool loop = false ) 64 | { 65 | AudioSource source = GetInactiveAudioSource(); 66 | source.pitch = Random.Range(m_DefaultPitchRange.x, m_DefaultPitchRange.y); 67 | source.clip = clips[Random.Range(0, clips.Length)]; 68 | source.volume = volume; 69 | source.loop = loop; 70 | source.Play(); 71 | } 72 | 73 | public void PlayRandomEffect( AudioClip[] clips, int priority, float volume = m_DefaultSFXVolume, bool loop = false ) 74 | { 75 | AudioSource source = m_SFXSources[Mathf.Clamp(priority, 0, m_SFXSources.Length)]; 76 | source.pitch = Random.Range(m_DefaultPitchRange.x, m_DefaultPitchRange.y); 77 | source.clip = clips[Random.Range(0, clips.Length)]; 78 | source.volume = volume; 79 | source.loop = loop; 80 | source.Play(); 81 | } 82 | 83 | private AudioSource GetInactiveAudioSource() 84 | { 85 | foreach (AudioSource source in m_SFXSources) 86 | { 87 | if (!source.isPlaying) return source; 88 | } 89 | 90 | Debug.LogWarning("Cannot find inactive audio source! Returning last in list."); 91 | return m_SFXSources[m_SFXSources.Length - 1]; 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /Assets/Game/Scripts/Gameplay/Units/Unit.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | using UnityEngine.AI; 6 | using UnityEngine.UI; 7 | 8 | namespace CRC 9 | { 10 | [CreateAssetMenu(fileName = "New Unit Definition")] 11 | public class UnitDefinition : ScriptableObject 12 | { 13 | [SerializeField] 14 | private string m_UnitName; 15 | public string Name { get { return m_UnitName; } } 16 | 17 | [SerializeField] 18 | private float m_MovementSpeed; 19 | public float MovementSpeed { get { return m_MovementSpeed; } } 20 | 21 | [SerializeField] 22 | private float m_Damage; 23 | public float Damage { get { return m_Damage; } } 24 | 25 | [SerializeField] 26 | private float m_DamageInterval; 27 | public float DamageInterval { get { return m_DamageInterval; } } 28 | } 29 | 30 | public class Unit : Damageable 31 | { 32 | public enum UnitState 33 | { 34 | Idle = 0, 35 | Moving, 36 | Attacking 37 | } 38 | 39 | [SerializeField] 40 | private UnitDefinition m_Definition; 41 | public UnitDefinition Definition { get { return m_Definition; } } 42 | 43 | [SerializeField] 44 | private Renderer m_Renderer; 45 | 46 | [SerializeField] 47 | private NavMeshAgent m_Agent; 48 | 49 | [Header("Healthbar")] 50 | 51 | [SerializeField] 52 | private GameObject m_HealthPanelPrefab; 53 | 54 | [SerializeField] 55 | private float m_HPBarYOffPx = 50.0f; 56 | 57 | private Image m_HPBarForeground; 58 | 59 | private bool m_Enabled; 60 | 61 | private UnitState m_State; 62 | 63 | void Awake() 64 | { 65 | m_State = UnitState.Idle; 66 | } 67 | 68 | public void Initialize(KingTower owner) 69 | { 70 | m_Owner = owner; 71 | 72 | m_Renderer.material.color = m_Owner.Definition.Color; 73 | 74 | m_State = UnitState.Idle; 75 | m_CurrentHealth = m_MaxHealth; 76 | 77 | GameObject healthPanel = Instantiate 78 | ( 79 | m_HealthPanelPrefab, 80 | Camera.main.WorldToScreenPoint(this.transform.position) + Vector3.up * m_HPBarYOffPx, 81 | Quaternion.identity, 82 | GameObject.Find("HUD").transform 83 | ); 84 | 85 | healthPanel.GetComponent().Initialize(this, m_HPBarYOffPx); 86 | 87 | m_HPBarForeground = healthPanel.transform.GetChild(1).GetComponent(); 88 | m_HPBarForeground.color = m_Owner.Definition.Color; 89 | 90 | HealthChangeEvent += OnHealthChange; 91 | 92 | m_Enabled = true; 93 | } 94 | 95 | void Update() 96 | { 97 | if (!m_Enabled) 98 | return; 99 | 100 | StartCoroutine(Walk()); 101 | } 102 | 103 | void OnDestroy() 104 | { 105 | HealthChangeEvent -= OnHealthChange; 106 | } 107 | 108 | private void OnHealthChange() 109 | { 110 | m_HPBarForeground.fillAmount = m_CurrentHealth / m_MaxHealth; 111 | } 112 | 113 | private IEnumerator Walk() 114 | { 115 | yield return new WaitForSeconds(0.5f); 116 | 117 | Damageable nearest = null; 118 | float range = Mathf.Infinity; 119 | 120 | Damageable[] damageables = FindObjectsOfType(); 121 | for (int i = 0; i < damageables.Length; i++) 122 | { 123 | Damageable d = damageables[i]; 124 | 125 | if (d.Owner != m_Owner) 126 | { 127 | float dist = Vector3.Distance(this.transform.position, d.transform.position); 128 | 129 | if (dist < range) 130 | { 131 | nearest = d; 132 | range = dist; 133 | } 134 | } 135 | } 136 | 137 | if (nearest != null) 138 | { 139 | m_Agent.SetDestination(nearest.transform.position); 140 | m_State = UnitState.Moving; 141 | } 142 | } 143 | } 144 | } 145 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents/Scripts/NavMeshLink.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace UnityEngine.AI 4 | { 5 | [ExecuteInEditMode] 6 | [DefaultExecutionOrder(-101)] 7 | [AddComponentMenu("Navigation/NavMeshLink", 33)] 8 | [HelpURL("https://github.com/Unity-Technologies/NavMeshComponents#documentation-draft")] 9 | public class NavMeshLink : MonoBehaviour 10 | { 11 | [SerializeField] 12 | int m_AgentTypeID; 13 | public int agentTypeID { get { return m_AgentTypeID; } set { m_AgentTypeID = value; UpdateLink(); } } 14 | 15 | [SerializeField] 16 | Vector3 m_StartPoint = new Vector3(0.0f, 0.0f, -2.5f); 17 | public Vector3 startPoint { get { return m_StartPoint; } set { m_StartPoint = value; UpdateLink(); } } 18 | 19 | [SerializeField] 20 | Vector3 m_EndPoint = new Vector3(0.0f, 0.0f, 2.5f); 21 | public Vector3 endPoint { get { return m_EndPoint; } set { m_EndPoint = value; UpdateLink(); } } 22 | 23 | [SerializeField] 24 | float m_Width; 25 | public float width { get { return m_Width; } set { m_Width = value; UpdateLink(); } } 26 | 27 | [SerializeField] 28 | int m_CostModifier = -1; 29 | public int costModifier { get { return m_CostModifier; } set { m_CostModifier = value; UpdateLink(); } } 30 | 31 | [SerializeField] 32 | bool m_Bidirectional = true; 33 | public bool bidirectional { get { return m_Bidirectional; } set { m_Bidirectional = value; UpdateLink(); } } 34 | 35 | [SerializeField] 36 | bool m_AutoUpdatePosition; 37 | public bool autoUpdate { get { return m_AutoUpdatePosition; } set { SetAutoUpdate(value); } } 38 | 39 | [SerializeField] 40 | int m_Area; 41 | public int area { get { return m_Area; } set { m_Area = value; UpdateLink(); } } 42 | 43 | NavMeshLinkInstance m_LinkInstance = new NavMeshLinkInstance(); 44 | 45 | Vector3 m_LastPosition = Vector3.zero; 46 | Quaternion m_LastRotation = Quaternion.identity; 47 | 48 | static readonly List s_Tracked = new List(); 49 | 50 | void OnEnable() 51 | { 52 | AddLink(); 53 | if (m_AutoUpdatePosition && m_LinkInstance.valid) 54 | AddTracking(this); 55 | } 56 | 57 | void OnDisable() 58 | { 59 | RemoveTracking(this); 60 | m_LinkInstance.Remove(); 61 | } 62 | 63 | public void UpdateLink() 64 | { 65 | m_LinkInstance.Remove(); 66 | AddLink(); 67 | } 68 | 69 | static void AddTracking(NavMeshLink link) 70 | { 71 | #if UNITY_EDITOR 72 | if (s_Tracked.Contains(link)) 73 | { 74 | Debug.LogError("Link is already tracked: " + link); 75 | return; 76 | } 77 | #endif 78 | 79 | if (s_Tracked.Count == 0) 80 | NavMesh.onPreUpdate += UpdateTrackedInstances; 81 | 82 | s_Tracked.Add(link); 83 | } 84 | 85 | static void RemoveTracking(NavMeshLink link) 86 | { 87 | s_Tracked.Remove(link); 88 | 89 | if (s_Tracked.Count == 0) 90 | NavMesh.onPreUpdate -= UpdateTrackedInstances; 91 | } 92 | 93 | void SetAutoUpdate(bool value) 94 | { 95 | if (m_AutoUpdatePosition == value) 96 | return; 97 | m_AutoUpdatePosition = value; 98 | if (value) 99 | AddTracking(this); 100 | else 101 | RemoveTracking(this); 102 | } 103 | 104 | void AddLink() 105 | { 106 | #if UNITY_EDITOR 107 | if (m_LinkInstance.valid) 108 | { 109 | Debug.LogError("Link is already added: " + this); 110 | return; 111 | } 112 | #endif 113 | 114 | var link = new NavMeshLinkData(); 115 | link.startPosition = m_StartPoint; 116 | link.endPosition = m_EndPoint; 117 | link.width = m_Width; 118 | link.costModifier = m_CostModifier; 119 | link.bidirectional = m_Bidirectional; 120 | link.area = m_Area; 121 | link.agentTypeID = m_AgentTypeID; 122 | m_LinkInstance = NavMesh.AddLink(link, transform.position, transform.rotation); 123 | if (m_LinkInstance.valid) 124 | m_LinkInstance.owner = this; 125 | 126 | m_LastPosition = transform.position; 127 | m_LastRotation = transform.rotation; 128 | } 129 | 130 | bool HasTransformChanged() 131 | { 132 | if (m_LastPosition != transform.position) return true; 133 | if (m_LastRotation != transform.rotation) return true; 134 | return false; 135 | } 136 | 137 | void OnDidApplyAnimationProperties() 138 | { 139 | UpdateLink(); 140 | } 141 | 142 | static void UpdateTrackedInstances() 143 | { 144 | foreach (var instance in s_Tracked) 145 | { 146 | if (instance.HasTransformChanged()) 147 | instance.UpdateLink(); 148 | } 149 | } 150 | 151 | #if UNITY_EDITOR 152 | void OnValidate() 153 | { 154 | m_Width = Mathf.Max(0.0f, m_Width); 155 | 156 | if (!m_LinkInstance.valid) 157 | return; 158 | 159 | UpdateLink(); 160 | 161 | if (!m_AutoUpdatePosition) 162 | { 163 | RemoveTracking(this); 164 | } 165 | else if (!s_Tracked.Contains(this)) 166 | { 167 | AddTracking(this); 168 | } 169 | } 170 | #endif 171 | } 172 | } 173 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents/Editor/NavMeshModifierVolumeEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor.IMGUI.Controls; 2 | using UnityEditorInternal; 3 | using UnityEngine.AI; 4 | using UnityEngine; 5 | 6 | namespace UnityEditor.AI 7 | { 8 | [CanEditMultipleObjects] 9 | [CustomEditor(typeof(NavMeshModifierVolume))] 10 | class NavMeshModifierVolumeEditor : Editor 11 | { 12 | SerializedProperty m_AffectedAgents; 13 | SerializedProperty m_Area; 14 | SerializedProperty m_Center; 15 | SerializedProperty m_Size; 16 | 17 | static Color s_HandleColor = new Color(187f, 138f, 240f, 210f) / 255; 18 | static Color s_HandleColorDisabled = new Color(187f * 0.75f, 138f * 0.75f, 240f * 0.75f, 100f) / 255; 19 | 20 | static int s_HandleControlIDHint = typeof(NavMeshModifierVolumeEditor).Name.GetHashCode(); 21 | BoxBoundsHandle m_BoundsHandle = new BoxBoundsHandle(s_HandleControlIDHint); 22 | 23 | bool editingCollider 24 | { 25 | get { return EditMode.editMode == EditMode.SceneViewEditMode.Collider && EditMode.IsOwner(this); } 26 | } 27 | 28 | void OnEnable() 29 | { 30 | m_AffectedAgents = serializedObject.FindProperty("m_AffectedAgents"); 31 | m_Area = serializedObject.FindProperty("m_Area"); 32 | m_Center = serializedObject.FindProperty("m_Center"); 33 | m_Size = serializedObject.FindProperty("m_Size"); 34 | 35 | NavMeshVisualizationSettings.showNavigation++; 36 | } 37 | 38 | void OnDisable() 39 | { 40 | NavMeshVisualizationSettings.showNavigation--; 41 | } 42 | 43 | public override void OnInspectorGUI() 44 | { 45 | serializedObject.Update(); 46 | 47 | InspectorEditButtonGUI(); 48 | 49 | EditorGUILayout.PropertyField(m_Size); 50 | EditorGUILayout.PropertyField(m_Center); 51 | 52 | NavMeshComponentsGUIUtility.AreaPopup("Area Type", m_Area); 53 | NavMeshComponentsGUIUtility.AgentMaskPopup("Affected Agents", m_AffectedAgents); 54 | EditorGUILayout.Space(); 55 | 56 | serializedObject.ApplyModifiedProperties(); 57 | } 58 | 59 | [DrawGizmo(GizmoType.Selected | GizmoType.Active)] 60 | static void RenderBoxGizmo(NavMeshModifierVolume navModifier, GizmoType gizmoType) 61 | { 62 | var color = navModifier.enabled ? s_HandleColor : s_HandleColorDisabled; 63 | var colorTrans = new Color(color.r * 0.75f, color.g * 0.75f, color.b * 0.75f, color.a * 0.15f); 64 | 65 | var oldColor = Gizmos.color; 66 | var oldMatrix = Gizmos.matrix; 67 | 68 | Gizmos.matrix = navModifier.transform.localToWorldMatrix; 69 | 70 | Gizmos.color = colorTrans; 71 | Gizmos.DrawCube(navModifier.center, navModifier.size); 72 | 73 | Gizmos.color = color; 74 | Gizmos.DrawWireCube(navModifier.center, navModifier.size); 75 | 76 | Gizmos.matrix = oldMatrix; 77 | Gizmos.color = oldColor; 78 | 79 | Gizmos.DrawIcon(navModifier.transform.position, "NavMeshModifierVolume Icon", true); 80 | } 81 | 82 | [DrawGizmo(GizmoType.NotInSelectionHierarchy | GizmoType.Pickable)] 83 | static void RenderBoxGizmoNotSelected(NavMeshModifierVolume navModifier, GizmoType gizmoType) 84 | { 85 | if (NavMeshVisualizationSettings.showNavigation > 0) 86 | { 87 | var color = navModifier.enabled ? s_HandleColor : s_HandleColorDisabled; 88 | var oldColor = Gizmos.color; 89 | var oldMatrix = Gizmos.matrix; 90 | 91 | Gizmos.matrix = navModifier.transform.localToWorldMatrix; 92 | 93 | Gizmos.color = color; 94 | Gizmos.DrawWireCube(navModifier.center, navModifier.size); 95 | 96 | Gizmos.matrix = oldMatrix; 97 | Gizmos.color = oldColor; 98 | } 99 | 100 | Gizmos.DrawIcon(navModifier.transform.position, "NavMeshModifierVolume Icon", true); 101 | } 102 | 103 | void InspectorEditButtonGUI() 104 | { 105 | var navModifier = (NavMeshModifierVolume)target; 106 | var bounds = new Bounds(navModifier.transform.position, navModifier.size); 107 | 108 | EditMode.DoEditModeInspectorModeButton( 109 | EditMode.SceneViewEditMode.Collider, 110 | "Edit Volume", 111 | EditorGUIUtility.IconContent("EditCollider"), 112 | bounds, 113 | this 114 | ); 115 | } 116 | 117 | void OnSceneGUI() 118 | { 119 | if (!editingCollider) 120 | return; 121 | 122 | var vol = (NavMeshModifierVolume)target; 123 | var color = vol.enabled ? s_HandleColor : s_HandleColorDisabled; 124 | using (new Handles.DrawingScope(color, vol.transform.localToWorldMatrix)) 125 | { 126 | m_BoundsHandle.center = vol.center; 127 | m_BoundsHandle.size = vol.size; 128 | 129 | EditorGUI.BeginChangeCheck(); 130 | m_BoundsHandle.DrawHandle(); 131 | if (EditorGUI.EndChangeCheck()) 132 | { 133 | Undo.RecordObject(vol, "Modified NavMesh Modifier Volume"); 134 | Vector3 center = m_BoundsHandle.center; 135 | Vector3 size = m_BoundsHandle.size; 136 | vol.center = center; 137 | vol.size = size; 138 | EditorUtility.SetDirty(target); 139 | } 140 | } 141 | } 142 | 143 | [MenuItem("GameObject/AI/NavMesh Modifier Volume", false, 2001)] 144 | static public void CreateNavMeshModifierVolume(MenuCommand menuCommand) 145 | { 146 | var parent = menuCommand.context as GameObject; 147 | var go = NavMeshComponentsGUIUtility.CreateAndSelectGameObject("NavMesh Modifier Volume", parent); 148 | go.AddComponent(); 149 | var view = SceneView.lastActiveSceneView; 150 | if (view != null) 151 | view.MoveToView(go.transform); 152 | } 153 | } 154 | } 155 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents/Editor/NavMeshComponentsGUIUtility.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.AI; 3 | 4 | namespace UnityEditor.AI 5 | { 6 | public static class NavMeshComponentsGUIUtility 7 | { 8 | public static void AreaPopup(string labelName, SerializedProperty areaProperty) 9 | { 10 | var areaIndex = -1; 11 | var areaNames = GameObjectUtility.GetNavMeshAreaNames(); 12 | for (var i = 0; i < areaNames.Length; i++) 13 | { 14 | var areaValue = GameObjectUtility.GetNavMeshAreaFromName(areaNames[i]); 15 | if (areaValue == areaProperty.intValue) 16 | areaIndex = i; 17 | } 18 | ArrayUtility.Add(ref areaNames, ""); 19 | ArrayUtility.Add(ref areaNames, "Open Area Settings..."); 20 | 21 | var rect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight); 22 | EditorGUI.BeginProperty(rect, GUIContent.none, areaProperty); 23 | 24 | EditorGUI.BeginChangeCheck(); 25 | areaIndex = EditorGUI.Popup(rect, labelName, areaIndex, areaNames); 26 | 27 | if (EditorGUI.EndChangeCheck()) 28 | { 29 | if (areaIndex >= 0 && areaIndex < areaNames.Length - 2) 30 | areaProperty.intValue = GameObjectUtility.GetNavMeshAreaFromName(areaNames[areaIndex]); 31 | else if (areaIndex == areaNames.Length - 1) 32 | NavMeshEditorHelpers.OpenAreaSettings(); 33 | } 34 | 35 | EditorGUI.EndProperty(); 36 | } 37 | 38 | public static void AgentTypePopup(string labelName, SerializedProperty agentTypeID) 39 | { 40 | var index = -1; 41 | var count = NavMesh.GetSettingsCount(); 42 | var agentTypeNames = new string[count + 2]; 43 | for (var i = 0; i < count; i++) 44 | { 45 | var id = NavMesh.GetSettingsByIndex(i).agentTypeID; 46 | var name = NavMesh.GetSettingsNameFromID(id); 47 | agentTypeNames[i] = name; 48 | if (id == agentTypeID.intValue) 49 | index = i; 50 | } 51 | agentTypeNames[count] = ""; 52 | agentTypeNames[count + 1] = "Open Agent Settings..."; 53 | 54 | bool validAgentType = index != -1; 55 | if (!validAgentType) 56 | { 57 | EditorGUILayout.HelpBox("Agent Type invalid.", MessageType.Warning); 58 | } 59 | 60 | var rect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight); 61 | EditorGUI.BeginProperty(rect, GUIContent.none, agentTypeID); 62 | 63 | EditorGUI.BeginChangeCheck(); 64 | index = EditorGUI.Popup(rect, labelName, index, agentTypeNames); 65 | if (EditorGUI.EndChangeCheck()) 66 | { 67 | if (index >= 0 && index < count) 68 | { 69 | var id = NavMesh.GetSettingsByIndex(index).agentTypeID; 70 | agentTypeID.intValue = id; 71 | } 72 | else if (index == count + 1) 73 | { 74 | NavMeshEditorHelpers.OpenAgentSettings(-1); 75 | } 76 | } 77 | 78 | EditorGUI.EndProperty(); 79 | } 80 | 81 | // Agent mask is a set (internally array/list) of agentTypeIDs. 82 | // It is used to describe which agents modifiers apply to. 83 | // There is a special case of "None" which is an empty array. 84 | // There is a special case of "All" which is an array of length 1, and value of -1. 85 | public static void AgentMaskPopup(string labelName, SerializedProperty agentMask) 86 | { 87 | // Contents of the dropdown box. 88 | string popupContent = ""; 89 | 90 | if (agentMask.hasMultipleDifferentValues) 91 | popupContent = "\u2014"; 92 | else 93 | popupContent = GetAgentMaskLabelName(agentMask); 94 | 95 | var content = new GUIContent(popupContent); 96 | var popupRect = GUILayoutUtility.GetRect(content, EditorStyles.popup); 97 | 98 | EditorGUI.BeginProperty(popupRect, GUIContent.none, agentMask); 99 | popupRect = EditorGUI.PrefixLabel(popupRect, 0, new GUIContent(labelName)); 100 | bool pressed = GUI.Button(popupRect, content, EditorStyles.popup); 101 | 102 | if (pressed) 103 | { 104 | var show = !agentMask.hasMultipleDifferentValues; 105 | var showNone = show && agentMask.arraySize == 0; 106 | var showAll = show && IsAll(agentMask); 107 | 108 | var menu = new GenericMenu(); 109 | menu.AddItem(new GUIContent("None"), showNone, SetAgentMaskNone, agentMask); 110 | menu.AddItem(new GUIContent("All"), showAll, SetAgentMaskAll, agentMask); 111 | menu.AddSeparator(""); 112 | 113 | var count = NavMesh.GetSettingsCount(); 114 | for (var i = 0; i < count; i++) 115 | { 116 | var id = NavMesh.GetSettingsByIndex(i).agentTypeID; 117 | var sname = NavMesh.GetSettingsNameFromID(id); 118 | 119 | var showSelected = show && AgentMaskHasSelectedAgentTypeID(agentMask, id); 120 | var userData = new object[] { agentMask, id, !showSelected }; 121 | menu.AddItem(new GUIContent(sname), showSelected, ToggleAgentMaskItem, userData); 122 | } 123 | 124 | menu.DropDown(popupRect); 125 | } 126 | 127 | EditorGUI.EndProperty(); 128 | } 129 | 130 | public static GameObject CreateAndSelectGameObject(string suggestedName, GameObject parent) 131 | { 132 | var parentTransform = parent != null ? parent.transform : null; 133 | var uniqueName = GameObjectUtility.GetUniqueNameForSibling(parentTransform, suggestedName); 134 | var child = new GameObject(uniqueName); 135 | 136 | Undo.RegisterCreatedObjectUndo(child, "Create " + uniqueName); 137 | if (parentTransform != null) 138 | Undo.SetTransformParent(child.transform, parentTransform, "Parent " + uniqueName); 139 | 140 | Selection.activeGameObject = child; 141 | 142 | return child; 143 | } 144 | 145 | static bool IsAll(SerializedProperty agentMask) 146 | { 147 | return agentMask.arraySize == 1 && agentMask.GetArrayElementAtIndex(0).intValue == -1; 148 | } 149 | 150 | static void ToggleAgentMaskItem(object userData) 151 | { 152 | var args = (object[])userData; 153 | var agentMask = (SerializedProperty)args[0]; 154 | var agentTypeID = (int)args[1]; 155 | var value = (bool)args[2]; 156 | 157 | ToggleAgentMaskItem(agentMask, agentTypeID, value); 158 | } 159 | 160 | static void ToggleAgentMaskItem(SerializedProperty agentMask, int agentTypeID, bool value) 161 | { 162 | if (agentMask.hasMultipleDifferentValues) 163 | { 164 | agentMask.ClearArray(); 165 | agentMask.serializedObject.ApplyModifiedProperties(); 166 | } 167 | 168 | // Find which index this agent type is in the agentMask array. 169 | int idx = -1; 170 | for (var j = 0; j < agentMask.arraySize; j++) 171 | { 172 | var elem = agentMask.GetArrayElementAtIndex(j); 173 | if (elem.intValue == agentTypeID) 174 | idx = j; 175 | } 176 | 177 | // Handle "All" special case. 178 | if (IsAll(agentMask)) 179 | { 180 | agentMask.DeleteArrayElementAtIndex(0); 181 | } 182 | 183 | // Toggle value. 184 | if (value) 185 | { 186 | if (idx == -1) 187 | { 188 | agentMask.InsertArrayElementAtIndex(agentMask.arraySize); 189 | agentMask.GetArrayElementAtIndex(agentMask.arraySize - 1).intValue = agentTypeID; 190 | } 191 | } 192 | else 193 | { 194 | if (idx != -1) 195 | { 196 | agentMask.DeleteArrayElementAtIndex(idx); 197 | } 198 | } 199 | 200 | agentMask.serializedObject.ApplyModifiedProperties(); 201 | } 202 | 203 | static void SetAgentMaskNone(object data) 204 | { 205 | var agentMask = (SerializedProperty)data; 206 | agentMask.ClearArray(); 207 | agentMask.serializedObject.ApplyModifiedProperties(); 208 | } 209 | 210 | static void SetAgentMaskAll(object data) 211 | { 212 | var agentMask = (SerializedProperty)data; 213 | agentMask.ClearArray(); 214 | agentMask.InsertArrayElementAtIndex(0); 215 | agentMask.GetArrayElementAtIndex(0).intValue = -1; 216 | agentMask.serializedObject.ApplyModifiedProperties(); 217 | } 218 | 219 | static string GetAgentMaskLabelName(SerializedProperty agentMask) 220 | { 221 | if (agentMask.arraySize == 0) 222 | return "None"; 223 | 224 | if (IsAll(agentMask)) 225 | return "All"; 226 | 227 | if (agentMask.arraySize <= 3) 228 | { 229 | var labelName = ""; 230 | for (var j = 0; j < agentMask.arraySize; j++) 231 | { 232 | var elem = agentMask.GetArrayElementAtIndex(j); 233 | var settingsName = NavMesh.GetSettingsNameFromID(elem.intValue); 234 | if (string.IsNullOrEmpty(settingsName)) 235 | continue; 236 | 237 | if (labelName.Length > 0) 238 | labelName += ", "; 239 | labelName += settingsName; 240 | } 241 | return labelName; 242 | } 243 | 244 | return "Mixed..."; 245 | } 246 | 247 | static bool AgentMaskHasSelectedAgentTypeID(SerializedProperty agentMask, int agentTypeID) 248 | { 249 | for (var j = 0; j < agentMask.arraySize; j++) 250 | { 251 | var elem = agentMask.GetArrayElementAtIndex(j); 252 | if (elem.intValue == agentTypeID) 253 | return true; 254 | } 255 | return false; 256 | } 257 | } 258 | } 259 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents/Editor/NavMeshLinkEditor.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.AI; 3 | 4 | namespace UnityEditor.AI 5 | { 6 | [CanEditMultipleObjects] 7 | [CustomEditor(typeof(NavMeshLink))] 8 | class NavMeshLinkEditor : Editor 9 | { 10 | SerializedProperty m_AgentTypeID; 11 | SerializedProperty m_Area; 12 | SerializedProperty m_CostModifier; 13 | SerializedProperty m_AutoUpdatePosition; 14 | SerializedProperty m_Bidirectional; 15 | SerializedProperty m_EndPoint; 16 | SerializedProperty m_StartPoint; 17 | SerializedProperty m_Width; 18 | 19 | static int s_SelectedID; 20 | static int s_SelectedPoint = -1; 21 | 22 | static Color s_HandleColor = new Color(255f, 167f, 39f, 210f) / 255; 23 | static Color s_HandleColorDisabled = new Color(255f * 0.75f, 167f * 0.75f, 39f * 0.75f, 100f) / 255; 24 | 25 | void OnEnable() 26 | { 27 | m_AgentTypeID = serializedObject.FindProperty("m_AgentTypeID"); 28 | m_Area = serializedObject.FindProperty("m_Area"); 29 | m_CostModifier = serializedObject.FindProperty("m_CostModifier"); 30 | m_AutoUpdatePosition = serializedObject.FindProperty("m_AutoUpdatePosition"); 31 | m_Bidirectional = serializedObject.FindProperty("m_Bidirectional"); 32 | m_EndPoint = serializedObject.FindProperty("m_EndPoint"); 33 | m_StartPoint = serializedObject.FindProperty("m_StartPoint"); 34 | m_Width = serializedObject.FindProperty("m_Width"); 35 | 36 | s_SelectedID = 0; 37 | s_SelectedPoint = -1; 38 | 39 | NavMeshVisualizationSettings.showNavigation++; 40 | } 41 | 42 | void OnDisable() 43 | { 44 | NavMeshVisualizationSettings.showNavigation--; 45 | } 46 | 47 | static Matrix4x4 UnscaledLocalToWorldMatrix(Transform t) 48 | { 49 | return Matrix4x4.TRS(t.position, t.rotation, Vector3.one); 50 | } 51 | 52 | void AlignTransformToEndPoints(NavMeshLink navLink) 53 | { 54 | var mat = UnscaledLocalToWorldMatrix(navLink.transform); 55 | 56 | var worldStartPt = mat.MultiplyPoint(navLink.startPoint); 57 | var worldEndPt = mat.MultiplyPoint(navLink.endPoint); 58 | 59 | var forward = worldEndPt - worldStartPt; 60 | var up = navLink.transform.up; 61 | 62 | // Flatten 63 | forward -= Vector3.Dot(up, forward) * up; 64 | 65 | var transform = navLink.transform; 66 | transform.rotation = Quaternion.LookRotation(forward, up); 67 | transform.position = (worldEndPt + worldStartPt) * 0.5f; 68 | transform.localScale = Vector3.one; 69 | 70 | navLink.startPoint = transform.InverseTransformPoint(worldStartPt); 71 | navLink.endPoint = transform.InverseTransformPoint(worldEndPt); 72 | } 73 | 74 | public override void OnInspectorGUI() 75 | { 76 | serializedObject.Update(); 77 | 78 | NavMeshComponentsGUIUtility.AgentTypePopup("Agent Type", m_AgentTypeID); 79 | EditorGUILayout.Space(); 80 | 81 | EditorGUILayout.PropertyField(m_StartPoint); 82 | EditorGUILayout.PropertyField(m_EndPoint); 83 | 84 | GUILayout.BeginHorizontal(); 85 | GUILayout.Space(EditorGUIUtility.labelWidth); 86 | if (GUILayout.Button("Swap")) 87 | { 88 | foreach (NavMeshLink navLink in targets) 89 | { 90 | var tmp = navLink.startPoint; 91 | navLink.startPoint = navLink.endPoint; 92 | navLink.endPoint = tmp; 93 | } 94 | SceneView.RepaintAll(); 95 | } 96 | if (GUILayout.Button("Align Transform")) 97 | { 98 | foreach (NavMeshLink navLink in targets) 99 | { 100 | Undo.RecordObject(navLink.transform, "Align Transform to End Points"); 101 | Undo.RecordObject(navLink, "Align Transform to End Points"); 102 | AlignTransformToEndPoints(navLink); 103 | } 104 | SceneView.RepaintAll(); 105 | } 106 | GUILayout.EndHorizontal(); 107 | EditorGUILayout.Space(); 108 | 109 | EditorGUILayout.PropertyField(m_Width); 110 | EditorGUILayout.PropertyField(m_CostModifier); 111 | EditorGUILayout.PropertyField(m_AutoUpdatePosition); 112 | EditorGUILayout.PropertyField(m_Bidirectional); 113 | 114 | NavMeshComponentsGUIUtility.AreaPopup("Area Type", m_Area); 115 | 116 | serializedObject.ApplyModifiedProperties(); 117 | 118 | EditorGUILayout.Space(); 119 | } 120 | 121 | static Vector3 CalcLinkRight(NavMeshLink navLink) 122 | { 123 | var dir = navLink.endPoint - navLink.startPoint; 124 | return (new Vector3(-dir.z, 0.0f, dir.x)).normalized; 125 | } 126 | 127 | static void DrawLink(NavMeshLink navLink) 128 | { 129 | var right = CalcLinkRight(navLink); 130 | var rad = navLink.width * 0.5f; 131 | 132 | Gizmos.DrawLine(navLink.startPoint - right * rad, navLink.startPoint + right * rad); 133 | Gizmos.DrawLine(navLink.endPoint - right * rad, navLink.endPoint + right * rad); 134 | Gizmos.DrawLine(navLink.startPoint - right * rad, navLink.endPoint - right * rad); 135 | Gizmos.DrawLine(navLink.startPoint + right * rad, navLink.endPoint + right * rad); 136 | } 137 | 138 | [DrawGizmo(GizmoType.Selected | GizmoType.Active | GizmoType.Pickable)] 139 | static void RenderBoxGizmo(NavMeshLink navLink, GizmoType gizmoType) 140 | { 141 | if (!EditorApplication.isPlaying) 142 | navLink.UpdateLink(); 143 | 144 | var color = s_HandleColor; 145 | if (!navLink.enabled) 146 | color = s_HandleColorDisabled; 147 | 148 | var oldColor = Gizmos.color; 149 | var oldMatrix = Gizmos.matrix; 150 | 151 | Gizmos.matrix = UnscaledLocalToWorldMatrix(navLink.transform); 152 | 153 | Gizmos.color = color; 154 | DrawLink(navLink); 155 | 156 | Gizmos.matrix = oldMatrix; 157 | Gizmos.color = oldColor; 158 | 159 | Gizmos.DrawIcon(navLink.transform.position, "NavMeshLink Icon", true); 160 | } 161 | 162 | [DrawGizmo(GizmoType.NotInSelectionHierarchy | GizmoType.Pickable)] 163 | static void RenderBoxGizmoNotSelected(NavMeshLink navLink, GizmoType gizmoType) 164 | { 165 | if (NavMeshVisualizationSettings.showNavigation > 0) 166 | { 167 | var color = s_HandleColor; 168 | if (!navLink.enabled) 169 | color = s_HandleColorDisabled; 170 | 171 | var oldColor = Gizmos.color; 172 | var oldMatrix = Gizmos.matrix; 173 | 174 | Gizmos.matrix = UnscaledLocalToWorldMatrix(navLink.transform); 175 | 176 | Gizmos.color = color; 177 | DrawLink(navLink); 178 | 179 | Gizmos.matrix = oldMatrix; 180 | Gizmos.color = oldColor; 181 | } 182 | 183 | Gizmos.DrawIcon(navLink.transform.position, "NavMeshLink Icon", true); 184 | } 185 | 186 | public void OnSceneGUI() 187 | { 188 | var navLink = (NavMeshLink)target; 189 | if (!navLink.enabled) 190 | return; 191 | 192 | var mat = UnscaledLocalToWorldMatrix(navLink.transform); 193 | 194 | var startPt = mat.MultiplyPoint(navLink.startPoint); 195 | var endPt = mat.MultiplyPoint(navLink.endPoint); 196 | var midPt = Vector3.Lerp(startPt, endPt, 0.35f); 197 | var startSize = HandleUtility.GetHandleSize(startPt); 198 | var endSize = HandleUtility.GetHandleSize(endPt); 199 | var midSize = HandleUtility.GetHandleSize(midPt); 200 | 201 | var zup = Quaternion.FromToRotation(Vector3.forward, Vector3.up); 202 | var right = mat.MultiplyVector(CalcLinkRight(navLink)); 203 | 204 | var oldColor = Handles.color; 205 | Handles.color = s_HandleColor; 206 | 207 | Vector3 pos; 208 | 209 | if (navLink.GetInstanceID() == s_SelectedID && s_SelectedPoint == 0) 210 | { 211 | EditorGUI.BeginChangeCheck(); 212 | Handles.CubeHandleCap(0, startPt, zup, 0.1f * startSize, Event.current.type); 213 | pos = Handles.PositionHandle(startPt, navLink.transform.rotation); 214 | if (EditorGUI.EndChangeCheck()) 215 | { 216 | Undo.RecordObject(navLink, "Move link point"); 217 | navLink.startPoint = mat.inverse.MultiplyPoint(pos); 218 | } 219 | } 220 | else 221 | { 222 | if (Handles.Button(startPt, zup, 0.1f * startSize, 0.1f * startSize, Handles.CubeHandleCap)) 223 | { 224 | s_SelectedPoint = 0; 225 | s_SelectedID = navLink.GetInstanceID(); 226 | } 227 | } 228 | 229 | if (navLink.GetInstanceID() == s_SelectedID && s_SelectedPoint == 1) 230 | { 231 | EditorGUI.BeginChangeCheck(); 232 | Handles.CubeHandleCap(0, endPt, zup, 0.1f * startSize, Event.current.type); 233 | pos = Handles.PositionHandle(endPt, navLink.transform.rotation); 234 | if (EditorGUI.EndChangeCheck()) 235 | { 236 | Undo.RecordObject(navLink, "Move link point"); 237 | navLink.endPoint = mat.inverse.MultiplyPoint(pos); 238 | } 239 | } 240 | else 241 | { 242 | if (Handles.Button(endPt, zup, 0.1f * endSize, 0.1f * endSize, Handles.CubeHandleCap)) 243 | { 244 | s_SelectedPoint = 1; 245 | s_SelectedID = navLink.GetInstanceID(); 246 | } 247 | } 248 | 249 | EditorGUI.BeginChangeCheck(); 250 | pos = Handles.Slider(midPt + right * navLink.width * 0.5f, right, midSize * 0.03f, Handles.DotHandleCap, 0); 251 | if (EditorGUI.EndChangeCheck()) 252 | { 253 | Undo.RecordObject(navLink, "Adjust link width"); 254 | navLink.width = Mathf.Max(0.0f, 2.0f * Vector3.Dot(right, (pos - midPt))); 255 | } 256 | 257 | EditorGUI.BeginChangeCheck(); 258 | pos = Handles.Slider(midPt - right * navLink.width * 0.5f, -right, midSize * 0.03f, Handles.DotHandleCap, 0); 259 | if (EditorGUI.EndChangeCheck()) 260 | { 261 | Undo.RecordObject(navLink, "Adjust link width"); 262 | navLink.width = Mathf.Max(0.0f, 2.0f * Vector3.Dot(-right, (pos - midPt))); 263 | } 264 | 265 | Handles.color = oldColor; 266 | } 267 | 268 | [MenuItem("GameObject/AI/NavMesh Link", false, 2002)] 269 | static public void CreateNavMeshLink(MenuCommand menuCommand) 270 | { 271 | var parent = menuCommand.context as GameObject; 272 | GameObject go = NavMeshComponentsGUIUtility.CreateAndSelectGameObject("NavMesh Link", parent); 273 | go.AddComponent(); 274 | var view = SceneView.lastActiveSceneView; 275 | if (view != null) 276 | view.MoveToView(go.transform); 277 | } 278 | } 279 | } 280 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Meshes/RedKingTower.obj: -------------------------------------------------------------------------------- 1 | # MagicaVoxel @ Ephtracy 2 | 3 | # material 4 | mtllib redtower.mtl 5 | usemtl palette 6 | 7 | # normals 8 | vn -1 0 0 9 | vn 1 0 0 10 | vn 0 0 1 11 | vn 0 0 -1 12 | vn 0 -1 0 13 | vn 0 1 0 14 | 15 | # texcoords 16 | vt 0.853516 0.5 17 | vt 0.982422 0.5 18 | 19 | # verts 20 | v -3 0 4 21 | v -3 0 -3 22 | v -3 1 4 23 | v -3 1 -3 24 | v -3 6 4 25 | v -3 6 -3 26 | v -3 7 3 27 | v -3 7 2 28 | v -3 7 1 29 | v -3 7 -0 30 | v -3 7 -1 31 | v -3 7 -2 32 | v -3 8 4 33 | v -3 8 3 34 | v -3 8 2 35 | v -3 8 1 36 | v -3 8 -0 37 | v -3 8 -1 38 | v -3 8 -2 39 | v -3 8 -3 40 | v -2 1 3 41 | v -2 1 -2 42 | v -2 6 3 43 | v -2 6 -2 44 | v -1 7 4 45 | v -1 7 3 46 | v -1 7 -2 47 | v -1 7 -3 48 | v -1 8 4 49 | v -1 8 3 50 | v -1 8 -2 51 | v -1 8 -3 52 | v 1 7 4 53 | v 1 7 3 54 | v 1 7 -2 55 | v 1 7 -3 56 | v 1 8 4 57 | v 1 8 3 58 | v 1 8 -2 59 | v 1 8 -3 60 | v 2 6 2 61 | v 2 6 -1 62 | v 2 7 2 63 | v 2 7 -1 64 | v 3 7 4 65 | v 3 7 3 66 | v 3 7 2 67 | v 3 7 1 68 | v 3 7 -0 69 | v 3 7 -1 70 | v 3 7 -2 71 | v 3 7 -3 72 | v 3 8 4 73 | v 3 8 3 74 | v 3 8 2 75 | v 3 8 1 76 | v 3 8 -0 77 | v 3 8 -1 78 | v 3 8 -2 79 | v 3 8 -3 80 | v -2 7 4 81 | v -2 7 3 82 | v -2 7 2 83 | v -2 7 1 84 | v -2 7 -0 85 | v -2 7 -1 86 | v -2 7 -2 87 | v -2 7 -3 88 | v -2 8 4 89 | v -2 8 3 90 | v -2 8 2 91 | v -2 8 1 92 | v -2 8 -0 93 | v -2 8 -1 94 | v -2 8 -2 95 | v -2 8 -3 96 | v -1 6 2 97 | v -1 6 -1 98 | v -1 7 2 99 | v -1 7 -1 100 | v 0 7 4 101 | v 0 7 3 102 | v 0 7 -2 103 | v 0 7 -3 104 | v 0 8 4 105 | v 0 8 3 106 | v 0 8 -2 107 | v 0 8 -3 108 | v 2 7 4 109 | v 2 7 3 110 | v 2 7 -2 111 | v 2 7 -3 112 | v 2 8 4 113 | v 2 8 3 114 | v 2 8 -2 115 | v 2 8 -3 116 | v 3 1 3 117 | v 3 1 -2 118 | v 3 6 3 119 | v 3 6 -2 120 | v 4 0 4 121 | v 4 0 -3 122 | v 4 1 4 123 | v 4 1 -3 124 | v 4 6 4 125 | v 4 6 -3 126 | v 4 7 3 127 | v 4 7 2 128 | v 4 7 1 129 | v 4 7 -0 130 | v 4 7 -1 131 | v 4 7 -2 132 | v 4 8 4 133 | v 4 8 3 134 | v 4 8 2 135 | v 4 8 1 136 | v 4 8 -0 137 | v 4 8 -1 138 | v 4 8 -2 139 | v 4 8 -3 140 | v -3 0 4 141 | v -3 1 4 142 | v -3 6 4 143 | v -3 8 4 144 | v -2 7 4 145 | v -2 8 4 146 | v -1 7 4 147 | v -1 8 4 148 | v 0 7 4 149 | v 0 8 4 150 | v 1 7 4 151 | v 1 8 4 152 | v 2 7 4 153 | v 2 8 4 154 | v 3 7 4 155 | v 3 8 4 156 | v 4 0 4 157 | v 4 1 4 158 | v 4 6 4 159 | v 4 8 4 160 | v -2 1 3 161 | v -2 6 3 162 | v -1 2 3 163 | v -1 5 3 164 | v 2 2 3 165 | v 2 5 3 166 | v 3 1 3 167 | v 3 6 3 168 | v -3 7 2 169 | v -3 8 2 170 | v -2 7 2 171 | v -2 8 2 172 | v 3 7 2 173 | v 3 8 2 174 | v 4 7 2 175 | v 4 8 2 176 | v -3 7 -0 177 | v -3 8 -0 178 | v -2 7 -0 179 | v -2 8 -0 180 | v 3 7 -0 181 | v 3 8 -0 182 | v 4 7 -0 183 | v 4 8 -0 184 | v -1 6 -1 185 | v -1 7 -1 186 | v 2 6 -1 187 | v 2 7 -1 188 | v -3 7 -2 189 | v -3 8 -2 190 | v -2 7 -2 191 | v -2 8 -2 192 | v -1 7 -2 193 | v -1 8 -2 194 | v 0 7 -2 195 | v 0 8 -2 196 | v 1 7 -2 197 | v 1 8 -2 198 | v 2 7 -2 199 | v 2 8 -2 200 | v 3 7 -2 201 | v 3 8 -2 202 | v 4 7 -2 203 | v 4 8 -2 204 | v -3 7 3 205 | v -3 8 3 206 | v -2 7 3 207 | v -2 8 3 208 | v -1 7 3 209 | v -1 8 3 210 | v 0 7 3 211 | v 0 8 3 212 | v 1 7 3 213 | v 1 8 3 214 | v 2 7 3 215 | v 2 8 3 216 | v 3 7 3 217 | v 3 8 3 218 | v 4 7 3 219 | v 4 8 3 220 | v -1 6 2 221 | v -1 7 2 222 | v 2 6 2 223 | v 2 7 2 224 | v -3 7 1 225 | v -3 8 1 226 | v -2 7 1 227 | v -2 8 1 228 | v 3 7 1 229 | v 3 8 1 230 | v 4 7 1 231 | v 4 8 1 232 | v -3 7 -1 233 | v -3 8 -1 234 | v -2 7 -1 235 | v -2 8 -1 236 | v 3 7 -1 237 | v 3 8 -1 238 | v 4 7 -1 239 | v 4 8 -1 240 | v -2 1 -2 241 | v -2 6 -2 242 | v 3 1 -2 243 | v 3 6 -2 244 | v -3 0 -3 245 | v -3 1 -3 246 | v -3 6 -3 247 | v -3 8 -3 248 | v -2 7 -3 249 | v -2 8 -3 250 | v -1 7 -3 251 | v -1 8 -3 252 | v 0 7 -3 253 | v 0 8 -3 254 | v 1 7 -3 255 | v 1 8 -3 256 | v 2 7 -3 257 | v 2 8 -3 258 | v 3 7 -3 259 | v 3 8 -3 260 | v 4 0 -3 261 | v 4 1 -3 262 | v 4 6 -3 263 | v 4 8 -3 264 | v -3 0 4 265 | v 4 0 4 266 | v -3 0 -3 267 | v 4 0 -3 268 | v -3 6 4 269 | v 4 6 4 270 | v -2 6 3 271 | v 3 6 3 272 | v -2 6 -2 273 | v 3 6 -2 274 | v -3 6 -3 275 | v 4 6 -3 276 | v -3 1 4 277 | v 4 1 4 278 | v -2 1 3 279 | v 3 1 3 280 | v -2 1 -2 281 | v 3 1 -2 282 | v -3 1 -3 283 | v 4 1 -3 284 | v -1 6 2 285 | v 2 6 2 286 | v -1 6 -1 287 | v 2 6 -1 288 | v -2 7 4 289 | v -1 7 4 290 | v 0 7 4 291 | v 1 7 4 292 | v 2 7 4 293 | v 3 7 4 294 | v -3 7 3 295 | v -2 7 3 296 | v -1 7 3 297 | v 0 7 3 298 | v 1 7 3 299 | v 2 7 3 300 | v 3 7 3 301 | v 4 7 3 302 | v -3 7 2 303 | v -2 7 2 304 | v -1 7 2 305 | v 2 7 2 306 | v 3 7 2 307 | v 4 7 2 308 | v -3 7 1 309 | v -2 7 1 310 | v 3 7 1 311 | v 4 7 1 312 | v -3 7 -0 313 | v -2 7 -0 314 | v 3 7 -0 315 | v 4 7 -0 316 | v -3 7 -1 317 | v -2 7 -1 318 | v -1 7 -1 319 | v 2 7 -1 320 | v 3 7 -1 321 | v 4 7 -1 322 | v -3 7 -2 323 | v -2 7 -2 324 | v -1 7 -2 325 | v 0 7 -2 326 | v 1 7 -2 327 | v 2 7 -2 328 | v 3 7 -2 329 | v 4 7 -2 330 | v -2 7 -3 331 | v -1 7 -3 332 | v 0 7 -3 333 | v 1 7 -3 334 | v 2 7 -3 335 | v 3 7 -3 336 | v -3 8 4 337 | v -2 8 4 338 | v -1 8 4 339 | v 0 8 4 340 | v 1 8 4 341 | v 2 8 4 342 | v 3 8 4 343 | v 4 8 4 344 | v -3 8 3 345 | v -2 8 3 346 | v -1 8 3 347 | v 0 8 3 348 | v 1 8 3 349 | v 2 8 3 350 | v 3 8 3 351 | v 4 8 3 352 | v -3 8 2 353 | v -2 8 2 354 | v 3 8 2 355 | v 4 8 2 356 | v -3 8 1 357 | v -2 8 1 358 | v 3 8 1 359 | v 4 8 1 360 | v -3 8 -0 361 | v -2 8 -0 362 | v 3 8 -0 363 | v 4 8 -0 364 | v -3 8 -1 365 | v -2 8 -1 366 | v 3 8 -1 367 | v 4 8 -1 368 | v -3 8 -2 369 | v -2 8 -2 370 | v -1 8 -2 371 | v 0 8 -2 372 | v 1 8 -2 373 | v 2 8 -2 374 | v 3 8 -2 375 | v 4 8 -2 376 | v -3 8 -3 377 | v -2 8 -3 378 | v -1 8 -3 379 | v 0 8 -3 380 | v 1 8 -3 381 | v 2 8 -3 382 | v 3 8 -3 383 | v 4 8 -3 384 | 385 | # faces 386 | f 3/2/1 2/2/1 1/2/1 387 | f 4/2/1 2/2/1 3/2/1 388 | f 7/2/1 6/2/1 5/2/1 389 | f 8/2/1 6/2/1 7/2/1 390 | f 9/2/1 6/2/1 8/2/1 391 | f 10/2/1 6/2/1 9/2/1 392 | f 11/2/1 6/2/1 10/2/1 393 | f 12/2/1 6/2/1 11/2/1 394 | f 13/2/1 7/2/1 5/2/1 395 | f 14/2/1 7/2/1 13/2/1 396 | f 15/2/1 9/2/1 8/2/1 397 | f 16/2/1 9/2/1 15/2/1 398 | f 17/2/1 11/2/1 10/2/1 399 | f 18/2/1 11/2/1 17/2/1 400 | f 19/2/1 6/2/1 12/2/1 401 | f 20/2/1 6/2/1 19/2/1 402 | f 23/2/1 22/2/1 21/2/1 403 | f 24/2/1 22/2/1 23/2/1 404 | f 29/2/1 26/2/1 25/2/1 405 | f 30/2/1 26/2/1 29/2/1 406 | f 31/2/1 28/2/1 27/2/1 407 | f 32/2/1 28/2/1 31/2/1 408 | f 37/2/1 34/2/1 33/2/1 409 | f 38/2/1 34/2/1 37/2/1 410 | f 39/2/1 36/2/1 35/2/1 411 | f 40/2/1 36/2/1 39/2/1 412 | f 43/2/1 42/2/1 41/2/1 413 | f 44/2/1 42/2/1 43/2/1 414 | f 53/2/1 46/2/1 45/2/1 415 | f 54/2/1 46/2/1 53/2/1 416 | f 55/2/1 48/2/1 47/2/1 417 | f 56/2/1 48/2/1 55/2/1 418 | f 57/2/1 50/2/1 49/2/1 419 | f 58/2/1 50/2/1 57/2/1 420 | f 59/2/1 52/2/1 51/2/1 421 | f 60/2/1 52/2/1 59/2/1 422 | f 61/2/2 62/2/2 69/2/2 423 | f 69/2/2 62/2/2 70/2/2 424 | f 63/2/2 64/2/2 71/2/2 425 | f 71/2/2 64/2/2 72/2/2 426 | f 65/2/2 66/2/2 73/2/2 427 | f 73/2/2 66/2/2 74/2/2 428 | f 67/2/2 68/2/2 75/2/2 429 | f 75/2/2 68/2/2 76/2/2 430 | f 77/2/2 78/2/2 79/2/2 431 | f 79/2/2 78/2/2 80/2/2 432 | f 81/2/2 82/2/2 85/2/2 433 | f 85/2/2 82/2/2 86/2/2 434 | f 83/2/2 84/2/2 87/2/2 435 | f 87/2/2 84/2/2 88/2/2 436 | f 89/2/2 90/2/2 93/2/2 437 | f 93/2/2 90/2/2 94/2/2 438 | f 91/2/2 92/2/2 95/2/2 439 | f 95/2/2 92/2/2 96/2/2 440 | f 97/2/2 98/2/2 99/2/2 441 | f 99/2/2 98/2/2 100/2/2 442 | f 101/2/2 102/2/2 103/2/2 443 | f 103/2/2 102/2/2 104/2/2 444 | f 105/2/2 106/2/2 107/2/2 445 | f 107/2/2 106/2/2 108/2/2 446 | f 108/2/2 106/2/2 109/2/2 447 | f 109/2/2 106/2/2 110/2/2 448 | f 110/2/2 106/2/2 111/2/2 449 | f 111/2/2 106/2/2 112/2/2 450 | f 105/2/2 107/2/2 113/2/2 451 | f 113/2/2 107/2/2 114/2/2 452 | f 108/2/2 109/2/2 115/2/2 453 | f 115/2/2 109/2/2 116/2/2 454 | f 110/2/2 111/2/2 117/2/2 455 | f 117/2/2 111/2/2 118/2/2 456 | f 112/2/2 106/2/2 119/2/2 457 | f 119/2/2 106/2/2 120/2/2 458 | f 125/2/3 124/2/3 123/2/3 459 | f 126/2/3 124/2/3 125/2/3 460 | f 127/2/3 125/2/3 123/2/3 461 | f 129/2/3 127/2/3 123/2/3 462 | f 129/2/3 128/2/3 127/2/3 463 | f 130/2/3 128/2/3 129/2/3 464 | f 131/2/3 129/2/3 123/2/3 465 | f 133/2/3 131/2/3 123/2/3 466 | f 133/2/3 132/2/3 131/2/3 467 | f 134/2/3 132/2/3 133/2/3 468 | f 135/2/3 133/2/3 123/2/3 469 | f 137/2/3 122/2/3 121/2/3 470 | f 138/2/3 122/2/3 137/2/3 471 | f 139/2/3 136/2/3 135/2/3 472 | f 139/2/3 135/2/3 123/2/3 473 | f 140/2/3 136/2/3 139/2/3 474 | f 143/2/3 142/2/3 141/2/3 475 | f 144/2/3 142/2/3 143/2/3 476 | f 145/2/3 143/2/3 141/2/3 477 | f 145/1/3 144/1/3 143/1/3 478 | f 146/2/3 142/2/3 144/2/3 479 | f 146/1/3 144/1/3 145/1/3 480 | f 147/2/3 145/2/3 141/2/3 481 | f 147/2/3 146/2/3 145/2/3 482 | f 148/2/3 142/2/3 146/2/3 483 | f 148/2/3 146/2/3 147/2/3 484 | f 151/2/3 150/2/3 149/2/3 485 | f 152/2/3 150/2/3 151/2/3 486 | f 155/2/3 154/2/3 153/2/3 487 | f 156/2/3 154/2/3 155/2/3 488 | f 159/2/3 158/2/3 157/2/3 489 | f 160/2/3 158/2/3 159/2/3 490 | f 163/2/3 162/2/3 161/2/3 491 | f 164/2/3 162/2/3 163/2/3 492 | f 167/2/3 166/2/3 165/2/3 493 | f 168/2/3 166/2/3 167/2/3 494 | f 171/2/3 170/2/3 169/2/3 495 | f 172/2/3 170/2/3 171/2/3 496 | f 175/2/3 174/2/3 173/2/3 497 | f 176/2/3 174/2/3 175/2/3 498 | f 179/2/3 178/2/3 177/2/3 499 | f 180/2/3 178/2/3 179/2/3 500 | f 183/2/3 182/2/3 181/2/3 501 | f 184/2/3 182/2/3 183/2/3 502 | f 185/2/4 186/2/4 187/2/4 503 | f 187/2/4 186/2/4 188/2/4 504 | f 189/2/4 190/2/4 191/2/4 505 | f 191/2/4 190/2/4 192/2/4 506 | f 193/2/4 194/2/4 195/2/4 507 | f 195/2/4 194/2/4 196/2/4 508 | f 197/2/4 198/2/4 199/2/4 509 | f 199/2/4 198/2/4 200/2/4 510 | f 201/2/4 202/2/4 203/2/4 511 | f 203/2/4 202/2/4 204/2/4 512 | f 205/2/4 206/2/4 207/2/4 513 | f 207/2/4 206/2/4 208/2/4 514 | f 209/2/4 210/2/4 211/2/4 515 | f 211/2/4 210/2/4 212/2/4 516 | f 213/2/4 214/2/4 215/2/4 517 | f 215/2/4 214/2/4 216/2/4 518 | f 217/2/4 218/2/4 219/2/4 519 | f 219/2/4 218/2/4 220/2/4 520 | f 221/2/4 222/2/4 223/2/4 521 | f 223/2/4 222/2/4 224/2/4 522 | f 227/2/4 228/2/4 229/2/4 523 | f 229/2/4 228/2/4 230/2/4 524 | f 227/2/4 229/2/4 231/2/4 525 | f 227/2/4 231/2/4 233/2/4 526 | f 231/2/4 232/2/4 233/2/4 527 | f 233/2/4 232/2/4 234/2/4 528 | f 227/2/4 233/2/4 235/2/4 529 | f 227/2/4 235/2/4 237/2/4 530 | f 235/2/4 236/2/4 237/2/4 531 | f 237/2/4 236/2/4 238/2/4 532 | f 227/2/4 237/2/4 239/2/4 533 | f 225/2/4 226/2/4 241/2/4 534 | f 241/2/4 226/2/4 242/2/4 535 | f 239/2/4 240/2/4 243/2/4 536 | f 227/2/4 239/2/4 243/2/4 537 | f 243/2/4 240/2/4 244/2/4 538 | f 247/2/5 246/2/5 245/2/5 539 | f 248/2/5 246/2/5 247/2/5 540 | f 251/2/5 250/2/5 249/2/5 541 | f 252/2/5 250/2/5 251/2/5 542 | f 253/2/5 251/2/5 249/2/5 543 | f 254/2/5 250/2/5 252/2/5 544 | f 255/2/5 253/2/5 249/2/5 545 | f 255/2/5 254/2/5 253/2/5 546 | f 256/2/5 250/2/5 254/2/5 547 | f 256/2/5 254/2/5 255/2/5 548 | f 257/2/6 258/2/6 259/2/6 549 | f 259/2/6 258/2/6 260/2/6 550 | f 257/2/6 259/2/6 261/2/6 551 | f 260/2/6 258/2/6 262/2/6 552 | f 257/2/6 261/2/6 263/2/6 553 | f 261/2/6 262/2/6 263/2/6 554 | f 262/2/6 258/2/6 264/2/6 555 | f 263/2/6 262/2/6 264/2/6 556 | f 265/2/6 266/2/6 267/2/6 557 | f 267/2/6 266/2/6 268/2/6 558 | f 269/2/6 270/2/6 276/2/6 559 | f 276/2/6 270/2/6 277/2/6 560 | f 271/2/6 272/2/6 278/2/6 561 | f 278/2/6 272/2/6 279/2/6 562 | f 273/2/6 274/2/6 280/2/6 563 | f 280/2/6 274/2/6 281/2/6 564 | f 278/2/6 279/2/6 283/2/6 565 | f 281/2/6 282/2/6 283/2/6 566 | f 280/2/6 281/2/6 283/2/6 567 | f 279/2/6 280/2/6 283/2/6 568 | f 276/2/6 277/2/6 283/2/6 569 | f 277/2/6 278/2/6 283/2/6 570 | f 275/2/6 276/2/6 283/2/6 571 | f 283/2/6 282/2/6 284/2/6 572 | f 284/2/6 282/2/6 285/2/6 573 | f 285/2/6 282/2/6 286/2/6 574 | f 286/2/6 282/2/6 287/2/6 575 | f 287/2/6 282/2/6 288/2/6 576 | f 284/2/6 285/2/6 290/2/6 577 | f 286/2/6 287/2/6 291/2/6 578 | f 289/2/6 290/2/6 293/2/6 579 | f 290/2/6 285/2/6 294/2/6 580 | f 293/2/6 290/2/6 294/2/6 581 | f 291/2/6 292/2/6 295/2/6 582 | f 286/2/6 291/2/6 295/2/6 583 | f 295/2/6 292/2/6 296/2/6 584 | f 294/2/6 285/2/6 298/2/6 585 | f 298/2/6 285/2/6 299/2/6 586 | f 286/2/6 295/2/6 300/2/6 587 | f 300/2/6 295/2/6 301/2/6 588 | f 298/2/6 299/2/6 303/2/6 589 | f 301/2/6 302/2/6 303/2/6 590 | f 300/2/6 301/2/6 303/2/6 591 | f 299/2/6 300/2/6 303/2/6 592 | f 297/2/6 298/2/6 303/2/6 593 | f 303/2/6 302/2/6 304/2/6 594 | f 304/2/6 302/2/6 305/2/6 595 | f 305/2/6 302/2/6 306/2/6 596 | f 306/2/6 302/2/6 307/2/6 597 | f 307/2/6 302/2/6 308/2/6 598 | f 308/2/6 302/2/6 309/2/6 599 | f 309/2/6 302/2/6 310/2/6 600 | f 304/2/6 305/2/6 311/2/6 601 | f 311/2/6 305/2/6 312/2/6 602 | f 306/2/6 307/2/6 313/2/6 603 | f 313/2/6 307/2/6 314/2/6 604 | f 308/2/6 309/2/6 315/2/6 605 | f 315/2/6 309/2/6 316/2/6 606 | f 317/2/6 318/2/6 325/2/6 607 | f 325/2/6 318/2/6 326/2/6 608 | f 319/2/6 320/2/6 327/2/6 609 | f 327/2/6 320/2/6 328/2/6 610 | f 321/2/6 322/2/6 329/2/6 611 | f 329/2/6 322/2/6 330/2/6 612 | f 323/2/6 324/2/6 331/2/6 613 | f 331/2/6 324/2/6 332/2/6 614 | f 333/2/6 334/2/6 337/2/6 615 | f 337/2/6 334/2/6 338/2/6 616 | f 335/2/6 336/2/6 339/2/6 617 | f 339/2/6 336/2/6 340/2/6 618 | f 341/2/6 342/2/6 345/2/6 619 | f 345/2/6 342/2/6 346/2/6 620 | f 343/2/6 344/2/6 347/2/6 621 | f 347/2/6 344/2/6 348/2/6 622 | f 349/2/6 350/2/6 357/2/6 623 | f 357/2/6 350/2/6 358/2/6 624 | f 351/2/6 352/2/6 359/2/6 625 | f 359/2/6 352/2/6 360/2/6 626 | f 353/2/6 354/2/6 361/2/6 627 | f 361/2/6 354/2/6 362/2/6 628 | f 355/2/6 356/2/6 363/2/6 629 | f 363/2/6 356/2/6 364/2/6 630 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Meshes/BlueKingTower.obj: -------------------------------------------------------------------------------- 1 | # MagicaVoxel @ Ephtracy 2 | 3 | # material 4 | mtllib bluetower.mtl 5 | usemtl palette 6 | 7 | # normals 8 | vn -1 0 0 9 | vn 1 0 0 10 | vn 0 0 1 11 | vn 0 0 -1 12 | vn 0 -1 0 13 | vn 0 1 0 14 | 15 | # texcoords 16 | vt 0.939453 0.5 17 | vt 0.982422 0.5 18 | 19 | # verts 20 | v -3 0 4 21 | v -3 0 -3 22 | v -3 1 4 23 | v -3 1 -3 24 | v -3 6 4 25 | v -3 6 -3 26 | v -3 7 3 27 | v -3 7 2 28 | v -3 7 1 29 | v -3 7 -0 30 | v -3 7 -1 31 | v -3 7 -2 32 | v -3 8 4 33 | v -3 8 3 34 | v -3 8 2 35 | v -3 8 1 36 | v -3 8 -0 37 | v -3 8 -1 38 | v -3 8 -2 39 | v -3 8 -3 40 | v -2 1 3 41 | v -2 1 -2 42 | v -2 6 3 43 | v -2 6 -2 44 | v -1 7 4 45 | v -1 7 3 46 | v -1 7 -2 47 | v -1 7 -3 48 | v -1 8 4 49 | v -1 8 3 50 | v -1 8 -2 51 | v -1 8 -3 52 | v 1 7 4 53 | v 1 7 3 54 | v 1 7 -2 55 | v 1 7 -3 56 | v 1 8 4 57 | v 1 8 3 58 | v 1 8 -2 59 | v 1 8 -3 60 | v 2 6 2 61 | v 2 6 -1 62 | v 2 7 2 63 | v 2 7 -1 64 | v 3 7 4 65 | v 3 7 3 66 | v 3 7 2 67 | v 3 7 1 68 | v 3 7 -0 69 | v 3 7 -1 70 | v 3 7 -2 71 | v 3 7 -3 72 | v 3 8 4 73 | v 3 8 3 74 | v 3 8 2 75 | v 3 8 1 76 | v 3 8 -0 77 | v 3 8 -1 78 | v 3 8 -2 79 | v 3 8 -3 80 | v -2 7 4 81 | v -2 7 3 82 | v -2 7 2 83 | v -2 7 1 84 | v -2 7 -0 85 | v -2 7 -1 86 | v -2 7 -2 87 | v -2 7 -3 88 | v -2 8 4 89 | v -2 8 3 90 | v -2 8 2 91 | v -2 8 1 92 | v -2 8 -0 93 | v -2 8 -1 94 | v -2 8 -2 95 | v -2 8 -3 96 | v -1 6 2 97 | v -1 6 -1 98 | v -1 7 2 99 | v -1 7 -1 100 | v 0 7 4 101 | v 0 7 3 102 | v 0 7 -2 103 | v 0 7 -3 104 | v 0 8 4 105 | v 0 8 3 106 | v 0 8 -2 107 | v 0 8 -3 108 | v 2 7 4 109 | v 2 7 3 110 | v 2 7 -2 111 | v 2 7 -3 112 | v 2 8 4 113 | v 2 8 3 114 | v 2 8 -2 115 | v 2 8 -3 116 | v 3 1 3 117 | v 3 1 -2 118 | v 3 6 3 119 | v 3 6 -2 120 | v 4 0 4 121 | v 4 0 -3 122 | v 4 1 4 123 | v 4 1 -3 124 | v 4 6 4 125 | v 4 6 -3 126 | v 4 7 3 127 | v 4 7 2 128 | v 4 7 1 129 | v 4 7 -0 130 | v 4 7 -1 131 | v 4 7 -2 132 | v 4 8 4 133 | v 4 8 3 134 | v 4 8 2 135 | v 4 8 1 136 | v 4 8 -0 137 | v 4 8 -1 138 | v 4 8 -2 139 | v 4 8 -3 140 | v -3 0 4 141 | v -3 1 4 142 | v -3 6 4 143 | v -3 8 4 144 | v -2 7 4 145 | v -2 8 4 146 | v -1 7 4 147 | v -1 8 4 148 | v 0 7 4 149 | v 0 8 4 150 | v 1 7 4 151 | v 1 8 4 152 | v 2 7 4 153 | v 2 8 4 154 | v 3 7 4 155 | v 3 8 4 156 | v 4 0 4 157 | v 4 1 4 158 | v 4 6 4 159 | v 4 8 4 160 | v -2 1 3 161 | v -2 6 3 162 | v -1 2 3 163 | v -1 5 3 164 | v 2 2 3 165 | v 2 5 3 166 | v 3 1 3 167 | v 3 6 3 168 | v -3 7 2 169 | v -3 8 2 170 | v -2 7 2 171 | v -2 8 2 172 | v 3 7 2 173 | v 3 8 2 174 | v 4 7 2 175 | v 4 8 2 176 | v -3 7 -0 177 | v -3 8 -0 178 | v -2 7 -0 179 | v -2 8 -0 180 | v 3 7 -0 181 | v 3 8 -0 182 | v 4 7 -0 183 | v 4 8 -0 184 | v -1 6 -1 185 | v -1 7 -1 186 | v 2 6 -1 187 | v 2 7 -1 188 | v -3 7 -2 189 | v -3 8 -2 190 | v -2 7 -2 191 | v -2 8 -2 192 | v -1 7 -2 193 | v -1 8 -2 194 | v 0 7 -2 195 | v 0 8 -2 196 | v 1 7 -2 197 | v 1 8 -2 198 | v 2 7 -2 199 | v 2 8 -2 200 | v 3 7 -2 201 | v 3 8 -2 202 | v 4 7 -2 203 | v 4 8 -2 204 | v -3 7 3 205 | v -3 8 3 206 | v -2 7 3 207 | v -2 8 3 208 | v -1 7 3 209 | v -1 8 3 210 | v 0 7 3 211 | v 0 8 3 212 | v 1 7 3 213 | v 1 8 3 214 | v 2 7 3 215 | v 2 8 3 216 | v 3 7 3 217 | v 3 8 3 218 | v 4 7 3 219 | v 4 8 3 220 | v -1 6 2 221 | v -1 7 2 222 | v 2 6 2 223 | v 2 7 2 224 | v -3 7 1 225 | v -3 8 1 226 | v -2 7 1 227 | v -2 8 1 228 | v 3 7 1 229 | v 3 8 1 230 | v 4 7 1 231 | v 4 8 1 232 | v -3 7 -1 233 | v -3 8 -1 234 | v -2 7 -1 235 | v -2 8 -1 236 | v 3 7 -1 237 | v 3 8 -1 238 | v 4 7 -1 239 | v 4 8 -1 240 | v -2 1 -2 241 | v -2 6 -2 242 | v 3 1 -2 243 | v 3 6 -2 244 | v -3 0 -3 245 | v -3 1 -3 246 | v -3 6 -3 247 | v -3 8 -3 248 | v -2 7 -3 249 | v -2 8 -3 250 | v -1 7 -3 251 | v -1 8 -3 252 | v 0 7 -3 253 | v 0 8 -3 254 | v 1 7 -3 255 | v 1 8 -3 256 | v 2 7 -3 257 | v 2 8 -3 258 | v 3 7 -3 259 | v 3 8 -3 260 | v 4 0 -3 261 | v 4 1 -3 262 | v 4 6 -3 263 | v 4 8 -3 264 | v -3 0 4 265 | v 4 0 4 266 | v -3 0 -3 267 | v 4 0 -3 268 | v -3 6 4 269 | v 4 6 4 270 | v -2 6 3 271 | v 3 6 3 272 | v -2 6 -2 273 | v 3 6 -2 274 | v -3 6 -3 275 | v 4 6 -3 276 | v -3 1 4 277 | v 4 1 4 278 | v -2 1 3 279 | v 3 1 3 280 | v -2 1 -2 281 | v 3 1 -2 282 | v -3 1 -3 283 | v 4 1 -3 284 | v -1 6 2 285 | v 2 6 2 286 | v -1 6 -1 287 | v 2 6 -1 288 | v -2 7 4 289 | v -1 7 4 290 | v 0 7 4 291 | v 1 7 4 292 | v 2 7 4 293 | v 3 7 4 294 | v -3 7 3 295 | v -2 7 3 296 | v -1 7 3 297 | v 0 7 3 298 | v 1 7 3 299 | v 2 7 3 300 | v 3 7 3 301 | v 4 7 3 302 | v -3 7 2 303 | v -2 7 2 304 | v -1 7 2 305 | v 2 7 2 306 | v 3 7 2 307 | v 4 7 2 308 | v -3 7 1 309 | v -2 7 1 310 | v 3 7 1 311 | v 4 7 1 312 | v -3 7 -0 313 | v -2 7 -0 314 | v 3 7 -0 315 | v 4 7 -0 316 | v -3 7 -1 317 | v -2 7 -1 318 | v -1 7 -1 319 | v 2 7 -1 320 | v 3 7 -1 321 | v 4 7 -1 322 | v -3 7 -2 323 | v -2 7 -2 324 | v -1 7 -2 325 | v 0 7 -2 326 | v 1 7 -2 327 | v 2 7 -2 328 | v 3 7 -2 329 | v 4 7 -2 330 | v -2 7 -3 331 | v -1 7 -3 332 | v 0 7 -3 333 | v 1 7 -3 334 | v 2 7 -3 335 | v 3 7 -3 336 | v -3 8 4 337 | v -2 8 4 338 | v -1 8 4 339 | v 0 8 4 340 | v 1 8 4 341 | v 2 8 4 342 | v 3 8 4 343 | v 4 8 4 344 | v -3 8 3 345 | v -2 8 3 346 | v -1 8 3 347 | v 0 8 3 348 | v 1 8 3 349 | v 2 8 3 350 | v 3 8 3 351 | v 4 8 3 352 | v -3 8 2 353 | v -2 8 2 354 | v 3 8 2 355 | v 4 8 2 356 | v -3 8 1 357 | v -2 8 1 358 | v 3 8 1 359 | v 4 8 1 360 | v -3 8 -0 361 | v -2 8 -0 362 | v 3 8 -0 363 | v 4 8 -0 364 | v -3 8 -1 365 | v -2 8 -1 366 | v 3 8 -1 367 | v 4 8 -1 368 | v -3 8 -2 369 | v -2 8 -2 370 | v -1 8 -2 371 | v 0 8 -2 372 | v 1 8 -2 373 | v 2 8 -2 374 | v 3 8 -2 375 | v 4 8 -2 376 | v -3 8 -3 377 | v -2 8 -3 378 | v -1 8 -3 379 | v 0 8 -3 380 | v 1 8 -3 381 | v 2 8 -3 382 | v 3 8 -3 383 | v 4 8 -3 384 | 385 | # faces 386 | f 3/2/1 2/2/1 1/2/1 387 | f 4/2/1 2/2/1 3/2/1 388 | f 7/2/1 6/2/1 5/2/1 389 | f 8/2/1 6/2/1 7/2/1 390 | f 9/2/1 6/2/1 8/2/1 391 | f 10/2/1 6/2/1 9/2/1 392 | f 11/2/1 6/2/1 10/2/1 393 | f 12/2/1 6/2/1 11/2/1 394 | f 13/2/1 7/2/1 5/2/1 395 | f 14/2/1 7/2/1 13/2/1 396 | f 15/2/1 9/2/1 8/2/1 397 | f 16/2/1 9/2/1 15/2/1 398 | f 17/2/1 11/2/1 10/2/1 399 | f 18/2/1 11/2/1 17/2/1 400 | f 19/2/1 6/2/1 12/2/1 401 | f 20/2/1 6/2/1 19/2/1 402 | f 23/2/1 22/2/1 21/2/1 403 | f 24/2/1 22/2/1 23/2/1 404 | f 29/2/1 26/2/1 25/2/1 405 | f 30/2/1 26/2/1 29/2/1 406 | f 31/2/1 28/2/1 27/2/1 407 | f 32/2/1 28/2/1 31/2/1 408 | f 37/2/1 34/2/1 33/2/1 409 | f 38/2/1 34/2/1 37/2/1 410 | f 39/2/1 36/2/1 35/2/1 411 | f 40/2/1 36/2/1 39/2/1 412 | f 43/2/1 42/2/1 41/2/1 413 | f 44/2/1 42/2/1 43/2/1 414 | f 53/2/1 46/2/1 45/2/1 415 | f 54/2/1 46/2/1 53/2/1 416 | f 55/2/1 48/2/1 47/2/1 417 | f 56/2/1 48/2/1 55/2/1 418 | f 57/2/1 50/2/1 49/2/1 419 | f 58/2/1 50/2/1 57/2/1 420 | f 59/2/1 52/2/1 51/2/1 421 | f 60/2/1 52/2/1 59/2/1 422 | f 61/2/2 62/2/2 69/2/2 423 | f 69/2/2 62/2/2 70/2/2 424 | f 63/2/2 64/2/2 71/2/2 425 | f 71/2/2 64/2/2 72/2/2 426 | f 65/2/2 66/2/2 73/2/2 427 | f 73/2/2 66/2/2 74/2/2 428 | f 67/2/2 68/2/2 75/2/2 429 | f 75/2/2 68/2/2 76/2/2 430 | f 77/2/2 78/2/2 79/2/2 431 | f 79/2/2 78/2/2 80/2/2 432 | f 81/2/2 82/2/2 85/2/2 433 | f 85/2/2 82/2/2 86/2/2 434 | f 83/2/2 84/2/2 87/2/2 435 | f 87/2/2 84/2/2 88/2/2 436 | f 89/2/2 90/2/2 93/2/2 437 | f 93/2/2 90/2/2 94/2/2 438 | f 91/2/2 92/2/2 95/2/2 439 | f 95/2/2 92/2/2 96/2/2 440 | f 97/2/2 98/2/2 99/2/2 441 | f 99/2/2 98/2/2 100/2/2 442 | f 101/2/2 102/2/2 103/2/2 443 | f 103/2/2 102/2/2 104/2/2 444 | f 105/2/2 106/2/2 107/2/2 445 | f 107/2/2 106/2/2 108/2/2 446 | f 108/2/2 106/2/2 109/2/2 447 | f 109/2/2 106/2/2 110/2/2 448 | f 110/2/2 106/2/2 111/2/2 449 | f 111/2/2 106/2/2 112/2/2 450 | f 105/2/2 107/2/2 113/2/2 451 | f 113/2/2 107/2/2 114/2/2 452 | f 108/2/2 109/2/2 115/2/2 453 | f 115/2/2 109/2/2 116/2/2 454 | f 110/2/2 111/2/2 117/2/2 455 | f 117/2/2 111/2/2 118/2/2 456 | f 112/2/2 106/2/2 119/2/2 457 | f 119/2/2 106/2/2 120/2/2 458 | f 125/2/3 124/2/3 123/2/3 459 | f 126/2/3 124/2/3 125/2/3 460 | f 127/2/3 125/2/3 123/2/3 461 | f 129/2/3 127/2/3 123/2/3 462 | f 129/2/3 128/2/3 127/2/3 463 | f 130/2/3 128/2/3 129/2/3 464 | f 131/2/3 129/2/3 123/2/3 465 | f 133/2/3 131/2/3 123/2/3 466 | f 133/2/3 132/2/3 131/2/3 467 | f 134/2/3 132/2/3 133/2/3 468 | f 135/2/3 133/2/3 123/2/3 469 | f 137/2/3 122/2/3 121/2/3 470 | f 138/2/3 122/2/3 137/2/3 471 | f 139/2/3 136/2/3 135/2/3 472 | f 139/2/3 135/2/3 123/2/3 473 | f 140/2/3 136/2/3 139/2/3 474 | f 143/2/3 142/2/3 141/2/3 475 | f 144/2/3 142/2/3 143/2/3 476 | f 145/2/3 143/2/3 141/2/3 477 | f 145/1/3 144/1/3 143/1/3 478 | f 146/2/3 142/2/3 144/2/3 479 | f 146/1/3 144/1/3 145/1/3 480 | f 147/2/3 145/2/3 141/2/3 481 | f 147/2/3 146/2/3 145/2/3 482 | f 148/2/3 142/2/3 146/2/3 483 | f 148/2/3 146/2/3 147/2/3 484 | f 151/2/3 150/2/3 149/2/3 485 | f 152/2/3 150/2/3 151/2/3 486 | f 155/2/3 154/2/3 153/2/3 487 | f 156/2/3 154/2/3 155/2/3 488 | f 159/2/3 158/2/3 157/2/3 489 | f 160/2/3 158/2/3 159/2/3 490 | f 163/2/3 162/2/3 161/2/3 491 | f 164/2/3 162/2/3 163/2/3 492 | f 167/2/3 166/2/3 165/2/3 493 | f 168/2/3 166/2/3 167/2/3 494 | f 171/2/3 170/2/3 169/2/3 495 | f 172/2/3 170/2/3 171/2/3 496 | f 175/2/3 174/2/3 173/2/3 497 | f 176/2/3 174/2/3 175/2/3 498 | f 179/2/3 178/2/3 177/2/3 499 | f 180/2/3 178/2/3 179/2/3 500 | f 183/2/3 182/2/3 181/2/3 501 | f 184/2/3 182/2/3 183/2/3 502 | f 185/2/4 186/2/4 187/2/4 503 | f 187/2/4 186/2/4 188/2/4 504 | f 189/2/4 190/2/4 191/2/4 505 | f 191/2/4 190/2/4 192/2/4 506 | f 193/2/4 194/2/4 195/2/4 507 | f 195/2/4 194/2/4 196/2/4 508 | f 197/2/4 198/2/4 199/2/4 509 | f 199/2/4 198/2/4 200/2/4 510 | f 201/2/4 202/2/4 203/2/4 511 | f 203/2/4 202/2/4 204/2/4 512 | f 205/2/4 206/2/4 207/2/4 513 | f 207/2/4 206/2/4 208/2/4 514 | f 209/2/4 210/2/4 211/2/4 515 | f 211/2/4 210/2/4 212/2/4 516 | f 213/2/4 214/2/4 215/2/4 517 | f 215/2/4 214/2/4 216/2/4 518 | f 217/2/4 218/2/4 219/2/4 519 | f 219/2/4 218/2/4 220/2/4 520 | f 221/2/4 222/2/4 223/2/4 521 | f 223/2/4 222/2/4 224/2/4 522 | f 227/2/4 228/2/4 229/2/4 523 | f 229/2/4 228/2/4 230/2/4 524 | f 227/2/4 229/2/4 231/2/4 525 | f 227/2/4 231/2/4 233/2/4 526 | f 231/2/4 232/2/4 233/2/4 527 | f 233/2/4 232/2/4 234/2/4 528 | f 227/2/4 233/2/4 235/2/4 529 | f 227/2/4 235/2/4 237/2/4 530 | f 235/2/4 236/2/4 237/2/4 531 | f 237/2/4 236/2/4 238/2/4 532 | f 227/2/4 237/2/4 239/2/4 533 | f 225/2/4 226/2/4 241/2/4 534 | f 241/2/4 226/2/4 242/2/4 535 | f 239/2/4 240/2/4 243/2/4 536 | f 227/2/4 239/2/4 243/2/4 537 | f 243/2/4 240/2/4 244/2/4 538 | f 247/2/5 246/2/5 245/2/5 539 | f 248/2/5 246/2/5 247/2/5 540 | f 251/2/5 250/2/5 249/2/5 541 | f 252/2/5 250/2/5 251/2/5 542 | f 253/2/5 251/2/5 249/2/5 543 | f 254/2/5 250/2/5 252/2/5 544 | f 255/2/5 253/2/5 249/2/5 545 | f 255/2/5 254/2/5 253/2/5 546 | f 256/2/5 250/2/5 254/2/5 547 | f 256/2/5 254/2/5 255/2/5 548 | f 257/2/6 258/2/6 259/2/6 549 | f 259/2/6 258/2/6 260/2/6 550 | f 257/2/6 259/2/6 261/2/6 551 | f 260/2/6 258/2/6 262/2/6 552 | f 257/2/6 261/2/6 263/2/6 553 | f 261/2/6 262/2/6 263/2/6 554 | f 262/2/6 258/2/6 264/2/6 555 | f 263/2/6 262/2/6 264/2/6 556 | f 265/2/6 266/2/6 267/2/6 557 | f 267/2/6 266/2/6 268/2/6 558 | f 269/2/6 270/2/6 276/2/6 559 | f 276/2/6 270/2/6 277/2/6 560 | f 271/2/6 272/2/6 278/2/6 561 | f 278/2/6 272/2/6 279/2/6 562 | f 273/2/6 274/2/6 280/2/6 563 | f 280/2/6 274/2/6 281/2/6 564 | f 278/2/6 279/2/6 283/2/6 565 | f 281/2/6 282/2/6 283/2/6 566 | f 280/2/6 281/2/6 283/2/6 567 | f 279/2/6 280/2/6 283/2/6 568 | f 276/2/6 277/2/6 283/2/6 569 | f 277/2/6 278/2/6 283/2/6 570 | f 275/2/6 276/2/6 283/2/6 571 | f 283/2/6 282/2/6 284/2/6 572 | f 284/2/6 282/2/6 285/2/6 573 | f 285/2/6 282/2/6 286/2/6 574 | f 286/2/6 282/2/6 287/2/6 575 | f 287/2/6 282/2/6 288/2/6 576 | f 284/2/6 285/2/6 290/2/6 577 | f 286/2/6 287/2/6 291/2/6 578 | f 289/2/6 290/2/6 293/2/6 579 | f 290/2/6 285/2/6 294/2/6 580 | f 293/2/6 290/2/6 294/2/6 581 | f 291/2/6 292/2/6 295/2/6 582 | f 286/2/6 291/2/6 295/2/6 583 | f 295/2/6 292/2/6 296/2/6 584 | f 294/2/6 285/2/6 298/2/6 585 | f 298/2/6 285/2/6 299/2/6 586 | f 286/2/6 295/2/6 300/2/6 587 | f 300/2/6 295/2/6 301/2/6 588 | f 298/2/6 299/2/6 303/2/6 589 | f 301/2/6 302/2/6 303/2/6 590 | f 300/2/6 301/2/6 303/2/6 591 | f 299/2/6 300/2/6 303/2/6 592 | f 297/2/6 298/2/6 303/2/6 593 | f 303/2/6 302/2/6 304/2/6 594 | f 304/2/6 302/2/6 305/2/6 595 | f 305/2/6 302/2/6 306/2/6 596 | f 306/2/6 302/2/6 307/2/6 597 | f 307/2/6 302/2/6 308/2/6 598 | f 308/2/6 302/2/6 309/2/6 599 | f 309/2/6 302/2/6 310/2/6 600 | f 304/2/6 305/2/6 311/2/6 601 | f 311/2/6 305/2/6 312/2/6 602 | f 306/2/6 307/2/6 313/2/6 603 | f 313/2/6 307/2/6 314/2/6 604 | f 308/2/6 309/2/6 315/2/6 605 | f 315/2/6 309/2/6 316/2/6 606 | f 317/2/6 318/2/6 325/2/6 607 | f 325/2/6 318/2/6 326/2/6 608 | f 319/2/6 320/2/6 327/2/6 609 | f 327/2/6 320/2/6 328/2/6 610 | f 321/2/6 322/2/6 329/2/6 611 | f 329/2/6 322/2/6 330/2/6 612 | f 323/2/6 324/2/6 331/2/6 613 | f 331/2/6 324/2/6 332/2/6 614 | f 333/2/6 334/2/6 337/2/6 615 | f 337/2/6 334/2/6 338/2/6 616 | f 335/2/6 336/2/6 339/2/6 617 | f 339/2/6 336/2/6 340/2/6 618 | f 341/2/6 342/2/6 345/2/6 619 | f 345/2/6 342/2/6 346/2/6 620 | f 343/2/6 344/2/6 347/2/6 621 | f 347/2/6 344/2/6 348/2/6 622 | f 349/2/6 350/2/6 357/2/6 623 | f 357/2/6 350/2/6 358/2/6 624 | f 351/2/6 352/2/6 359/2/6 625 | f 359/2/6 352/2/6 360/2/6 626 | f 353/2/6 354/2/6 361/2/6 627 | f 361/2/6 354/2/6 362/2/6 628 | f 355/2/6 356/2/6 363/2/6 629 | f 363/2/6 356/2/6 364/2/6 630 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Meshes/BluePrincessTower.obj: -------------------------------------------------------------------------------- 1 | # MagicaVoxel @ Ephtracy 2 | 3 | # material 4 | mtllib BluePrincessTower.mtl 5 | usemtl palette 6 | 7 | # normals 8 | vn -1 0 0 9 | vn 1 0 0 10 | vn 0 0 1 11 | vn 0 0 -1 12 | vn 0 -1 0 13 | vn 0 1 0 14 | 15 | # texcoords 16 | vt 0.939453 0.5 17 | vt 0.982422 0.5 18 | 19 | # verts 20 | v -3 5 4 21 | v -3 5 3 22 | v -3 5 2 23 | v -3 5 1 24 | v -3 5 -0 25 | v -3 5 -1 26 | v -3 5 -2 27 | v -3 5 -3 28 | v -3 7 4 29 | v -3 7 3 30 | v -3 7 2 31 | v -3 7 1 32 | v -3 7 -0 33 | v -3 7 -1 34 | v -3 7 -2 35 | v -3 7 -3 36 | v -2 0 3 37 | v -2 0 -2 38 | v -2 5 3 39 | v -2 5 2 40 | v -2 5 1 41 | v -2 5 -0 42 | v -2 5 -1 43 | v -2 5 -2 44 | v -2 6 3 45 | v -2 6 2 46 | v -2 6 1 47 | v -2 6 -0 48 | v -2 6 -1 49 | v -2 6 -2 50 | v -1 5 4 51 | v -1 5 3 52 | v -1 5 -2 53 | v -1 5 -3 54 | v -1 6 3 55 | v -1 6 -2 56 | v -1 7 4 57 | v -1 7 3 58 | v -1 7 -2 59 | v -1 7 -3 60 | v 1 5 4 61 | v 1 5 3 62 | v 1 5 -2 63 | v 1 5 -3 64 | v 1 6 3 65 | v 1 6 -2 66 | v 1 7 4 67 | v 1 7 3 68 | v 1 7 -2 69 | v 1 7 -3 70 | v 2 5 2 71 | v 2 5 -1 72 | v 2 6 2 73 | v 2 6 -1 74 | v 3 5 4 75 | v 3 5 3 76 | v 3 5 -2 77 | v 3 5 -3 78 | v 3 6 3 79 | v 3 6 2 80 | v 3 6 1 81 | v 3 6 -0 82 | v 3 6 -1 83 | v 3 6 -2 84 | v 3 7 4 85 | v 3 7 3 86 | v 3 7 2 87 | v 3 7 1 88 | v 3 7 -0 89 | v 3 7 -1 90 | v 3 7 -2 91 | v 3 7 -3 92 | v -2 5 4 93 | v -2 5 3 94 | v -2 5 -2 95 | v -2 5 -3 96 | v -2 6 3 97 | v -2 6 2 98 | v -2 6 1 99 | v -2 6 -0 100 | v -2 6 -1 101 | v -2 6 -2 102 | v -2 7 4 103 | v -2 7 3 104 | v -2 7 2 105 | v -2 7 1 106 | v -2 7 -0 107 | v -2 7 -1 108 | v -2 7 -2 109 | v -2 7 -3 110 | v -1 5 2 111 | v -1 5 -1 112 | v -1 6 2 113 | v -1 6 -1 114 | v 0 5 4 115 | v 0 5 3 116 | v 0 5 -2 117 | v 0 5 -3 118 | v 0 6 3 119 | v 0 6 -2 120 | v 0 7 4 121 | v 0 7 3 122 | v 0 7 -2 123 | v 0 7 -3 124 | v 2 5 4 125 | v 2 5 3 126 | v 2 5 -2 127 | v 2 5 -3 128 | v 2 6 3 129 | v 2 6 -2 130 | v 2 7 4 131 | v 2 7 3 132 | v 2 7 -2 133 | v 2 7 -3 134 | v 3 0 3 135 | v 3 0 -2 136 | v 3 5 3 137 | v 3 5 2 138 | v 3 5 1 139 | v 3 5 -0 140 | v 3 5 -1 141 | v 3 5 -2 142 | v 3 6 3 143 | v 3 6 2 144 | v 3 6 1 145 | v 3 6 -0 146 | v 3 6 -1 147 | v 3 6 -2 148 | v 4 5 4 149 | v 4 5 3 150 | v 4 5 2 151 | v 4 5 1 152 | v 4 5 -0 153 | v 4 5 -1 154 | v 4 5 -2 155 | v 4 5 -3 156 | v 4 7 4 157 | v 4 7 3 158 | v 4 7 2 159 | v 4 7 1 160 | v 4 7 -0 161 | v 4 7 -1 162 | v 4 7 -2 163 | v 4 7 -3 164 | v -3 5 4 165 | v -3 7 4 166 | v -2 5 4 167 | v -2 7 4 168 | v -1 5 4 169 | v -1 7 4 170 | v 0 5 4 171 | v 0 7 4 172 | v 1 5 4 173 | v 1 7 4 174 | v 2 5 4 175 | v 2 7 4 176 | v 3 5 4 177 | v 3 7 4 178 | v 4 5 4 179 | v 4 7 4 180 | v -2 0 3 181 | v -2 5 3 182 | v -2 6 3 183 | v -1 1 3 184 | v -1 4 3 185 | v -1 5 3 186 | v -1 6 3 187 | v 0 5 3 188 | v 0 6 3 189 | v 1 5 3 190 | v 1 6 3 191 | v 2 1 3 192 | v 2 4 3 193 | v 2 5 3 194 | v 2 6 3 195 | v 3 0 3 196 | v 3 5 3 197 | v 3 6 3 198 | v -3 5 2 199 | v -3 7 2 200 | v -2 5 2 201 | v -2 6 2 202 | v -2 7 2 203 | v 3 5 2 204 | v 3 6 2 205 | v 3 7 2 206 | v 4 5 2 207 | v 4 7 2 208 | v -3 5 -0 209 | v -3 7 -0 210 | v -2 5 -0 211 | v -2 6 -0 212 | v -2 7 -0 213 | v 3 5 -0 214 | v 3 6 -0 215 | v 3 7 -0 216 | v 4 5 -0 217 | v 4 7 -0 218 | v -1 5 -1 219 | v -1 6 -1 220 | v 2 5 -1 221 | v 2 6 -1 222 | v -3 5 -2 223 | v -3 7 -2 224 | v -2 5 -2 225 | v -2 6 -2 226 | v -2 7 -2 227 | v -1 6 -2 228 | v -1 7 -2 229 | v 0 6 -2 230 | v 0 7 -2 231 | v 1 6 -2 232 | v 1 7 -2 233 | v 2 6 -2 234 | v 2 7 -2 235 | v 3 5 -2 236 | v 3 6 -2 237 | v 3 7 -2 238 | v 4 5 -2 239 | v 4 7 -2 240 | v -3 5 3 241 | v -3 7 3 242 | v -2 5 3 243 | v -2 6 3 244 | v -2 7 3 245 | v -1 6 3 246 | v -1 7 3 247 | v 0 6 3 248 | v 0 7 3 249 | v 1 6 3 250 | v 1 7 3 251 | v 2 6 3 252 | v 2 7 3 253 | v 3 5 3 254 | v 3 6 3 255 | v 3 7 3 256 | v 4 5 3 257 | v 4 7 3 258 | v -1 5 2 259 | v -1 6 2 260 | v 2 5 2 261 | v 2 6 2 262 | v -3 5 1 263 | v -3 7 1 264 | v -2 5 1 265 | v -2 6 1 266 | v -2 7 1 267 | v 3 5 1 268 | v 3 6 1 269 | v 3 7 1 270 | v 4 5 1 271 | v 4 7 1 272 | v -3 5 -1 273 | v -3 7 -1 274 | v -2 5 -1 275 | v -2 6 -1 276 | v -2 7 -1 277 | v 3 5 -1 278 | v 3 6 -1 279 | v 3 7 -1 280 | v 4 5 -1 281 | v 4 7 -1 282 | v -2 0 -2 283 | v -2 5 -2 284 | v -2 6 -2 285 | v -1 5 -2 286 | v -1 6 -2 287 | v 0 5 -2 288 | v 0 6 -2 289 | v 1 5 -2 290 | v 1 6 -2 291 | v 2 5 -2 292 | v 2 6 -2 293 | v 3 0 -2 294 | v 3 5 -2 295 | v 3 6 -2 296 | v -3 5 -3 297 | v -3 7 -3 298 | v -2 5 -3 299 | v -2 7 -3 300 | v -1 5 -3 301 | v -1 7 -3 302 | v 0 5 -3 303 | v 0 7 -3 304 | v 1 5 -3 305 | v 1 7 -3 306 | v 2 5 -3 307 | v 2 7 -3 308 | v 3 5 -3 309 | v 3 7 -3 310 | v 4 5 -3 311 | v 4 7 -3 312 | v -2 0 3 313 | v 3 0 3 314 | v -2 0 -2 315 | v 3 0 -2 316 | v -3 5 4 317 | v -2 5 4 318 | v -1 5 4 319 | v 0 5 4 320 | v 1 5 4 321 | v 2 5 4 322 | v 3 5 4 323 | v 4 5 4 324 | v -3 5 3 325 | v -2 5 3 326 | v -1 5 3 327 | v 0 5 3 328 | v 1 5 3 329 | v 2 5 3 330 | v 3 5 3 331 | v 4 5 3 332 | v -3 5 2 333 | v -2 5 2 334 | v 3 5 2 335 | v 4 5 2 336 | v -3 5 1 337 | v -2 5 1 338 | v 3 5 1 339 | v 4 5 1 340 | v -3 5 -0 341 | v -2 5 -0 342 | v 3 5 -0 343 | v 4 5 -0 344 | v -3 5 -1 345 | v -2 5 -1 346 | v 3 5 -1 347 | v 4 5 -1 348 | v -3 5 -2 349 | v -2 5 -2 350 | v -1 5 -2 351 | v 0 5 -2 352 | v 1 5 -2 353 | v 2 5 -2 354 | v 3 5 -2 355 | v 4 5 -2 356 | v -3 5 -3 357 | v -2 5 -3 358 | v -1 5 -3 359 | v 0 5 -3 360 | v 1 5 -3 361 | v 2 5 -3 362 | v 3 5 -3 363 | v 4 5 -3 364 | v -1 5 2 365 | v 2 5 2 366 | v -1 5 -1 367 | v 2 5 -1 368 | v -2 6 3 369 | v -1 6 3 370 | v 0 6 3 371 | v 1 6 3 372 | v 2 6 3 373 | v 3 6 3 374 | v -2 6 2 375 | v -1 6 2 376 | v 2 6 2 377 | v 3 6 2 378 | v -2 6 1 379 | v 3 6 1 380 | v -2 6 -0 381 | v 3 6 -0 382 | v -2 6 -1 383 | v -1 6 -1 384 | v 2 6 -1 385 | v 3 6 -1 386 | v -2 6 -2 387 | v -1 6 -2 388 | v 0 6 -2 389 | v 1 6 -2 390 | v 2 6 -2 391 | v 3 6 -2 392 | v -3 7 4 393 | v -2 7 4 394 | v -1 7 4 395 | v 0 7 4 396 | v 1 7 4 397 | v 2 7 4 398 | v 3 7 4 399 | v 4 7 4 400 | v -3 7 3 401 | v -2 7 3 402 | v -1 7 3 403 | v 0 7 3 404 | v 1 7 3 405 | v 2 7 3 406 | v 3 7 3 407 | v 4 7 3 408 | v -3 7 2 409 | v -2 7 2 410 | v 3 7 2 411 | v 4 7 2 412 | v -3 7 1 413 | v -2 7 1 414 | v 3 7 1 415 | v 4 7 1 416 | v -3 7 -0 417 | v -2 7 -0 418 | v 3 7 -0 419 | v 4 7 -0 420 | v -3 7 -1 421 | v -2 7 -1 422 | v 3 7 -1 423 | v 4 7 -1 424 | v -3 7 -2 425 | v -2 7 -2 426 | v -1 7 -2 427 | v 0 7 -2 428 | v 1 7 -2 429 | v 2 7 -2 430 | v 3 7 -2 431 | v 4 7 -2 432 | v -3 7 -3 433 | v -2 7 -3 434 | v -1 7 -3 435 | v 0 7 -3 436 | v 1 7 -3 437 | v 2 7 -3 438 | v 3 7 -3 439 | v 4 7 -3 440 | 441 | # faces 442 | f 9/2/1 2/2/1 1/2/1 443 | f 10/2/1 2/2/1 9/2/1 444 | f 11/2/1 4/2/1 3/2/1 445 | f 12/2/1 4/2/1 11/2/1 446 | f 13/2/1 6/2/1 5/2/1 447 | f 14/2/1 6/2/1 13/2/1 448 | f 15/2/1 8/2/1 7/2/1 449 | f 16/2/1 8/2/1 15/2/1 450 | f 19/2/1 18/2/1 17/2/1 451 | f 20/2/1 18/2/1 19/2/1 452 | f 21/2/1 18/2/1 20/2/1 453 | f 22/2/1 18/2/1 21/2/1 454 | f 23/2/1 18/2/1 22/2/1 455 | f 24/2/1 18/2/1 23/2/1 456 | f 25/2/1 20/2/1 19/2/1 457 | f 26/2/1 20/2/1 25/2/1 458 | f 27/2/1 22/2/1 21/2/1 459 | f 28/2/1 22/2/1 27/2/1 460 | f 29/2/1 24/2/1 23/2/1 461 | f 30/2/1 24/2/1 29/2/1 462 | f 35/2/1 32/2/1 31/2/1 463 | f 36/2/1 34/2/1 33/2/1 464 | f 37/2/1 35/2/1 31/2/1 465 | f 38/2/1 35/2/1 37/2/1 466 | f 39/2/1 34/2/1 36/2/1 467 | f 40/2/1 34/2/1 39/2/1 468 | f 45/2/1 42/2/1 41/2/1 469 | f 46/2/1 44/2/1 43/2/1 470 | f 47/2/1 45/2/1 41/2/1 471 | f 48/2/1 45/2/1 47/2/1 472 | f 49/2/1 44/2/1 46/2/1 473 | f 50/2/1 44/2/1 49/2/1 474 | f 53/2/1 52/2/1 51/2/1 475 | f 54/2/1 52/2/1 53/2/1 476 | f 59/2/1 56/2/1 55/2/1 477 | f 64/2/1 58/2/1 57/2/1 478 | f 65/2/1 59/2/1 55/2/1 479 | f 66/2/1 59/2/1 65/2/1 480 | f 67/2/1 61/2/1 60/2/1 481 | f 68/2/1 61/2/1 67/2/1 482 | f 69/2/1 63/2/1 62/2/1 483 | f 70/2/1 63/2/1 69/2/1 484 | f 71/2/1 58/2/1 64/2/1 485 | f 72/2/1 58/2/1 71/2/1 486 | f 73/2/2 74/2/2 77/2/2 487 | f 75/2/2 76/2/2 82/2/2 488 | f 73/2/2 77/2/2 83/2/2 489 | f 83/2/2 77/2/2 84/2/2 490 | f 78/2/2 79/2/2 85/2/2 491 | f 85/2/2 79/2/2 86/2/2 492 | f 80/2/2 81/2/2 87/2/2 493 | f 87/2/2 81/2/2 88/2/2 494 | f 82/2/2 76/2/2 89/2/2 495 | f 89/2/2 76/2/2 90/2/2 496 | f 91/2/2 92/2/2 93/2/2 497 | f 93/2/2 92/2/2 94/2/2 498 | f 95/2/2 96/2/2 99/2/2 499 | f 97/2/2 98/2/2 100/2/2 500 | f 95/2/2 99/2/2 101/2/2 501 | f 101/2/2 99/2/2 102/2/2 502 | f 100/2/2 98/2/2 103/2/2 503 | f 103/2/2 98/2/2 104/2/2 504 | f 105/2/2 106/2/2 109/2/2 505 | f 107/2/2 108/2/2 110/2/2 506 | f 105/2/2 109/2/2 111/2/2 507 | f 111/2/2 109/2/2 112/2/2 508 | f 110/2/2 108/2/2 113/2/2 509 | f 113/2/2 108/2/2 114/2/2 510 | f 115/2/2 116/2/2 117/2/2 511 | f 117/2/2 116/2/2 118/2/2 512 | f 118/2/2 116/2/2 119/2/2 513 | f 119/2/2 116/2/2 120/2/2 514 | f 120/2/2 116/2/2 121/2/2 515 | f 121/2/2 116/2/2 122/2/2 516 | f 117/2/2 118/2/2 123/2/2 517 | f 123/2/2 118/2/2 124/2/2 518 | f 119/2/2 120/2/2 125/2/2 519 | f 125/2/2 120/2/2 126/2/2 520 | f 121/2/2 122/2/2 127/2/2 521 | f 127/2/2 122/2/2 128/2/2 522 | f 129/2/2 130/2/2 137/2/2 523 | f 137/2/2 130/2/2 138/2/2 524 | f 131/2/2 132/2/2 139/2/2 525 | f 139/2/2 132/2/2 140/2/2 526 | f 133/2/2 134/2/2 141/2/2 527 | f 141/2/2 134/2/2 142/2/2 528 | f 135/2/2 136/2/2 143/2/2 529 | f 143/2/2 136/2/2 144/2/2 530 | f 147/2/3 146/2/3 145/2/3 531 | f 148/2/3 146/2/3 147/2/3 532 | f 151/2/3 150/2/3 149/2/3 533 | f 152/2/3 150/2/3 151/2/3 534 | f 155/2/3 154/2/3 153/2/3 535 | f 156/2/3 154/2/3 155/2/3 536 | f 159/2/3 158/2/3 157/2/3 537 | f 160/2/3 158/2/3 159/2/3 538 | f 164/2/3 162/2/3 161/2/3 539 | f 164/2/3 163/2/3 162/2/3 540 | f 165/2/3 163/2/3 164/2/3 541 | f 166/2/3 163/2/3 165/2/3 542 | f 167/2/3 163/2/3 166/2/3 543 | f 168/2/3 166/2/3 165/2/3 544 | f 170/2/3 168/2/3 165/2/3 545 | f 170/2/3 169/2/3 168/2/3 546 | f 171/2/3 169/2/3 170/2/3 547 | f 172/2/3 164/2/3 161/2/3 548 | f 172/1/3 165/1/3 164/1/3 549 | f 173/2/3 170/2/3 165/2/3 550 | f 173/1/3 165/1/3 172/1/3 551 | f 174/2/3 170/2/3 173/2/3 552 | f 176/2/3 172/2/3 161/2/3 553 | f 176/2/3 175/2/3 174/2/3 554 | f 176/2/3 174/2/3 173/2/3 555 | f 176/2/3 173/2/3 172/2/3 556 | f 177/2/3 175/2/3 176/2/3 557 | f 178/2/3 175/2/3 177/2/3 558 | f 181/2/3 180/2/3 179/2/3 559 | f 182/2/3 180/2/3 181/2/3 560 | f 183/2/3 180/2/3 182/2/3 561 | f 187/2/3 185/2/3 184/2/3 562 | f 187/2/3 186/2/3 185/2/3 563 | f 188/2/3 186/2/3 187/2/3 564 | f 191/2/3 190/2/3 189/2/3 565 | f 192/2/3 190/2/3 191/2/3 566 | f 193/2/3 190/2/3 192/2/3 567 | f 197/2/3 195/2/3 194/2/3 568 | f 197/2/3 196/2/3 195/2/3 569 | f 198/2/3 196/2/3 197/2/3 570 | f 201/2/3 200/2/3 199/2/3 571 | f 202/2/3 200/2/3 201/2/3 572 | f 205/2/3 204/2/3 203/2/3 573 | f 206/2/3 204/2/3 205/2/3 574 | f 207/2/3 204/2/3 206/2/3 575 | f 210/2/3 209/2/3 208/2/3 576 | f 211/2/3 209/2/3 210/2/3 577 | f 214/2/3 213/2/3 212/2/3 578 | f 215/2/3 213/2/3 214/2/3 579 | f 219/2/3 217/2/3 216/2/3 580 | f 219/2/3 218/2/3 217/2/3 581 | f 220/2/3 218/2/3 219/2/3 582 | f 221/2/4 222/2/4 223/2/4 583 | f 223/2/4 222/2/4 224/2/4 584 | f 224/2/4 222/2/4 225/2/4 585 | f 226/2/4 227/2/4 228/2/4 586 | f 228/2/4 227/2/4 229/2/4 587 | f 230/2/4 231/2/4 232/2/4 588 | f 232/2/4 231/2/4 233/2/4 589 | f 234/2/4 235/2/4 237/2/4 590 | f 235/2/4 236/2/4 237/2/4 591 | f 237/2/4 236/2/4 238/2/4 592 | f 239/2/4 240/2/4 241/2/4 593 | f 241/2/4 240/2/4 242/2/4 594 | f 243/2/4 244/2/4 245/2/4 595 | f 245/2/4 244/2/4 246/2/4 596 | f 246/2/4 244/2/4 247/2/4 597 | f 248/2/4 249/2/4 251/2/4 598 | f 249/2/4 250/2/4 251/2/4 599 | f 251/2/4 250/2/4 252/2/4 600 | f 253/2/4 254/2/4 255/2/4 601 | f 255/2/4 254/2/4 256/2/4 602 | f 256/2/4 254/2/4 257/2/4 603 | f 258/2/4 259/2/4 261/2/4 604 | f 259/2/4 260/2/4 261/2/4 605 | f 261/2/4 260/2/4 262/2/4 606 | f 263/2/4 264/2/4 266/2/4 607 | f 264/2/4 265/2/4 266/2/4 608 | f 266/2/4 265/2/4 267/2/4 609 | f 263/2/4 266/2/4 268/2/4 610 | f 263/2/4 268/2/4 270/2/4 611 | f 268/2/4 269/2/4 270/2/4 612 | f 270/2/4 269/2/4 271/2/4 613 | f 263/2/4 270/2/4 272/2/4 614 | f 263/2/4 272/2/4 274/2/4 615 | f 272/2/4 273/2/4 274/2/4 616 | f 274/2/4 273/2/4 275/2/4 617 | f 275/2/4 273/2/4 276/2/4 618 | f 277/2/4 278/2/4 279/2/4 619 | f 279/2/4 278/2/4 280/2/4 620 | f 281/2/4 282/2/4 283/2/4 621 | f 283/2/4 282/2/4 284/2/4 622 | f 285/2/4 286/2/4 287/2/4 623 | f 287/2/4 286/2/4 288/2/4 624 | f 289/2/4 290/2/4 291/2/4 625 | f 291/2/4 290/2/4 292/2/4 626 | f 295/2/5 294/2/5 293/2/5 627 | f 296/2/5 294/2/5 295/2/5 628 | f 305/2/5 298/2/5 297/2/5 629 | f 306/2/5 298/2/5 305/2/5 630 | f 307/2/5 300/2/5 299/2/5 631 | f 308/2/5 300/2/5 307/2/5 632 | f 309/2/5 302/2/5 301/2/5 633 | f 310/2/5 302/2/5 309/2/5 634 | f 311/2/5 304/2/5 303/2/5 635 | f 312/2/5 304/2/5 311/2/5 636 | f 317/2/5 314/2/5 313/2/5 637 | f 318/2/5 314/2/5 317/2/5 638 | f 319/2/5 316/2/5 315/2/5 639 | f 320/2/5 316/2/5 319/2/5 640 | f 325/2/5 322/2/5 321/2/5 641 | f 326/2/5 322/2/5 325/2/5 642 | f 327/2/5 324/2/5 323/2/5 643 | f 328/2/5 324/2/5 327/2/5 644 | f 337/2/5 330/2/5 329/2/5 645 | f 338/2/5 330/2/5 337/2/5 646 | f 339/2/5 332/2/5 331/2/5 647 | f 340/2/5 332/2/5 339/2/5 648 | f 341/2/5 334/2/5 333/2/5 649 | f 342/2/5 334/2/5 341/2/5 650 | f 343/2/5 336/2/5 335/2/5 651 | f 344/2/5 336/2/5 343/2/5 652 | f 345/2/6 346/2/6 347/2/6 653 | f 347/2/6 346/2/6 348/2/6 654 | f 349/2/6 350/2/6 355/2/6 655 | f 353/2/6 354/2/6 355/2/6 656 | f 352/2/6 353/2/6 355/2/6 657 | f 351/2/6 352/2/6 355/2/6 658 | f 350/2/6 351/2/6 355/2/6 659 | f 355/2/6 354/2/6 356/2/6 660 | f 356/2/6 354/2/6 357/2/6 661 | f 357/2/6 354/2/6 358/2/6 662 | f 355/2/6 356/2/6 359/2/6 663 | f 357/2/6 358/2/6 360/2/6 664 | f 359/2/6 356/2/6 361/2/6 665 | f 357/2/6 360/2/6 362/2/6 666 | f 361/2/6 356/2/6 363/2/6 667 | f 363/2/6 356/2/6 364/2/6 668 | f 357/2/6 362/2/6 365/2/6 669 | f 365/2/6 362/2/6 366/2/6 670 | f 363/2/6 364/2/6 367/2/6 671 | f 364/2/6 365/2/6 367/2/6 672 | f 365/2/6 366/2/6 367/2/6 673 | f 367/2/6 366/2/6 368/2/6 674 | f 368/2/6 366/2/6 369/2/6 675 | f 369/2/6 366/2/6 370/2/6 676 | f 370/2/6 366/2/6 371/2/6 677 | f 371/2/6 366/2/6 372/2/6 678 | f 373/2/6 374/2/6 381/2/6 679 | f 381/2/6 374/2/6 382/2/6 680 | f 375/2/6 376/2/6 383/2/6 681 | f 383/2/6 376/2/6 384/2/6 682 | f 377/2/6 378/2/6 385/2/6 683 | f 385/2/6 378/2/6 386/2/6 684 | f 379/2/6 380/2/6 387/2/6 685 | f 387/2/6 380/2/6 388/2/6 686 | f 389/2/6 390/2/6 393/2/6 687 | f 393/2/6 390/2/6 394/2/6 688 | f 391/2/6 392/2/6 395/2/6 689 | f 395/2/6 392/2/6 396/2/6 690 | f 397/2/6 398/2/6 401/2/6 691 | f 401/2/6 398/2/6 402/2/6 692 | f 399/2/6 400/2/6 403/2/6 693 | f 403/2/6 400/2/6 404/2/6 694 | f 405/2/6 406/2/6 413/2/6 695 | f 413/2/6 406/2/6 414/2/6 696 | f 407/2/6 408/2/6 415/2/6 697 | f 415/2/6 408/2/6 416/2/6 698 | f 409/2/6 410/2/6 417/2/6 699 | f 417/2/6 410/2/6 418/2/6 700 | f 411/2/6 412/2/6 419/2/6 701 | f 419/2/6 412/2/6 420/2/6 702 | -------------------------------------------------------------------------------- /Assets/Game/Graphics/Meshes/RedPrincessTower.obj: -------------------------------------------------------------------------------- 1 | # MagicaVoxel @ Ephtracy 2 | 3 | # material 4 | mtllib RedPrincessTower.mtl 5 | usemtl palette 6 | 7 | # normals 8 | vn -1 0 0 9 | vn 1 0 0 10 | vn 0 0 1 11 | vn 0 0 -1 12 | vn 0 -1 0 13 | vn 0 1 0 14 | 15 | # texcoords 16 | vt 0.853516 0.5 17 | vt 0.982422 0.5 18 | 19 | # verts 20 | v -3 5 4 21 | v -3 5 3 22 | v -3 5 2 23 | v -3 5 1 24 | v -3 5 -0 25 | v -3 5 -1 26 | v -3 5 -2 27 | v -3 5 -3 28 | v -3 7 4 29 | v -3 7 3 30 | v -3 7 2 31 | v -3 7 1 32 | v -3 7 -0 33 | v -3 7 -1 34 | v -3 7 -2 35 | v -3 7 -3 36 | v -2 0 3 37 | v -2 0 -2 38 | v -2 5 3 39 | v -2 5 2 40 | v -2 5 1 41 | v -2 5 -0 42 | v -2 5 -1 43 | v -2 5 -2 44 | v -2 6 3 45 | v -2 6 2 46 | v -2 6 1 47 | v -2 6 -0 48 | v -2 6 -1 49 | v -2 6 -2 50 | v -1 5 4 51 | v -1 5 3 52 | v -1 5 -2 53 | v -1 5 -3 54 | v -1 6 3 55 | v -1 6 -2 56 | v -1 7 4 57 | v -1 7 3 58 | v -1 7 -2 59 | v -1 7 -3 60 | v 1 5 4 61 | v 1 5 3 62 | v 1 5 -2 63 | v 1 5 -3 64 | v 1 6 3 65 | v 1 6 -2 66 | v 1 7 4 67 | v 1 7 3 68 | v 1 7 -2 69 | v 1 7 -3 70 | v 2 5 2 71 | v 2 5 -1 72 | v 2 6 2 73 | v 2 6 -1 74 | v 3 5 4 75 | v 3 5 3 76 | v 3 5 -2 77 | v 3 5 -3 78 | v 3 6 3 79 | v 3 6 2 80 | v 3 6 1 81 | v 3 6 -0 82 | v 3 6 -1 83 | v 3 6 -2 84 | v 3 7 4 85 | v 3 7 3 86 | v 3 7 2 87 | v 3 7 1 88 | v 3 7 -0 89 | v 3 7 -1 90 | v 3 7 -2 91 | v 3 7 -3 92 | v -2 5 4 93 | v -2 5 3 94 | v -2 5 -2 95 | v -2 5 -3 96 | v -2 6 3 97 | v -2 6 2 98 | v -2 6 1 99 | v -2 6 -0 100 | v -2 6 -1 101 | v -2 6 -2 102 | v -2 7 4 103 | v -2 7 3 104 | v -2 7 2 105 | v -2 7 1 106 | v -2 7 -0 107 | v -2 7 -1 108 | v -2 7 -2 109 | v -2 7 -3 110 | v -1 5 2 111 | v -1 5 -1 112 | v -1 6 2 113 | v -1 6 -1 114 | v 0 5 4 115 | v 0 5 3 116 | v 0 5 -2 117 | v 0 5 -3 118 | v 0 6 3 119 | v 0 6 -2 120 | v 0 7 4 121 | v 0 7 3 122 | v 0 7 -2 123 | v 0 7 -3 124 | v 2 5 4 125 | v 2 5 3 126 | v 2 5 -2 127 | v 2 5 -3 128 | v 2 6 3 129 | v 2 6 -2 130 | v 2 7 4 131 | v 2 7 3 132 | v 2 7 -2 133 | v 2 7 -3 134 | v 3 0 3 135 | v 3 0 -2 136 | v 3 5 3 137 | v 3 5 2 138 | v 3 5 1 139 | v 3 5 -0 140 | v 3 5 -1 141 | v 3 5 -2 142 | v 3 6 3 143 | v 3 6 2 144 | v 3 6 1 145 | v 3 6 -0 146 | v 3 6 -1 147 | v 3 6 -2 148 | v 4 5 4 149 | v 4 5 3 150 | v 4 5 2 151 | v 4 5 1 152 | v 4 5 -0 153 | v 4 5 -1 154 | v 4 5 -2 155 | v 4 5 -3 156 | v 4 7 4 157 | v 4 7 3 158 | v 4 7 2 159 | v 4 7 1 160 | v 4 7 -0 161 | v 4 7 -1 162 | v 4 7 -2 163 | v 4 7 -3 164 | v -3 5 4 165 | v -3 7 4 166 | v -2 5 4 167 | v -2 7 4 168 | v -1 5 4 169 | v -1 7 4 170 | v 0 5 4 171 | v 0 7 4 172 | v 1 5 4 173 | v 1 7 4 174 | v 2 5 4 175 | v 2 7 4 176 | v 3 5 4 177 | v 3 7 4 178 | v 4 5 4 179 | v 4 7 4 180 | v -2 0 3 181 | v -2 5 3 182 | v -2 6 3 183 | v -1 1 3 184 | v -1 4 3 185 | v -1 5 3 186 | v -1 6 3 187 | v 0 5 3 188 | v 0 6 3 189 | v 1 5 3 190 | v 1 6 3 191 | v 2 1 3 192 | v 2 4 3 193 | v 2 5 3 194 | v 2 6 3 195 | v 3 0 3 196 | v 3 5 3 197 | v 3 6 3 198 | v -3 5 2 199 | v -3 7 2 200 | v -2 5 2 201 | v -2 6 2 202 | v -2 7 2 203 | v 3 5 2 204 | v 3 6 2 205 | v 3 7 2 206 | v 4 5 2 207 | v 4 7 2 208 | v -3 5 -0 209 | v -3 7 -0 210 | v -2 5 -0 211 | v -2 6 -0 212 | v -2 7 -0 213 | v 3 5 -0 214 | v 3 6 -0 215 | v 3 7 -0 216 | v 4 5 -0 217 | v 4 7 -0 218 | v -1 5 -1 219 | v -1 6 -1 220 | v 2 5 -1 221 | v 2 6 -1 222 | v -3 5 -2 223 | v -3 7 -2 224 | v -2 5 -2 225 | v -2 6 -2 226 | v -2 7 -2 227 | v -1 6 -2 228 | v -1 7 -2 229 | v 0 6 -2 230 | v 0 7 -2 231 | v 1 6 -2 232 | v 1 7 -2 233 | v 2 6 -2 234 | v 2 7 -2 235 | v 3 5 -2 236 | v 3 6 -2 237 | v 3 7 -2 238 | v 4 5 -2 239 | v 4 7 -2 240 | v -3 5 3 241 | v -3 7 3 242 | v -2 5 3 243 | v -2 6 3 244 | v -2 7 3 245 | v -1 6 3 246 | v -1 7 3 247 | v 0 6 3 248 | v 0 7 3 249 | v 1 6 3 250 | v 1 7 3 251 | v 2 6 3 252 | v 2 7 3 253 | v 3 5 3 254 | v 3 6 3 255 | v 3 7 3 256 | v 4 5 3 257 | v 4 7 3 258 | v -1 5 2 259 | v -1 6 2 260 | v 2 5 2 261 | v 2 6 2 262 | v -3 5 1 263 | v -3 7 1 264 | v -2 5 1 265 | v -2 6 1 266 | v -2 7 1 267 | v 3 5 1 268 | v 3 6 1 269 | v 3 7 1 270 | v 4 5 1 271 | v 4 7 1 272 | v -3 5 -1 273 | v -3 7 -1 274 | v -2 5 -1 275 | v -2 6 -1 276 | v -2 7 -1 277 | v 3 5 -1 278 | v 3 6 -1 279 | v 3 7 -1 280 | v 4 5 -1 281 | v 4 7 -1 282 | v -2 0 -2 283 | v -2 5 -2 284 | v -2 6 -2 285 | v -1 5 -2 286 | v -1 6 -2 287 | v 0 5 -2 288 | v 0 6 -2 289 | v 1 5 -2 290 | v 1 6 -2 291 | v 2 5 -2 292 | v 2 6 -2 293 | v 3 0 -2 294 | v 3 5 -2 295 | v 3 6 -2 296 | v -3 5 -3 297 | v -3 7 -3 298 | v -2 5 -3 299 | v -2 7 -3 300 | v -1 5 -3 301 | v -1 7 -3 302 | v 0 5 -3 303 | v 0 7 -3 304 | v 1 5 -3 305 | v 1 7 -3 306 | v 2 5 -3 307 | v 2 7 -3 308 | v 3 5 -3 309 | v 3 7 -3 310 | v 4 5 -3 311 | v 4 7 -3 312 | v -2 0 3 313 | v 3 0 3 314 | v -2 0 -2 315 | v 3 0 -2 316 | v -3 5 4 317 | v -2 5 4 318 | v -1 5 4 319 | v 0 5 4 320 | v 1 5 4 321 | v 2 5 4 322 | v 3 5 4 323 | v 4 5 4 324 | v -3 5 3 325 | v -2 5 3 326 | v -1 5 3 327 | v 0 5 3 328 | v 1 5 3 329 | v 2 5 3 330 | v 3 5 3 331 | v 4 5 3 332 | v -3 5 2 333 | v -2 5 2 334 | v 3 5 2 335 | v 4 5 2 336 | v -3 5 1 337 | v -2 5 1 338 | v 3 5 1 339 | v 4 5 1 340 | v -3 5 -0 341 | v -2 5 -0 342 | v 3 5 -0 343 | v 4 5 -0 344 | v -3 5 -1 345 | v -2 5 -1 346 | v 3 5 -1 347 | v 4 5 -1 348 | v -3 5 -2 349 | v -2 5 -2 350 | v -1 5 -2 351 | v 0 5 -2 352 | v 1 5 -2 353 | v 2 5 -2 354 | v 3 5 -2 355 | v 4 5 -2 356 | v -3 5 -3 357 | v -2 5 -3 358 | v -1 5 -3 359 | v 0 5 -3 360 | v 1 5 -3 361 | v 2 5 -3 362 | v 3 5 -3 363 | v 4 5 -3 364 | v -1 5 2 365 | v 2 5 2 366 | v -1 5 -1 367 | v 2 5 -1 368 | v -2 6 3 369 | v -1 6 3 370 | v 0 6 3 371 | v 1 6 3 372 | v 2 6 3 373 | v 3 6 3 374 | v -2 6 2 375 | v -1 6 2 376 | v 2 6 2 377 | v 3 6 2 378 | v -2 6 1 379 | v 3 6 1 380 | v -2 6 -0 381 | v 3 6 -0 382 | v -2 6 -1 383 | v -1 6 -1 384 | v 2 6 -1 385 | v 3 6 -1 386 | v -2 6 -2 387 | v -1 6 -2 388 | v 0 6 -2 389 | v 1 6 -2 390 | v 2 6 -2 391 | v 3 6 -2 392 | v -3 7 4 393 | v -2 7 4 394 | v -1 7 4 395 | v 0 7 4 396 | v 1 7 4 397 | v 2 7 4 398 | v 3 7 4 399 | v 4 7 4 400 | v -3 7 3 401 | v -2 7 3 402 | v -1 7 3 403 | v 0 7 3 404 | v 1 7 3 405 | v 2 7 3 406 | v 3 7 3 407 | v 4 7 3 408 | v -3 7 2 409 | v -2 7 2 410 | v 3 7 2 411 | v 4 7 2 412 | v -3 7 1 413 | v -2 7 1 414 | v 3 7 1 415 | v 4 7 1 416 | v -3 7 -0 417 | v -2 7 -0 418 | v 3 7 -0 419 | v 4 7 -0 420 | v -3 7 -1 421 | v -2 7 -1 422 | v 3 7 -1 423 | v 4 7 -1 424 | v -3 7 -2 425 | v -2 7 -2 426 | v -1 7 -2 427 | v 0 7 -2 428 | v 1 7 -2 429 | v 2 7 -2 430 | v 3 7 -2 431 | v 4 7 -2 432 | v -3 7 -3 433 | v -2 7 -3 434 | v -1 7 -3 435 | v 0 7 -3 436 | v 1 7 -3 437 | v 2 7 -3 438 | v 3 7 -3 439 | v 4 7 -3 440 | 441 | # faces 442 | f 9/2/1 2/2/1 1/2/1 443 | f 10/2/1 2/2/1 9/2/1 444 | f 11/2/1 4/2/1 3/2/1 445 | f 12/2/1 4/2/1 11/2/1 446 | f 13/2/1 6/2/1 5/2/1 447 | f 14/2/1 6/2/1 13/2/1 448 | f 15/2/1 8/2/1 7/2/1 449 | f 16/2/1 8/2/1 15/2/1 450 | f 19/2/1 18/2/1 17/2/1 451 | f 20/2/1 18/2/1 19/2/1 452 | f 21/2/1 18/2/1 20/2/1 453 | f 22/2/1 18/2/1 21/2/1 454 | f 23/2/1 18/2/1 22/2/1 455 | f 24/2/1 18/2/1 23/2/1 456 | f 25/2/1 20/2/1 19/2/1 457 | f 26/2/1 20/2/1 25/2/1 458 | f 27/2/1 22/2/1 21/2/1 459 | f 28/2/1 22/2/1 27/2/1 460 | f 29/2/1 24/2/1 23/2/1 461 | f 30/2/1 24/2/1 29/2/1 462 | f 35/2/1 32/2/1 31/2/1 463 | f 36/2/1 34/2/1 33/2/1 464 | f 37/2/1 35/2/1 31/2/1 465 | f 38/2/1 35/2/1 37/2/1 466 | f 39/2/1 34/2/1 36/2/1 467 | f 40/2/1 34/2/1 39/2/1 468 | f 45/2/1 42/2/1 41/2/1 469 | f 46/2/1 44/2/1 43/2/1 470 | f 47/2/1 45/2/1 41/2/1 471 | f 48/2/1 45/2/1 47/2/1 472 | f 49/2/1 44/2/1 46/2/1 473 | f 50/2/1 44/2/1 49/2/1 474 | f 53/2/1 52/2/1 51/2/1 475 | f 54/2/1 52/2/1 53/2/1 476 | f 59/2/1 56/2/1 55/2/1 477 | f 64/2/1 58/2/1 57/2/1 478 | f 65/2/1 59/2/1 55/2/1 479 | f 66/2/1 59/2/1 65/2/1 480 | f 67/2/1 61/2/1 60/2/1 481 | f 68/2/1 61/2/1 67/2/1 482 | f 69/2/1 63/2/1 62/2/1 483 | f 70/2/1 63/2/1 69/2/1 484 | f 71/2/1 58/2/1 64/2/1 485 | f 72/2/1 58/2/1 71/2/1 486 | f 73/2/2 74/2/2 77/2/2 487 | f 75/2/2 76/2/2 82/2/2 488 | f 73/2/2 77/2/2 83/2/2 489 | f 83/2/2 77/2/2 84/2/2 490 | f 78/2/2 79/2/2 85/2/2 491 | f 85/2/2 79/2/2 86/2/2 492 | f 80/2/2 81/2/2 87/2/2 493 | f 87/2/2 81/2/2 88/2/2 494 | f 82/2/2 76/2/2 89/2/2 495 | f 89/2/2 76/2/2 90/2/2 496 | f 91/2/2 92/2/2 93/2/2 497 | f 93/2/2 92/2/2 94/2/2 498 | f 95/2/2 96/2/2 99/2/2 499 | f 97/2/2 98/2/2 100/2/2 500 | f 95/2/2 99/2/2 101/2/2 501 | f 101/2/2 99/2/2 102/2/2 502 | f 100/2/2 98/2/2 103/2/2 503 | f 103/2/2 98/2/2 104/2/2 504 | f 105/2/2 106/2/2 109/2/2 505 | f 107/2/2 108/2/2 110/2/2 506 | f 105/2/2 109/2/2 111/2/2 507 | f 111/2/2 109/2/2 112/2/2 508 | f 110/2/2 108/2/2 113/2/2 509 | f 113/2/2 108/2/2 114/2/2 510 | f 115/2/2 116/2/2 117/2/2 511 | f 117/2/2 116/2/2 118/2/2 512 | f 118/2/2 116/2/2 119/2/2 513 | f 119/2/2 116/2/2 120/2/2 514 | f 120/2/2 116/2/2 121/2/2 515 | f 121/2/2 116/2/2 122/2/2 516 | f 117/2/2 118/2/2 123/2/2 517 | f 123/2/2 118/2/2 124/2/2 518 | f 119/2/2 120/2/2 125/2/2 519 | f 125/2/2 120/2/2 126/2/2 520 | f 121/2/2 122/2/2 127/2/2 521 | f 127/2/2 122/2/2 128/2/2 522 | f 129/2/2 130/2/2 137/2/2 523 | f 137/2/2 130/2/2 138/2/2 524 | f 131/2/2 132/2/2 139/2/2 525 | f 139/2/2 132/2/2 140/2/2 526 | f 133/2/2 134/2/2 141/2/2 527 | f 141/2/2 134/2/2 142/2/2 528 | f 135/2/2 136/2/2 143/2/2 529 | f 143/2/2 136/2/2 144/2/2 530 | f 147/2/3 146/2/3 145/2/3 531 | f 148/2/3 146/2/3 147/2/3 532 | f 151/2/3 150/2/3 149/2/3 533 | f 152/2/3 150/2/3 151/2/3 534 | f 155/2/3 154/2/3 153/2/3 535 | f 156/2/3 154/2/3 155/2/3 536 | f 159/2/3 158/2/3 157/2/3 537 | f 160/2/3 158/2/3 159/2/3 538 | f 164/2/3 162/2/3 161/2/3 539 | f 164/2/3 163/2/3 162/2/3 540 | f 165/2/3 163/2/3 164/2/3 541 | f 166/2/3 163/2/3 165/2/3 542 | f 167/2/3 163/2/3 166/2/3 543 | f 168/2/3 166/2/3 165/2/3 544 | f 170/2/3 168/2/3 165/2/3 545 | f 170/2/3 169/2/3 168/2/3 546 | f 171/2/3 169/2/3 170/2/3 547 | f 172/2/3 164/2/3 161/2/3 548 | f 172/1/3 165/1/3 164/1/3 549 | f 173/2/3 170/2/3 165/2/3 550 | f 173/1/3 165/1/3 172/1/3 551 | f 174/2/3 170/2/3 173/2/3 552 | f 176/2/3 172/2/3 161/2/3 553 | f 176/2/3 175/2/3 174/2/3 554 | f 176/2/3 174/2/3 173/2/3 555 | f 176/2/3 173/2/3 172/2/3 556 | f 177/2/3 175/2/3 176/2/3 557 | f 178/2/3 175/2/3 177/2/3 558 | f 181/2/3 180/2/3 179/2/3 559 | f 182/2/3 180/2/3 181/2/3 560 | f 183/2/3 180/2/3 182/2/3 561 | f 187/2/3 185/2/3 184/2/3 562 | f 187/2/3 186/2/3 185/2/3 563 | f 188/2/3 186/2/3 187/2/3 564 | f 191/2/3 190/2/3 189/2/3 565 | f 192/2/3 190/2/3 191/2/3 566 | f 193/2/3 190/2/3 192/2/3 567 | f 197/2/3 195/2/3 194/2/3 568 | f 197/2/3 196/2/3 195/2/3 569 | f 198/2/3 196/2/3 197/2/3 570 | f 201/2/3 200/2/3 199/2/3 571 | f 202/2/3 200/2/3 201/2/3 572 | f 205/2/3 204/2/3 203/2/3 573 | f 206/2/3 204/2/3 205/2/3 574 | f 207/2/3 204/2/3 206/2/3 575 | f 210/2/3 209/2/3 208/2/3 576 | f 211/2/3 209/2/3 210/2/3 577 | f 214/2/3 213/2/3 212/2/3 578 | f 215/2/3 213/2/3 214/2/3 579 | f 219/2/3 217/2/3 216/2/3 580 | f 219/2/3 218/2/3 217/2/3 581 | f 220/2/3 218/2/3 219/2/3 582 | f 221/2/4 222/2/4 223/2/4 583 | f 223/2/4 222/2/4 224/2/4 584 | f 224/2/4 222/2/4 225/2/4 585 | f 226/2/4 227/2/4 228/2/4 586 | f 228/2/4 227/2/4 229/2/4 587 | f 230/2/4 231/2/4 232/2/4 588 | f 232/2/4 231/2/4 233/2/4 589 | f 234/2/4 235/2/4 237/2/4 590 | f 235/2/4 236/2/4 237/2/4 591 | f 237/2/4 236/2/4 238/2/4 592 | f 239/2/4 240/2/4 241/2/4 593 | f 241/2/4 240/2/4 242/2/4 594 | f 243/2/4 244/2/4 245/2/4 595 | f 245/2/4 244/2/4 246/2/4 596 | f 246/2/4 244/2/4 247/2/4 597 | f 248/2/4 249/2/4 251/2/4 598 | f 249/2/4 250/2/4 251/2/4 599 | f 251/2/4 250/2/4 252/2/4 600 | f 253/2/4 254/2/4 255/2/4 601 | f 255/2/4 254/2/4 256/2/4 602 | f 256/2/4 254/2/4 257/2/4 603 | f 258/2/4 259/2/4 261/2/4 604 | f 259/2/4 260/2/4 261/2/4 605 | f 261/2/4 260/2/4 262/2/4 606 | f 263/2/4 264/2/4 266/2/4 607 | f 264/2/4 265/2/4 266/2/4 608 | f 266/2/4 265/2/4 267/2/4 609 | f 263/2/4 266/2/4 268/2/4 610 | f 263/2/4 268/2/4 270/2/4 611 | f 268/2/4 269/2/4 270/2/4 612 | f 270/2/4 269/2/4 271/2/4 613 | f 263/2/4 270/2/4 272/2/4 614 | f 263/2/4 272/2/4 274/2/4 615 | f 272/2/4 273/2/4 274/2/4 616 | f 274/2/4 273/2/4 275/2/4 617 | f 275/2/4 273/2/4 276/2/4 618 | f 277/2/4 278/2/4 279/2/4 619 | f 279/2/4 278/2/4 280/2/4 620 | f 281/2/4 282/2/4 283/2/4 621 | f 283/2/4 282/2/4 284/2/4 622 | f 285/2/4 286/2/4 287/2/4 623 | f 287/2/4 286/2/4 288/2/4 624 | f 289/2/4 290/2/4 291/2/4 625 | f 291/2/4 290/2/4 292/2/4 626 | f 295/2/5 294/2/5 293/2/5 627 | f 296/2/5 294/2/5 295/2/5 628 | f 305/2/5 298/2/5 297/2/5 629 | f 306/2/5 298/2/5 305/2/5 630 | f 307/2/5 300/2/5 299/2/5 631 | f 308/2/5 300/2/5 307/2/5 632 | f 309/2/5 302/2/5 301/2/5 633 | f 310/2/5 302/2/5 309/2/5 634 | f 311/2/5 304/2/5 303/2/5 635 | f 312/2/5 304/2/5 311/2/5 636 | f 317/2/5 314/2/5 313/2/5 637 | f 318/2/5 314/2/5 317/2/5 638 | f 319/2/5 316/2/5 315/2/5 639 | f 320/2/5 316/2/5 319/2/5 640 | f 325/2/5 322/2/5 321/2/5 641 | f 326/2/5 322/2/5 325/2/5 642 | f 327/2/5 324/2/5 323/2/5 643 | f 328/2/5 324/2/5 327/2/5 644 | f 337/2/5 330/2/5 329/2/5 645 | f 338/2/5 330/2/5 337/2/5 646 | f 339/2/5 332/2/5 331/2/5 647 | f 340/2/5 332/2/5 339/2/5 648 | f 341/2/5 334/2/5 333/2/5 649 | f 342/2/5 334/2/5 341/2/5 650 | f 343/2/5 336/2/5 335/2/5 651 | f 344/2/5 336/2/5 343/2/5 652 | f 345/2/6 346/2/6 347/2/6 653 | f 347/2/6 346/2/6 348/2/6 654 | f 349/2/6 350/2/6 355/2/6 655 | f 353/2/6 354/2/6 355/2/6 656 | f 352/2/6 353/2/6 355/2/6 657 | f 351/2/6 352/2/6 355/2/6 658 | f 350/2/6 351/2/6 355/2/6 659 | f 355/2/6 354/2/6 356/2/6 660 | f 356/2/6 354/2/6 357/2/6 661 | f 357/2/6 354/2/6 358/2/6 662 | f 355/2/6 356/2/6 359/2/6 663 | f 357/2/6 358/2/6 360/2/6 664 | f 359/2/6 356/2/6 361/2/6 665 | f 357/2/6 360/2/6 362/2/6 666 | f 361/2/6 356/2/6 363/2/6 667 | f 363/2/6 356/2/6 364/2/6 668 | f 357/2/6 362/2/6 365/2/6 669 | f 365/2/6 362/2/6 366/2/6 670 | f 363/2/6 364/2/6 367/2/6 671 | f 364/2/6 365/2/6 367/2/6 672 | f 365/2/6 366/2/6 367/2/6 673 | f 367/2/6 366/2/6 368/2/6 674 | f 368/2/6 366/2/6 369/2/6 675 | f 369/2/6 366/2/6 370/2/6 676 | f 370/2/6 366/2/6 371/2/6 677 | f 371/2/6 366/2/6 372/2/6 678 | f 373/2/6 374/2/6 381/2/6 679 | f 381/2/6 374/2/6 382/2/6 680 | f 375/2/6 376/2/6 383/2/6 681 | f 383/2/6 376/2/6 384/2/6 682 | f 377/2/6 378/2/6 385/2/6 683 | f 385/2/6 378/2/6 386/2/6 684 | f 379/2/6 380/2/6 387/2/6 685 | f 387/2/6 380/2/6 388/2/6 686 | f 389/2/6 390/2/6 393/2/6 687 | f 393/2/6 390/2/6 394/2/6 688 | f 391/2/6 392/2/6 395/2/6 689 | f 395/2/6 392/2/6 396/2/6 690 | f 397/2/6 398/2/6 401/2/6 691 | f 401/2/6 398/2/6 402/2/6 692 | f 399/2/6 400/2/6 403/2/6 693 | f 403/2/6 400/2/6 404/2/6 694 | f 405/2/6 406/2/6 413/2/6 695 | f 413/2/6 406/2/6 414/2/6 696 | f 407/2/6 408/2/6 415/2/6 697 | f 415/2/6 408/2/6 416/2/6 698 | f 409/2/6 410/2/6 417/2/6 699 | f 417/2/6 410/2/6 418/2/6 700 | f 411/2/6 412/2/6 419/2/6 701 | f 419/2/6 412/2/6 420/2/6 702 | -------------------------------------------------------------------------------- /Assets/Plugins/HLNMC/NavMeshComponents/Scripts/NavMeshSurface.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace UnityEngine.AI 4 | { 5 | public enum CollectObjects 6 | { 7 | All = 0, 8 | Volume = 1, 9 | Children = 2, 10 | } 11 | 12 | [ExecuteInEditMode] 13 | [DefaultExecutionOrder(-102)] 14 | [AddComponentMenu("Navigation/NavMeshSurface", 30)] 15 | [HelpURL("https://github.com/Unity-Technologies/NavMeshComponents#documentation-draft")] 16 | public class NavMeshSurface : MonoBehaviour 17 | { 18 | [SerializeField] 19 | int m_AgentTypeID; 20 | public int agentTypeID { get { return m_AgentTypeID; } set { m_AgentTypeID = value; } } 21 | 22 | [SerializeField] 23 | CollectObjects m_CollectObjects = CollectObjects.All; 24 | public CollectObjects collectObjects { get { return m_CollectObjects; } set { m_CollectObjects = value; } } 25 | 26 | [SerializeField] 27 | Vector3 m_Size = new Vector3(10.0f, 10.0f, 10.0f); 28 | public Vector3 size { get { return m_Size; } set { m_Size = value; } } 29 | 30 | [SerializeField] 31 | Vector3 m_Center = new Vector3(0, 2.0f, 0); 32 | public Vector3 center { get { return m_Center; } set { m_Center = value; } } 33 | 34 | [SerializeField] 35 | LayerMask m_LayerMask = ~0; 36 | public LayerMask layerMask { get { return m_LayerMask; } set { m_LayerMask = value; } } 37 | 38 | [SerializeField] 39 | NavMeshCollectGeometry m_UseGeometry = NavMeshCollectGeometry.RenderMeshes; 40 | public NavMeshCollectGeometry useGeometry { get { return m_UseGeometry; } set { m_UseGeometry = value; } } 41 | 42 | [SerializeField] 43 | int m_DefaultArea; 44 | public int defaultArea { get { return m_DefaultArea; } set { m_DefaultArea = value; } } 45 | 46 | [SerializeField] 47 | bool m_IgnoreNavMeshAgent = true; 48 | public bool ignoreNavMeshAgent { get { return m_IgnoreNavMeshAgent; } set { m_IgnoreNavMeshAgent = value; } } 49 | 50 | [SerializeField] 51 | bool m_IgnoreNavMeshObstacle = true; 52 | public bool ignoreNavMeshObstacle { get { return m_IgnoreNavMeshObstacle; } set { m_IgnoreNavMeshObstacle = value; } } 53 | 54 | [SerializeField] 55 | bool m_OverrideTileSize; 56 | public bool overrideTileSize { get { return m_OverrideTileSize; } set { m_OverrideTileSize = value; } } 57 | [SerializeField] 58 | int m_TileSize = 256; 59 | public int tileSize { get { return m_TileSize; } set { m_TileSize = value; } } 60 | [SerializeField] 61 | bool m_OverrideVoxelSize; 62 | public bool overrideVoxelSize { get { return m_OverrideVoxelSize; } set { m_OverrideVoxelSize = value; } } 63 | [SerializeField] 64 | float m_VoxelSize; 65 | public float voxelSize { get { return m_VoxelSize; } set { m_VoxelSize = value; } } 66 | 67 | // Currently not supported advanced options 68 | [SerializeField] 69 | bool m_BuildHeightMesh; 70 | public bool buildHeightMesh { get { return m_BuildHeightMesh; } set { m_BuildHeightMesh = value; } } 71 | 72 | // Reference to whole scene navmesh data asset. 73 | [UnityEngine.Serialization.FormerlySerializedAs("m_BakedNavMeshData")] 74 | [SerializeField] 75 | NavMeshData m_NavMeshData; 76 | public NavMeshData navMeshData { get { return m_NavMeshData; } set { m_NavMeshData = value; } } 77 | 78 | // Do not serialize - runtime only state. 79 | NavMeshDataInstance m_NavMeshDataInstance; 80 | Vector3 m_LastPosition = Vector3.zero; 81 | Quaternion m_LastRotation = Quaternion.identity; 82 | 83 | static readonly List s_NavMeshSurfaces = new List(); 84 | 85 | public static List activeSurfaces 86 | { 87 | get { return s_NavMeshSurfaces; } 88 | } 89 | 90 | void OnEnable() 91 | { 92 | Register(this); 93 | AddData(); 94 | } 95 | 96 | void OnDisable() 97 | { 98 | RemoveData(); 99 | Unregister(this); 100 | } 101 | 102 | public void AddData() 103 | { 104 | if (m_NavMeshDataInstance.valid) 105 | return; 106 | 107 | if (m_NavMeshData != null) 108 | { 109 | m_NavMeshDataInstance = NavMesh.AddNavMeshData(m_NavMeshData, transform.position, transform.rotation); 110 | m_NavMeshDataInstance.owner = this; 111 | } 112 | 113 | m_LastPosition = transform.position; 114 | m_LastRotation = transform.rotation; 115 | } 116 | 117 | public void RemoveData() 118 | { 119 | m_NavMeshDataInstance.Remove(); 120 | m_NavMeshDataInstance = new NavMeshDataInstance(); 121 | } 122 | 123 | public NavMeshBuildSettings GetBuildSettings() 124 | { 125 | var buildSettings = NavMesh.GetSettingsByID(m_AgentTypeID); 126 | if (buildSettings.agentTypeID == -1) 127 | { 128 | Debug.LogWarning("No build settings for agent type ID " + agentTypeID, this); 129 | buildSettings.agentTypeID = m_AgentTypeID; 130 | } 131 | 132 | if (overrideTileSize) 133 | { 134 | buildSettings.overrideTileSize = true; 135 | buildSettings.tileSize = tileSize; 136 | } 137 | if (overrideVoxelSize) 138 | { 139 | buildSettings.overrideVoxelSize = true; 140 | buildSettings.voxelSize = voxelSize; 141 | } 142 | return buildSettings; 143 | } 144 | 145 | public void BuildNavMesh() 146 | { 147 | var sources = CollectSources(); 148 | 149 | // Use unscaled bounds - this differs in behaviour from e.g. collider components. 150 | // But is similar to reflection probe - and since navmesh data has no scaling support - it is the right choice here. 151 | var sourcesBounds = new Bounds(m_Center, Abs(m_Size)); 152 | if (m_CollectObjects == CollectObjects.All || m_CollectObjects == CollectObjects.Children) 153 | { 154 | sourcesBounds = CalculateWorldBounds(sources); 155 | } 156 | 157 | var data = NavMeshBuilder.BuildNavMeshData(GetBuildSettings(), 158 | sources, sourcesBounds, transform.position, transform.rotation); 159 | 160 | if (data != null) 161 | { 162 | data.name = gameObject.name; 163 | RemoveData(); 164 | m_NavMeshData = data; 165 | if (isActiveAndEnabled) 166 | AddData(); 167 | } 168 | } 169 | 170 | public AsyncOperation UpdateNavMesh(NavMeshData data) 171 | { 172 | var sources = CollectSources(); 173 | 174 | // Use unscaled bounds - this differs in behaviour from e.g. collider components. 175 | // But is similar to reflection probe - and since navmesh data has no scaling support - it is the right choice here. 176 | var sourcesBounds = new Bounds(m_Center, Abs(m_Size)); 177 | if (m_CollectObjects == CollectObjects.All || m_CollectObjects == CollectObjects.Children) 178 | sourcesBounds = CalculateWorldBounds(sources); 179 | 180 | return NavMeshBuilder.UpdateNavMeshDataAsync(data, GetBuildSettings(), sources, sourcesBounds); 181 | } 182 | 183 | static void Register(NavMeshSurface surface) 184 | { 185 | if (s_NavMeshSurfaces.Count == 0) 186 | NavMesh.onPreUpdate += UpdateActive; 187 | 188 | if (!s_NavMeshSurfaces.Contains(surface)) 189 | s_NavMeshSurfaces.Add(surface); 190 | } 191 | 192 | static void Unregister(NavMeshSurface surface) 193 | { 194 | s_NavMeshSurfaces.Remove(surface); 195 | 196 | if (s_NavMeshSurfaces.Count == 0) 197 | NavMesh.onPreUpdate -= UpdateActive; 198 | } 199 | 200 | static void UpdateActive() 201 | { 202 | for (var i = 0; i < s_NavMeshSurfaces.Count; ++i) 203 | s_NavMeshSurfaces[i].UpdateDataIfTransformChanged(); 204 | } 205 | 206 | void AppendModifierVolumes(ref List sources) 207 | { 208 | // Modifiers 209 | List modifiers; 210 | if (m_CollectObjects == CollectObjects.Children) 211 | { 212 | modifiers = new List(GetComponentsInChildren()); 213 | modifiers.RemoveAll(x => !x.isActiveAndEnabled); 214 | } 215 | else 216 | { 217 | modifiers = NavMeshModifierVolume.activeModifiers; 218 | } 219 | 220 | foreach (var m in modifiers) 221 | { 222 | if ((m_LayerMask & (1 << m.gameObject.layer)) == 0) 223 | continue; 224 | if (!m.AffectsAgentType(m_AgentTypeID)) 225 | continue; 226 | var mcenter = m.transform.TransformPoint(m.center); 227 | var scale = m.transform.lossyScale; 228 | var msize = new Vector3(m.size.x * Mathf.Abs(scale.x), m.size.y * Mathf.Abs(scale.y), m.size.z * Mathf.Abs(scale.z)); 229 | 230 | var src = new NavMeshBuildSource(); 231 | src.shape = NavMeshBuildSourceShape.ModifierBox; 232 | src.transform = Matrix4x4.TRS(mcenter, m.transform.rotation, Vector3.one); 233 | src.size = msize; 234 | src.area = m.area; 235 | sources.Add(src); 236 | } 237 | } 238 | 239 | List CollectSources() 240 | { 241 | var sources = new List(); 242 | var markups = new List(); 243 | 244 | List modifiers; 245 | if (m_CollectObjects == CollectObjects.Children) 246 | { 247 | modifiers = new List(GetComponentsInChildren()); 248 | modifiers.RemoveAll(x => !x.isActiveAndEnabled); 249 | } 250 | else 251 | { 252 | modifiers = NavMeshModifier.activeModifiers; 253 | } 254 | 255 | foreach (var m in modifiers) 256 | { 257 | if ((m_LayerMask & (1 << m.gameObject.layer)) == 0) 258 | continue; 259 | if (!m.AffectsAgentType(m_AgentTypeID)) 260 | continue; 261 | var markup = new NavMeshBuildMarkup(); 262 | markup.root = m.transform; 263 | markup.overrideArea = m.overrideArea; 264 | markup.area = m.area; 265 | markup.ignoreFromBuild = m.ignoreFromBuild; 266 | markups.Add(markup); 267 | } 268 | 269 | if (m_CollectObjects == CollectObjects.All) 270 | { 271 | NavMeshBuilder.CollectSources(null, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, sources); 272 | } 273 | else if (m_CollectObjects == CollectObjects.Children) 274 | { 275 | NavMeshBuilder.CollectSources(transform, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, sources); 276 | } 277 | else if (m_CollectObjects == CollectObjects.Volume) 278 | { 279 | Matrix4x4 localToWorld = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.one); 280 | var worldBounds = GetWorldBounds(localToWorld, new Bounds(m_Center, m_Size)); 281 | NavMeshBuilder.CollectSources(worldBounds, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, sources); 282 | } 283 | 284 | if (m_IgnoreNavMeshAgent) 285 | sources.RemoveAll((x) => (x.component != null && x.component.gameObject.GetComponent() != null)); 286 | 287 | if (m_IgnoreNavMeshObstacle) 288 | sources.RemoveAll((x) => (x.component != null && x.component.gameObject.GetComponent() != null)); 289 | 290 | AppendModifierVolumes(ref sources); 291 | 292 | return sources; 293 | } 294 | 295 | static Vector3 Abs(Vector3 v) 296 | { 297 | return new Vector3(Mathf.Abs(v.x), Mathf.Abs(v.y), Mathf.Abs(v.z)); 298 | } 299 | 300 | static Bounds GetWorldBounds(Matrix4x4 mat, Bounds bounds) 301 | { 302 | var absAxisX = Abs(mat.MultiplyVector(Vector3.right)); 303 | var absAxisY = Abs(mat.MultiplyVector(Vector3.up)); 304 | var absAxisZ = Abs(mat.MultiplyVector(Vector3.forward)); 305 | var worldPosition = mat.MultiplyPoint(bounds.center); 306 | var worldSize = absAxisX * bounds.size.x + absAxisY * bounds.size.y + absAxisZ * bounds.size.z; 307 | return new Bounds(worldPosition, worldSize); 308 | } 309 | 310 | Bounds CalculateWorldBounds(List sources) 311 | { 312 | // Use the unscaled matrix for the NavMeshSurface 313 | Matrix4x4 worldToLocal = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.one); 314 | worldToLocal = worldToLocal.inverse; 315 | 316 | var result = new Bounds(); 317 | foreach (var src in sources) 318 | { 319 | switch (src.shape) 320 | { 321 | case NavMeshBuildSourceShape.Mesh: 322 | { 323 | var m = src.sourceObject as Mesh; 324 | result.Encapsulate(GetWorldBounds(worldToLocal * src.transform, m.bounds)); 325 | break; 326 | } 327 | case NavMeshBuildSourceShape.Terrain: 328 | { 329 | // Terrain pivot is lower/left corner - shift bounds accordingly 330 | var t = src.sourceObject as TerrainData; 331 | result.Encapsulate(GetWorldBounds(worldToLocal * src.transform, new Bounds(0.5f * t.size, t.size))); 332 | break; 333 | } 334 | case NavMeshBuildSourceShape.Box: 335 | case NavMeshBuildSourceShape.Sphere: 336 | case NavMeshBuildSourceShape.Capsule: 337 | case NavMeshBuildSourceShape.ModifierBox: 338 | result.Encapsulate(GetWorldBounds(worldToLocal * src.transform, new Bounds(Vector3.zero, src.size))); 339 | break; 340 | } 341 | } 342 | // Inflate the bounds a bit to avoid clipping co-planar sources 343 | result.Expand(0.1f); 344 | return result; 345 | } 346 | 347 | bool HasTransformChanged() 348 | { 349 | if (m_LastPosition != transform.position) return true; 350 | if (m_LastRotation != transform.rotation) return true; 351 | return false; 352 | } 353 | 354 | void UpdateDataIfTransformChanged() 355 | { 356 | if (HasTransformChanged()) 357 | { 358 | RemoveData(); 359 | AddData(); 360 | } 361 | } 362 | 363 | #if UNITY_EDITOR 364 | bool UnshareNavMeshAsset() 365 | { 366 | // Nothing to unshare 367 | if (m_NavMeshData == null) 368 | return false; 369 | 370 | // Prefab parent owns the asset reference 371 | var prefabType = UnityEditor.PrefabUtility.GetPrefabType(this); 372 | if (prefabType == UnityEditor.PrefabType.Prefab) 373 | return false; 374 | 375 | // An instance can share asset reference only with its prefab parent 376 | var prefab = UnityEditor.PrefabUtility.GetPrefabParent(this) as NavMeshSurface; 377 | if (prefab != null && prefab.navMeshData == navMeshData) 378 | return false; 379 | 380 | // Don't allow referencing an asset that's assigned to another surface 381 | for (var i = 0; i < s_NavMeshSurfaces.Count; ++i) 382 | { 383 | var surface = s_NavMeshSurfaces[i]; 384 | if (surface != this && surface.m_NavMeshData == m_NavMeshData) 385 | return true; 386 | } 387 | 388 | // Asset is not referenced by known surfaces 389 | return false; 390 | } 391 | 392 | void OnValidate() 393 | { 394 | if (UnshareNavMeshAsset()) 395 | { 396 | Debug.LogWarning("Duplicating NavMeshSurface does not duplicate the referenced navmesh data", this); 397 | m_NavMeshData = null; 398 | } 399 | 400 | var settings = NavMesh.GetSettingsByID(m_AgentTypeID); 401 | if (settings.agentTypeID != -1) 402 | { 403 | // When unchecking the override control, revert to automatic value. 404 | const float kMinVoxelSize = 0.01f; 405 | if (!m_OverrideVoxelSize) 406 | m_VoxelSize = settings.agentRadius / 3.0f; 407 | if (m_VoxelSize < kMinVoxelSize) 408 | m_VoxelSize = kMinVoxelSize; 409 | 410 | // When unchecking the override control, revert to default value. 411 | const int kMinTileSize = 16; 412 | const int kMaxTileSize = 1024; 413 | const int kDefaultTileSize = 256; 414 | 415 | if (!m_OverrideTileSize) 416 | m_TileSize = kDefaultTileSize; 417 | // Make sure tilesize is in sane range. 418 | if (m_TileSize < kMinTileSize) 419 | m_TileSize = kMinTileSize; 420 | if (m_TileSize > kMaxTileSize) 421 | m_TileSize = kMaxTileSize; 422 | } 423 | } 424 | #endif 425 | } 426 | } 427 | --------------------------------------------------------------------------------