using System; using System.Collections.Generic; using UnityEngine; [System.Serializable] public class PlayerBaseData { public PlayerTypes playerType; public PlayerBase playerBase; } public class PlayerBaseHandler : MonoBehaviour { [SerializeField] private PlayerBase[] playerBases; private Dictionary playerBasesDict = new Dictionary(); public void InitPlayerTypes(List playerTypes) { foreach (PlayerBase playerBase in playerBases) { if (playerTypes.Contains(playerBase.GetPlayerType())) { playerBase.InitPlayerData(); playerBase.gameObject.SetActive(true); if (!playerBasesDict.ContainsKey(playerBase.GetPlayerType())) playerBasesDict.Add(playerBase.GetPlayerType(), playerBase); else playerBasesDict[playerBase.GetPlayerType()] = playerBase; } else { playerBase.gameObject.SetActive(false); } } } public PlayerBase GetPlayerBase(PlayerTypes playerType) { return playerBasesDict[playerType]; } }