using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(fileName = "HomeMapSO", menuName = "GameData/HomeMap")] public class HomeMapSO : ScriptableObject { public Vector2Int map_size = new Vector2Int(10, 10); public List grid_list = new List(); // enum public enum RoomType { None, BugStatueRoom, } // serializable [System.Serializable] public class GridData { public Vector2Int position; public bool is_activation; public int room_id; public RoomType room_type; } // function // 生成默认地图数据 public void initialize_map_data() { grid_list.Clear(); for (var x = -map_size.x / 2; x <= map_size.x / 2; x++) { for (var y = -map_size.y / 2; y <= map_size.y / 2; y++) { grid_list.Add(new GridData { position = new Vector2Int(x, y), is_activation = false, room_id = -1 }); } } } // 获取某个位置的数据 public GridData get_data_by_position(Vector2Int position) { return grid_list.Find(item => item.position == position); } // 标记建造点 public void create_room(Vector2Int position, int id, RoomType room_type) { var grid = get_data_by_position(position); grid.is_activation = true; grid.room_id = id; grid.room_type = room_type; } }