107 lines
3.4 KiB
C#
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;
|
|
}
|
|
}
|