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 PlayerTypes playerType;
|
|
public PlayerBase playerBase;
|
|
}
|
|
|
|
public class PlayerBaseHandler : MonoBehaviour
|
|
{
|
|
[SerializeField] private PlayerBase[] playerBases;
|
|
|
|
private Dictionary<PlayerTypes, PlayerBase> playerBasesDict = new Dictionary<PlayerTypes, PlayerBase>();
|
|
|
|
public void InitPlayerTypes(List<PlayerTypes> 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];
|
|
}
|
|
}
|