// using System.Collections.Generic; // using Cinemachine; // using Sirenix.OdinInspector; // using UnityEngine; // // // ReSharper disable once CheckNamespace // namespace BlueWaterProject // { // public class IslandInfo : MonoBehaviour // { // #region Property and variable // // [field: SerializeField] public string IslandName { get; private set; } // // [field: SerializeField] public List HouseList { get; private set; } // // [field: SerializeField] public List TowerList { get; private set; } // // [field: SerializeField] public List UnitList { get; private set; } // // [field: SerializeField] public List EnemyList { get; private set; } // // [field: SerializeField] public List ExceptHouseList { get; private set; } // // [field: SerializeField] public List TargetAllList { get; private set; } // // [field: SerializeField] public CinemachineFreeLook IslandCam { get; private set; } // // #endregion // // #region Unity built-in Function // // private void Awake() // { // InitIslandInfo(); // } // // #endregion // // #region Custom function // // [GUIColor(0, 1, 0)] // [Button("섬 정보 추출")] // private void InitIslandInfo() // { // HouseList = new List(5); // var houses = transform.Find("Houses"); // if (houses && houses.gameObject.activeSelf) // { // foreach (Transform house in houses) // { // // if (!house.CompareTag("House") || !house.gameObject.activeSelf) continue; // // // // var houseInfo = house.GetComponent(); // // houseInfo.SetIslandInfo(this); // // HouseList.Add(houseInfo.transform); // } // } // // TowerList = new List(20); // var towers = transform.Find("Towers"); // if (towers && towers.gameObject.activeSelf) // { // foreach (Transform tower in towers) // { // if (!tower.CompareTag("Tower") || !tower.gameObject.activeSelf) continue; // // var towerAi = tower.GetComponent(); // towerAi.SetDefendingIslandInfo(this); // TowerList.Add(towerAi.transform); // } // } // // UnitList = new List(20); // EnemyList = new List(UnitList.Capacity * 16); // var units = transform.Find("Units"); // if (units && units.gameObject.activeSelf) // { // foreach (Transform unit in units) // { // if (!unit.CompareTag("Unit") || !unit.gameObject.activeSelf) continue; // // UnitList.Add(unit.GetComponent()); // } // // foreach (var unit in UnitList) // { // foreach (Transform enemy in unit.transform) // { // if (!enemy.gameObject.activeSelf) continue; // // var combatAi = enemy.GetComponent(); // combatAi.SetDefendingIslandInfo(this); // EnemyList.Add(enemy); // } // } // } // // ExceptHouseList = new List(TowerList.Capacity + EnemyList.Capacity); // foreach (var enemy in EnemyList) // { // ExceptHouseList.Add(enemy); // } // // foreach (var tower in TowerList) // { // ExceptHouseList.Add(tower); // } // // TargetAllList = new List(HouseList.Capacity + TowerList.Capacity + EnemyList.Capacity); // foreach (var enemy in EnemyList) // { // TargetAllList.Add(enemy); // } // // foreach (var house in HouseList) // { // TargetAllList.Add(house); // } // // foreach (var tower in TowerList) // { // TargetAllList.Add(tower); // } // // IslandCam = transform.Find("IslandCam").GetComponent(); // } // // public void RemoveListElement(List list, Transform element) // { // if (list.Contains(element)) // { // list.Remove(element); // } // // if (TargetAllList.Contains(element)) // { // TargetAllList.Remove(element); // } // } // // #endregion // } // }