diff --git a/Assets/GameManager/GameManager.cs b/Assets/GameManager/GameManager.cs index 0e82c80..13e736b 100644 --- a/Assets/GameManager/GameManager.cs +++ b/Assets/GameManager/GameManager.cs @@ -4,6 +4,7 @@ using Subsystems; using System.Collections; using System; using TMPro; +using System.Collections.Generic; /* GameManager - hlavn tida pro sprvu hry GameManager_Network - subsystm pro sprvu komunikace se serverem @@ -20,6 +21,7 @@ public class GameManager : MonoBehaviour protected GameManager_UI uiSubsystem; protected GameManager_Map mapSubsystem; protected GameManager_Input inputSubsystem; + protected GameManager_Game gameSubsystem; protected GameClient gameClient; @@ -49,6 +51,9 @@ public class GameManager : MonoBehaviour private GameManager_Network _secondNetwork; private GameManager_Network _thirdNetwork; + [Header("Tasks")] + public List AvailableTasks = new List(); + public StationSettings settings = new StationSettings(); void Start() { @@ -72,6 +77,7 @@ public class GameManager : MonoBehaviour networkSubsystem = new GameManager_Network(gameClient); mapSubsystem = new GameManager_Map(gameClient, MapCenterPoint, buildingSettings, pathwaySettings, areaSettings); inputSubsystem = new GameManager_Input(gameClient, Player, testMode); + gameSubsystem = new GameManager_Game(gameClient, Player, MapCenterPoint, AvailableTasks); networkSubsystem.OpenConection(); } private void Update() @@ -133,6 +139,10 @@ public class GameManager : MonoBehaviour { networkSubsystem.StartGame(); } + public void Interact() + { + //TODO: Interakce s koly + } void OnApplicationQuit() { gameClient.Disconnect(); diff --git a/Assets/GameManager/GameManager_Game.cs b/Assets/GameManager/GameManager_Game.cs new file mode 100644 index 0000000..68679d8 --- /dev/null +++ b/Assets/GameManager/GameManager_Game.cs @@ -0,0 +1,141 @@ +using GeoSus.Client; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using UnityEngine; +using static UnityEngine.Rendering.RayTracingAccelerationStructure; + +namespace Subsystems +{ + [System.Serializable] + public class StationSettings + { + public GameObject TaskStationPrefab; + public GameObject SabotageStationPrefab; + public GameObject MeetingStationPrefab; + public GameObject BodyStationPrefab; + + } + public class GameManager_Game + { + private GameClient _gameClient; + private GameObject _player; + private GameObject _map; + private float _range; + private List _availableTasks; + public List Stations { get; private set; } + public List TaskStations { get; private set; } = new List(); + private StationSettings _stationSettings; + public GameManager_Game(GameClient client, GameObject player, GameObject map, List availableTasks, float range = 20f, StationSettings stationSettings = null) + { + _gameClient = client; + _player = player; + _map = map; + _availableTasks = availableTasks; + _range = range; + _stationSettings = stationSettings; + } + public bool CheckSightLine(Vector3 target) + { + RaycastHit hit; + Vector3 direction = target - _player.transform.position; + Ray ray = new Ray(new Vector3(_player.transform.position.x, 0.1f, _player.transform.position.z), direction); + Physics.Raycast(ray, out hit, _range); + if (hit.collider.tag == "Player") + { + Debug.Log("Target is visible"); + return true; + } + else + { + Debug.Log("Target is not visible"); + return false; + } + + } + public void InitializeTaskStations() + { + for(int i = 0; i < _gameClient.MyTasks.Count; i++) + { + System.Random rnd = new System.Random(); + var task = _availableTasks[rnd.Next(0,_availableTasks.Count)]; + CreateStation(_gameClient.MyTasks[i].Location, StationType.Task, _gameClient.MyTasks[i]); + } + } + private void CreateStation(Position pos, StationType type) + { + GameObject stationPrefab = null; + PlayerRole? reqRole = null; + switch (type) + { + case StationType.Task: + stationPrefab = _stationSettings.TaskStationPrefab; + reqRole = PlayerRole.Crew; + Debug.LogError("Task station creation not fully implemented, using task station prefab as placeholder"); + break; + case StationType.Sabotage: + stationPrefab = _stationSettings.SabotageStationPrefab; + break; + case StationType.Meeting: + stationPrefab = _stationSettings.MeetingStationPrefab; + break; + case StationType.Body: + stationPrefab = _stationSettings.BodyStationPrefab; + break; + default: + Debug.LogError("Invalid station type"); + break; + } + var station = UnityEngine.Object.Instantiate(stationPrefab); + station.transform.position = pos.ToLocalVector3(_gameClient.CurrentLobbyState.MapData.Center); + Stations.Add(station); + IInteractable interactable = station.GetComponent(); + interactable.Location = pos; + interactable.InteractionRange = _range; + /*Stations = new List(); + foreach (var task in _gameClient.MyTasks) + { + System.Random rnd = new System.Random(); + int index = rnd.Next(0, _availableTasks.Count); + var station = UnityEngine.Object.Instantiate(_stationPrefab); + ITask TaskSettings = station.GetComponent(); + TaskSettings.TaskID = task.TaskId; + TaskSettings.TaskLocation = task.Location; + station.transform.position = TaskSettings.TaskLocation.ToLocalVector3(_gameClient.CurrentLobbyState.MapData.Center); + station.SetActive(false); + + Stations.Add(station); + }*/ + + } + private void CreateStation(Position pos, StationType type, GameTask taskInfo) + { + GameObject stationPrefab = _stationSettings.TaskStationPrefab; + var station = UnityEngine.Object.Instantiate(stationPrefab); + station.transform.position = pos.ToLocalVector3(_gameClient.CurrentLobbyState.MapData.Center); + Stations.Add(station); + TaskStation interactable = station.GetComponent(); + interactable.Location = pos; + interactable.InteractionRange = _range; + interactable.TaskID = taskInfo.TaskId; + + } + + void CheckForPlayers() + { + foreach (var player in _gameClient.PlayerPositions.Where(p => p.Value.State == PlayerState.Alive)) + { + if (CheckSightLine(player.Value.Position.ToLocalVector3(_gameClient.CurrentLobbyState.MapData.Center))) + { + Debug.Log($"Player {player.Key} is visible"); + //TODO: Render player on map + } + else + { + Debug.Log($"Player {player.Key} is not visible"); + } + } + } + } +} diff --git a/Assets/GameManager/GameManager_Game.cs.meta b/Assets/GameManager/GameManager_Game.cs.meta new file mode 100644 index 0000000..3eb4fc0 --- /dev/null +++ b/Assets/GameManager/GameManager_Game.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: aba57c59fb2a19141a4868fa6a5c924c diff --git a/Assets/GameManager/GameManager_Input.cs b/Assets/GameManager/GameManager_Input.cs index af90aa1..ef51873 100644 --- a/Assets/GameManager/GameManager_Input.cs +++ b/Assets/GameManager/GameManager_Input.cs @@ -110,7 +110,7 @@ namespace Subsystems } else { - Debug.Log("GPS failed, trying again...");) + Debug.Log("GPS failed, trying again..."); _GPSState = GPSState.Uninitialized; } } diff --git a/Assets/GameManager/GameManager_Map.cs b/Assets/GameManager/GameManager_Map.cs index 30f9ce1..9ce32ce 100644 --- a/Assets/GameManager/GameManager_Map.cs +++ b/Assets/GameManager/GameManager_Map.cs @@ -133,6 +133,8 @@ namespace Subsystems{ // Vytvoření mesh pro budovu MeshFilter meshFilter = building.AddComponent(); MeshRenderer meshRenderer = building.AddComponent(); + MeshCollider meshCollider = building.AddComponent(); + building.tag = "Map"; float height; Material mat; @@ -157,6 +159,7 @@ namespace Subsystems{ } Mesh mesh = CreateExtrudedPolygonMesh(b.Outline, height); meshFilter.mesh = mesh; + meshCollider.sharedMesh = mesh; //TODO: material by type // Použijeme barvu podle typu budovy @@ -169,6 +172,7 @@ namespace Subsystems{ GameObject BuildPathwayMesh(MapPathway w) { var path = new GameObject($"Path_{w.Name ?? "Unknown"}"); + path.tag = "Map"; // Použijeme LineRenderer pro jednoduchost LineRenderer line = path.AddComponent(); @@ -235,6 +239,7 @@ namespace Subsystems{ GameObject BuildAreaMesh(MapArea a) { var area = new GameObject($"Area_{a.Name ?? "Unknown"}"); + area.tag = "Map"; MeshFilter meshFilter = area.AddComponent(); MeshRenderer meshRenderer = area.AddComponent(); diff --git a/Assets/GameManager/GameManager_Network.cs b/Assets/GameManager/GameManager_Network.cs index 8b12e3f..fc02f52 100644 --- a/Assets/GameManager/GameManager_Network.cs +++ b/Assets/GameManager/GameManager_Network.cs @@ -105,6 +105,10 @@ namespace Subsystems case "MapDataError": Debug.Log("Received MapData server error"); break; + case "SabotageStarted": + Debug.Log("Sabotage started"); + HandleSabotageStarted(gameEvent); + break; default: Debug.Log("Received GameEvent of type: " + gameEvent.EventType); break; @@ -157,6 +161,36 @@ namespace Subsystems _gameClient.StartGame(); } + #region GameEvent Handlers + private void HandleSabotageStarted(GameEvent gameEvent) + { + SabotageStartedPayload payload = gameEvent.GetPayload(); + switch (payload.Type) + { + case SabotageType.CommsBlackout: + for(int i = 0;i < payload.RequiredSimultaneousRepairs; i++) + { + //create stations + } + //Ui.alert + //DisableComms + return; + case SabotageType.CriticalMeltdown: + for (int i = 0; i < payload.RequiredSimultaneousRepairs; i++) + { + //create stations + } + //UI.alert + //UI Time remain + return; + + default: + Debug.Log($"Sabotage of unknown type: {payload.Type}"); + return; + + } + } + #endregion } } diff --git a/Assets/GameManager/ITask.cs b/Assets/GameManager/Interfaces.cs similarity index 59% rename from Assets/GameManager/ITask.cs rename to Assets/GameManager/Interfaces.cs index 3c1bfef..c128a05 100644 --- a/Assets/GameManager/ITask.cs +++ b/Assets/GameManager/Interfaces.cs @@ -6,16 +6,20 @@ using UnityEngine; { Task //TODO: Typy úkolù }*/ - - - +[System.Serializable] +public class TaskData +{ + //TaskType + public GameObject TaskPrefab; +} public interface ITask { - public string TaskID { get; } // Unikátní ID úkolu pro server - public TaskType TaskType { get; } // Typ úkolu - public string TaskName { get; } // Viditelný název úkolu - public Position TaskLocation { get; } // Polohy na mapì - public bool IsCompleted { get; } // Stav dokonèení úkolu + public string TaskID { get; set; } // Unikátní ID úkolu pro server + public TaskType TaskType { get; set; } // Typ úkolu + public string TaskName { get; set; } // Viditelný název úkolu + public Position TaskLocation { get; set; } // Polohy na mapì + public bool IsCompleted { get; } // Stav dokončení úkolu + void Initialize(Action onCompleted); // Vytvoøení tasku + naètení postupu void ExitTask(Action onExit); // Pøi opuštìní úkolu poslat hotovo / uložit postup / reset @@ -35,6 +39,7 @@ public class Wires : ITask{ { IsCompleted = false; _onCompleted = onCompleted; + } public void ExitTask(Action onExit) //Zavøení tasku { @@ -50,4 +55,19 @@ public class Wires : ITask{ } -*/ \ No newline at end of file +*/ +public enum StationType +{ + Sabotage, + Task, + Meeting, + Body +} +public interface IInteractable +{ + public StationType Type { get; set; } // Typ stanice + public Position Location { get; set; } // Pozice na mapě + public PlayerRole? ReqRole { get; set; } // Požadovaná role hráče Impostor / Crewmate / Any = null + public float InteractionRange { get; set; } // Dosah interakce + void Interact(PlayerRole role); // Spuštění interakce +} \ No newline at end of file diff --git a/Assets/GameManager/ITask.cs.meta b/Assets/GameManager/Interfaces.cs.meta similarity index 100% rename from Assets/GameManager/ITask.cs.meta rename to Assets/GameManager/Interfaces.cs.meta diff --git a/Assets/GameManager/Stations.cs b/Assets/GameManager/Stations.cs new file mode 100644 index 0000000..f067b78 --- /dev/null +++ b/Assets/GameManager/Stations.cs @@ -0,0 +1,83 @@ +using GeoSus.Client; +using System; +using UnityEngine; +using System.Linq; + +public class Station : IInteractable +{ + public StationType Type { get; set; } + public Position Location { get; set; } + public PlayerRole? ReqRole { get; set; } + public float InteractionRange { get; set; } + protected GameObject interfaceInstance; + public GameObject Interface { get; set; } // Prefab pro interakci (napø. UI pro úkol nebo sabotáže) + + public virtual void Interact(PlayerRole role) + { + if (ReqRole.HasValue && role != ReqRole.Value) + { + Debug.Log("You do not have the required role to interact with this station."); + return; + } + else + { + interfaceInstance = UnityEngine.Object.Instantiate(Interface); // Zobrazí interakèní UI + } + + + } + public Station(Position location, float interactionRange) + { + Location = location; + InteractionRange = interactionRange; + } +} +public class TaskStation : Station +{ + public string TaskID { get; set; } // Unikátní ID úkolu pro server + private GameClient _gameClient; + public TaskStation(Position pos, float interactionRange, GameClient gameClient, string taskID) : base(pos, interactionRange) + { + Type = StationType.Task; + ReqRole = PlayerRole.Crew; + _gameClient = gameClient; + } + public ITask Task { get; set; } + public override void Interact(PlayerRole role) + { + if(interfaceInstance != null) + { + ResumeTask(); + return; + } + base.Interact(role); + Task = interfaceInstance.GetComponent(); + Task.TaskID = TaskID; + Task.Initialize(OnTaskCompleted); + } + private void ResumeTask() + { + interfaceInstance.SetActive(true); // Zobrazí interakèní UI + } + private void OnTaskCompleted(ITask task) + { + _gameClient.CompleteTask(task.TaskID); + task.ExitTask(OnTaskExit); + Debug.Log($"Task {task.TaskName} completed and sent to server."); + } + private void OnTaskExit(ITask task) + { + if (task.IsCompleted) + { + UnityEngine.Object.Destroy(interfaceInstance); // Znièí interakèní UI + Debug.Log($"Task {task.TaskName} completed and sent to server."); + } + else + { + interfaceInstance.SetActive(false); // Skryje interakèní UI + Debug.Log($"Task {task.TaskName} was not completed, but exited."); + } + + } + +} diff --git a/Assets/GameManager/Stations.cs.meta b/Assets/GameManager/Stations.cs.meta new file mode 100644 index 0000000..801daa3 --- /dev/null +++ b/Assets/GameManager/Stations.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 0ca1825585bf9bc42bd3b11985048465 \ No newline at end of file diff --git a/Assets/Scenes/Client.unity b/Assets/Scenes/Client.unity index 1a5acba..7118c5f 100644 --- a/Assets/Scenes/Client.unity +++ b/Assets/Scenes/Client.unity @@ -2282,6 +2282,11 @@ MonoBehaviour: DefaultMat: {fileID: 2100000, guid: 5a46533bdf4003449bc9146ccef44e27, type: 2} Player: {fileID: 1161233721} testMode: 1 + AvailableTasks: + - TaskPrefab: {fileID: 0} + Stations: + - Type: 0 + Prefab: {fileID: 0} --- !u!1 &1403738861 GameObject: m_ObjectHideFlags: 0 diff --git a/ProjectSettings/Packages/com.unity.probuilder/Settings.json b/ProjectSettings/Packages/com.unity.probuilder/Settings.json new file mode 100644 index 0000000..e371f41 --- /dev/null +++ b/ProjectSettings/Packages/com.unity.probuilder/Settings.json @@ -0,0 +1,161 @@ +{ + "m_Dictionary": { + "m_DictionaryValues": [ + { + "type": "UnityEngine.ProBuilder.LogLevel, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "log.level", + "value": "{\"m_Value\":3}" + }, + { + "type": "UnityEngine.ProBuilder.LogOutput, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "log.output", + "value": "{\"m_Value\":1}" + }, + { + "type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "log.path", + "value": "{\"m_Value\":\"ProBuilderLog.txt\"}" + }, + { + "type": "UnityEngine.ProBuilder.SemVer, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "about.identifier", + "value": "{\"m_Value\":{\"m_Major\":6,\"m_Minor\":0,\"m_Patch\":9,\"m_Build\":-1,\"m_Type\":\"\",\"m_Metadata\":\"\",\"m_Date\":\"\"}}" + }, + { + "type": "UnityEngine.ProBuilder.SemVer, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "preferences.version", + "value": "{\"m_Value\":{\"m_Major\":6,\"m_Minor\":0,\"m_Patch\":9,\"m_Build\":-1,\"m_Type\":\"\",\"m_Metadata\":\"\",\"m_Date\":\"\"}}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "ShapeComponent.ResetSettings", + "value": "{\"m_Value\":false}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "mesh.newShapesSnapToGrid", + "value": "{\"m_Value\":true}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "mesh.meshColliderIsConvex", + "value": "{\"m_Value\":false}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "lightmapping.autoUnwrapLightmapUV", + "value": "{\"m_Value\":true}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "editor.autoRecalculateCollisions", + "value": "{\"m_Value\":false}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "experimental.enabled", + "value": "{\"m_Value\":false}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "meshImporter.quads", + "value": "{\"m_Value\":true}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "meshImporter.smoothing", + "value": "{\"m_Value\":true}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "editor.autoUpdatePreview", + "value": "{\"m_Value\":false}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "ShapeComponent.SettingsEnabled", + "value": "{\"m_Value\":false}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "editor.backFaceSelectEnabled", + "value": "{\"m_Value\":false}" + }, + { + "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "editor.showSceneInfo", + "value": "{\"m_Value\":false}" + }, + { + "type": "UnityEngine.Material, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "mesh.userMaterial", + "value": "{\"m_Value\":{\"instanceID\":0}}" + }, + { + "type": "UnityEngine.Rendering.ShadowCastingMode, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "mesh.shadowCastingMode", + "value": "{\"m_Value\":1}" + }, + { + "type": "UnityEditor.StaticEditorFlags, UnityEditor.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "mesh.defaultStaticEditorFlags", + "value": "{\"m_Value\":0}" + }, + { + "type": "UnityEngine.ProBuilder.ColliderType, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "mesh.newShapeColliderType", + "value": "{\"m_Value\":2}" + }, + { + "type": "UnityEngine.ProBuilder.UnwrapParameters, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "lightmapping.defaultLightmapUnwrapParameters", + "value": "{\"m_Value\":{\"m_HardAngle\":88.0,\"m_PackMargin\":20.0,\"m_AngleError\":8.0,\"m_AreaError\":15.0}}" + }, + { + "type": "UnityEngine.ProBuilder.SelectMode, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "s_SelectMode", + "value": "{\"m_Value\":4}" + }, + { + "type": "System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "meshImporter.smoothingAngle", + "value": "{\"m_Value\":1.0}" + }, + { + "type": "System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "BevelEdges.size", + "value": "{\"m_Value\":0.20000000298023225}" + }, + { + "type": "System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", + "key": "ShapeBuilder.ActiveShapeIndex", + "value": "{\"m_Value\":6}" + }, + { + "type": "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "ShapeBuilder.LastSize.Cube", + "value": "{\"m_Value\":{\"x\":-1.2792290449142457,\"y\":-15.89394760131836,\"z\":-1.322575569152832}}" + }, + { + "type": "UnityEngine.Quaternion, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "ShapeBuilder.LastRotation.Cube", + "value": "{\"m_Value\":{\"x\":0.0,\"y\":0.0,\"z\":0.0,\"w\":1.0}}" + }, + { + "type": "UnityEngine.ProBuilder.PivotLocation, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "ShapeBuilder.PivotLocation.Cube", + "value": "{\"m_Value\":0}" + }, + { + "type": "UnityEngine.ProBuilder.Shapes.Shape, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "ShapeBuilder.Cube", + "value": "{}" + }, + { + "type": "UnityEngine.ProBuilder.RectSelectMode, Unity.ProBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", + "key": "editor.dragSelectRectMode", + "value": "{\"m_Value\":0}" + } + ] + } +} \ No newline at end of file diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index 6413d11..c7e1ab3 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -2,8 +2,9 @@ %TAG !u! tag:unity3d.com,2011: --- !u!78 &1 TagManager: - serializedVersion: 2 - tags: [] + serializedVersion: 3 + tags: + - Map layers: - Default - TransparentFX @@ -50,27 +51,3 @@ TagManager: - Light Layer 5 - Light Layer 6 - Light Layer 7 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -