Files
5.24BuYu/Assets/MyGame/aa/UI/Game/Sub/HHWKTuJianPanel.cs
T
2026-09-09 01:49:49 +08:00

107 lines
3.4 KiB
C#

using Assets.MyGame.Scripts.Net.API.GameConfig_SubClass;
using Assets.MyGame.Scripts.Net.APIResponses.Enum;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class HHWKTuJianPanel : SubUIBase
{
public Toggle toggle_PuTong;
[Header("普通鱼 - Item1 预制体")]
public TuJianItem prefab_Item1;
[Header("黄金鱼/特殊鱼/Boss/特殊Boss - Item2 预制体")]
public TuJianItem prefab_Item2;
[Header("分类父节点")]
public Transform parent_普通鱼;
public Transform parent_黄金鱼;
public Transform parent_特殊鱼;
public Transform parent_Boss鱼;
public Transform parent_特殊Boss鱼;
[Header("滚动视图")]
public ScrollRect scrollRect;
public override void Awake()
{
base.Awake();
var addedFishNumbers = new HashSet<string>();
var v = CreateFishManager.Instance.spawnList;
foreach (var item in v)
{
if (item.type == 2)
{
// 鱼阵条目:fishNumber 存的是鱼阵编号,解析出阵内实际生成的鱼再加入图鉴
if (CreateFishManager.Instance.FishArrayDatas.TryGetValue(item.fishNumber, out var yz))
AddFishItem(yz.fishNumber, addedFishNumbers);
}
else
{
AddFishItem(item.fishNumber, addedFishNumbers, item);
}
}
// 加载完毕后滚动到最上方
if (scrollRect != null)
scrollRect.normalizedPosition = new Vector2(0, 1);
}
private void AddFishItem(string fishNumber, HashSet<string> addedFishNumbers, RoomFishDetailConfig detail = null)
{
if (string.IsNullOrEmpty(fishNumber) || !addedFishNumbers.Add(fishNumber))
return;
if (!GameManager.Instance.dic_fishTypeConfigs.TryGetValue(fishNumber, out var cfg))
return;
TuJianItem prefabToUse;
Transform parentToUse;
bool isGuDingBeiShu=true;
int fishType = cfg.fishType;
switch ((FishTypeEnum)fishType)
{
case FishTypeEnum.普通鱼:
prefabToUse = prefab_Item1;
parentToUse = parent_普通鱼;
break;
case FishTypeEnum.黄金鱼:
prefabToUse = prefab_Item2;
parentToUse = parent_黄金鱼;
break;
case FishTypeEnum.特殊鱼:
prefabToUse = prefab_Item2;
parentToUse = parent_特殊鱼;
isGuDingBeiShu = false;
break;
case FishTypeEnum.Boss鱼:
prefabToUse = prefab_Item2;
parentToUse = parent_Boss鱼;
isGuDingBeiShu = false;
break;
case FishTypeEnum.特殊Boss:
prefabToUse = prefab_Item2;
parentToUse = parent_特殊Boss鱼;
isGuDingBeiShu = false;
break;
default:
return;
}
if (prefabToUse != null && parentToUse != null)
{
if (detail == null)
detail = new RoomFishDetailConfig { fishNumber = fishNumber };
Instantiate(prefabToUse.gameObject, parentToUse).GetComponent<TuJianItem>().InItItem(detail, isGuDingBeiShu);
}
}
protected override void OnShow(object args = null)
{
base.OnShow(args);
toggle_PuTong.isOn = true;
}
}