using System.Collections.Generic; namespace Game.Player; public class PlayerManager : ManagerBase, IPlayerManager { private Dictionary _players = new Dictionary(); private IPlayer _currentPlayer; public IPlayer currentPlayer => this._currentPlayer; public void SetCurrentPlayer(IPlayer player) { this._currentPlayer ??= player; } public IPlayer CreatePlayer(string playerName, string assetName, float jinbei) { var gameObject = Game.resourceManager.LoadGameObjectSync(assetName); IPlayer player = new Player(); player.SetGameObject(gameObject, playerName, jinbei); this._players.Add(playerName, player); return player; } public IPlayer GetPlayer(string playerName) { return this._players.GetValueOrDefault(playerName); } public void DeletePlayer(string playerName) { if (this._players.TryGetValue(playerName, out var player)) { player.Dispose(); } } } public interface IPlayerManager { IPlayer currentPlayer { get; } void SetCurrentPlayer(IPlayer player); // IPlayer CreatePlayer(string playerName, string assetName, float jinbei); IPlayer GetPlayer(string playerName); void DeletePlayer(string playerName); }