using UnityEngine; using AibisDream.UI; using UnityEngine.UI; using System; using TMPro; namespace AibisDream.FixSystem { public class BlockPuzzlePart : MonoBehaviour, IOperatorPanel { private Animator _animator; // ------------------------ 进度条 ------------------------- [Header("进度条")] [SerializeField] private ProgressBar _powerProgressBar; [SerializeField] private ProgressBar _noiseProgressBar; [SerializeField] private ProgressBar _heatProgressBar; public void OnProgressChanged(BlockPuzzleParamValue paramValue) { // 更新进度条 _powerProgressBar.CurrentValue = paramValue.power; _noiseProgressBar.CurrentValue = paramValue.noise; _heatProgressBar.CurrentValue = paramValue.heat; // TODO 更新通过情况 // TODO 更新提示文本 } public void OnRangeChanged(BlockPuzzleParamValue paramValue) { // TODO 更新进度条范围 } // ------------------------ 器件选择 ------------------------- [Header("器件选择")] [SerializeField] private RectTransform _deviceButtonRoot; [SerializeField] private GameObject _deviceItemPrefab; public event Action OnDeviceSelected; private void InitDeviceList() { // TODO: 初始化器件列表 } public void OnDeviceRecycle(BlockShape blockShape) { // TODO: 播放回收动画 AddDeviceButton(blockShape.BlockShapeData.blockShapeInfo); } public void OnDeviceRemove(BlockShape blockShape) { // 从传送带获取器件时移除面板上的器件信息 Destroy(blockShape.gameObject); RemoveDeviceButton(blockShape.BlockShapeData.shapeName); } private void AddDeviceButton(BlockShapeInfo blockShapeInfo) { var button = Instantiate(_deviceItemPrefab, _deviceButtonRoot); button.gameObject.name = blockShapeInfo.shapeName; button.GetComponentInChildren().text = blockShapeInfo.shapeName; button.GetComponentInChildren().sprite = blockShapeInfo.GetButtonImage(); button.GetComponent