├── 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 |
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 |
--------------------------------------------------------------------------------