yyl
2026-03-04 bc1cb6da854cb2e9144f10ed55330a537ecdca16
Main/System/Battle/BattleObject/BattleObjMgr.cs
@@ -3,6 +3,7 @@
using System.Collections.Generic;
using UnityEngine;
using System.Linq;
using Cysharp.Threading.Tasks;
public class BattleObjMgr
{
@@ -20,26 +21,26 @@
    protected BattleField battleField;
    public void Init(BattleField _battleField, TeamBase _redTeam, TeamBase _blueTeam)
    public async UniTask Init(BattleField _battleField, TeamBase _redTeam, TeamBase _blueTeam)
    {
        Reload(_battleField, _redTeam, _blueTeam);
        await Reload(_battleField, _redTeam, _blueTeam);
    }
    public void Reload(BattleField _battleField, TeamBase _redTeam, TeamBase _blueTeam)
    public async UniTask Reload(BattleField _battleField, TeamBase _redTeam, TeamBase _blueTeam)
    {
        Release();
        battleField = _battleField;
        ReloadTeam(_redTeam, BattleCamp.Red);
        ReloadTeam(_blueTeam, BattleCamp.Blue, false);    }
        await ReloadTeam(_redTeam, BattleCamp.Red);
        await ReloadTeam(_blueTeam, BattleCamp.Blue, false);    }
    public void ReloadTeam(TeamBase teamBase, BattleCamp _camp, bool active = true)
    public async UniTask ReloadTeam(TeamBase teamBase, BattleCamp _camp, bool active = true)
    {
        var posNodeList = _camp == BattleCamp.Red ? battleField.battleRootNode.redTeamNodeList : battleField.battleRootNode.blueTeamNodeList;
        var campDict = _camp == BattleCamp.Red ? redCampDict : blueCampDict;
        CreateTeam(posNodeList, campDict, teamBase, _camp, active);
        await CreateTeam(posNodeList, campDict, teamBase, _camp, active);
    }
    protected void CreateTeam(List<GameObject> posNodeList, Dictionary<int, BattleObject> campDict, TeamBase teamBase, BattleCamp _Camp, bool active)
    protected async UniTask CreateTeam(List<GameObject> posNodeList, Dictionary<int, BattleObject> campDict, TeamBase teamBase, BattleCamp _Camp, bool active)
    {
        DestroyTeam(campDict);
        if (teamBase == null)
@@ -53,7 +54,7 @@
            TeamHero teamHero = teamBase.serverHeroes[i];
            if (teamHero != null)
            {
                BattleObject battleObj = BattleObjectFactory.CreateBattleObject(battleField, posNodeList, teamHero, _Camp);
                BattleObject battleObj = await BattleObjectFactory.CreateBattleObjectAsync(battleField, posNodeList, teamHero, _Camp);
                battleObj.SetActive(active);
                allBattleObjDict.Add(battleObj.ObjID, battleObj);
                campDict.Add(battleObj.GetPositionNum(), battleObj);