44 lines
1.2 KiB
C#
44 lines
1.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
[System.Serializable]
|
|
public class PlayerBaseData
|
|
{
|
|
public PlayerType playerType;
|
|
public PlayerBase playerBase;
|
|
}
|
|
|
|
public class PlayerBaseHandler : MonoBehaviour
|
|
{
|
|
[SerializeField] private PlayerBase[] playerBases;
|
|
|
|
private Dictionary<PlayerType, PlayerBase> playerBasesDict = new Dictionary<PlayerType, PlayerBase>();
|
|
|
|
public void InitPlayerTypes(List<PlayerType> 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(PlayerType playerType)
|
|
{
|
|
return playerBasesDict[playerType];
|
|
}
|
|
}
|