Files
Cielonos/Assets/Scripts/MainGame/UI/PlayerUI/MainWeapon/MainWeaponUIArea.cs
SoulliesOfficial f26f9fd374 爆更
2026-03-20 12:07:44 -04:00

58 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using Cielonos.MainGame.Characters.Inventory;
using SLSUtilities.UI;
using UnityEngine;
namespace Cielonos.MainGame.UI
{
public class MainWeaponUIArea : UIElementBase
{
public MainWeaponBase mainWeapon;
public GameObject functionIconPrefab;
public RectTransform functionIconContainer;
public MainWeaponDisplayer displayer;
public List<MainWeaponFunctionIcon> functionIcons;
private void Awake()
{
functionIcons = new List<MainWeaponFunctionIcon>();
}
public void Initialize(MainWeaponBase mainWeapon)
{
this.mainWeapon = mainWeapon;
Sprite rectIcon = mainWeapon.contentData.rectIcon;
string weaponName = mainWeapon.contentData.className;
displayer.Initialize(rectIcon, weaponName);
ClearIcons();
foreach (KeyValuePair<string, RuntimeFunctionUnit> unit in mainWeapon.functionSm.functionUnits)
{
if (!unit.Value.data.shownInUI) continue;
MainWeaponFunctionIcon icon = Instantiate(functionIconPrefab, functionIconContainer).GetComponent<MainWeaponFunctionIcon>();
icon.Initialize(unit.Value);
functionIcons.Add(icon);
}
}
private void Update()
{
functionIcons.ForEach(icon => icon.UpdateUI());
}
private void ClearIcons()
{
foreach (MainWeaponFunctionIcon icon in functionIcons)
{
Destroy(icon.gameObject);
}
functionIcons.Clear();
}
}
}