【编队】修改编队节点加载方式

main
chenyuqi 2023-10-30 13:36:12 +08:00
parent b0fee28670
commit 1a4fb1f04f
5 changed files with 9 additions and 49 deletions

View File

@ -19,7 +19,6 @@ public class TeamEditManager : Singlenton<TeamEditManager>, IInitable
private List<Team> _teamList;
private Team _selectTeam;
private TeamPreviewNode _teamPreviewNode;
public static readonly List<string> PreviewNodeOpenList = new List<string>();
public List<Team> TeamList => _teamList;
public TeamPreviewNode TeamPreviewNode => _teamPreviewNode;
@ -134,30 +133,20 @@ public class TeamEditManager : Singlenton<TeamEditManager>, IInitable
NetHelper.CreateTeam((uint)team.TeamIndex, team.Name, (uint)team.IconNumber, charIds, team.GetVehicleID());
}
public async UniTask LoadTeamPreviewNode(int teamIdx, string openPanel = "")
public async UniTask LoadTeamPreviewNode(int teamIdx)
{
if (string.IsNullOrEmpty(openPanel))
{
DebugUtil.LogError("----- 请传入打开TeamPreviewNode的界面名-----");
}
SetRawImageRect(Screen.width, Screen.height);
if (_teamPreviewNode && PreviewNodeOpenList.Count > 0)
if (_teamPreviewNode)
{
RefreshPreviewNode(teamIdx);
}
if (!PreviewNodeOpenList.Contains(openPanel))
{
PreviewNodeOpenList.Add(openPanel);
return;
}
await LoadNewTeamPreviewNode(teamIdx);
}
public async UniTask LoadNewTeamPreviewNode(int teamIdx)
{
DoReleaseTeamPreviewNode();
ReleaseTeamPreviewNode();
var team = _teamList[teamIdx];
var charIDs = team.GetCharacterIDs();
@ -184,22 +173,7 @@ public class TeamEditManager : Singlenton<TeamEditManager>, IInitable
}
}
public void ReleaseTeamPreviewNode(string releasePanel = "")
{
if (string.IsNullOrEmpty(releasePanel))
{
DebugUtil.LogError("----- 请传入释放TeamPreviewNode的界面名-----");
}
PreviewNodeOpenList.Remove(releasePanel);
if (_teamPreviewNode && PreviewNodeOpenList.Count <= 0)
{
DoReleaseTeamPreviewNode();
}
}
private void DoReleaseTeamPreviewNode()
public void ReleaseTeamPreviewNode()
{
if (_teamPreviewNode)
{

View File

@ -31,8 +31,6 @@ public class TeamPreviewNode: MonoBehaviour
private bool _isLoading;
private int _teamIdx;
private bool _isReleasing;
private RenderTexture _rTexture;
private void Awake()
@ -61,11 +59,8 @@ public class TeamPreviewNode: MonoBehaviour
Destroy(node.gameObject);
}
public void RefreshNode(int teamIdx)
public void RefreshNode(int teamIdx, uint[] charIDs, uint vehicleID)
{
var team = TeamEditManager.Instance.GetTeamByIndex((uint)teamIdx);
var charIDs = team.GetCharacterIDs();
var vehicleID = team.GetVehicleID();
ClearObjs();
SetData(teamIdx, charIDs, vehicleID);
CreateObjs();
@ -206,11 +201,6 @@ public class TeamPreviewNode: MonoBehaviour
if (data != null)
{
var prefab = await AssetManager.Instance.LoadAssetAsync<GameObject>(data.DisplayPrefabPath);
if (!trans)
{
return;
}
var go = Instantiate(prefab, trans.position, trans.rotation, cRoot.transform);
if (go)
{
@ -267,10 +257,6 @@ public class TeamPreviewNode: MonoBehaviour
{
var trans = vehiclePos;
var prefab = await AssetManager.Instance.LoadAssetAsync<GameObject>(vehicleData.Cfg.PrefabPath);
if (!trans)
{
return;
}
var go = Instantiate(prefab, trans.position, trans.rotation, vRoot.transform);
if (go)
{

View File

@ -161,7 +161,7 @@ public class UI_TeamChooseController : UIWindow
async void OnClickItem(int idx)
{
Team team = TeamEditManager.Instance.TeamList[idx];
await TeamEditManager.Instance.LoadTeamPreviewNode(idx, UINameConst.UITeamInfo);
await TeamEditManager.Instance.LoadTeamPreviewNode(idx);
await UIManager.Instance.OpenWindow(UINameConst.UITeamInfo, team);
}

View File

@ -122,7 +122,7 @@ public class UI_TeamInfoController : UIWindow
private void OnBackClick()
{
UIManager.Instance.CloseWindow(WindowName);
TeamEditManager.Instance.ReleaseTeamPreviewNode(UINameConst.UITeamInfo);
TeamEditManager.Instance.ReleaseTeamPreviewNode();
}
private async void OnClickCharHead(int idx)

View File

@ -117,7 +117,7 @@ public class UI_BeforeFightController : UIWindow
private async void RefreshScene()
{
await TeamEditManager.Instance.LoadTeamPreviewNode(_currTeamIndex, UINameConst.UI_BeforeFight);
await TeamEditManager.Instance.LoadTeamPreviewNode(_currTeamIndex);
var previewNode = TeamEditManager.Instance.TeamPreviewNode;
GetComponent<RawImage>().texture = previewNode.RTexture;
}