using Godot; using System; namespace BITKit; [Tool] public partial class ProductionAnimation : ScriptableAnimation { [Export] protected ProgressBar progressBar; [Export] protected Godot.Collections.Array visibleNodes; protected override void OnSetValue(float newValue) { if (Engine.IsEditorHint()) return; if (progressBar is null) { throw new Exception($"ProgressBar is Null"); } for (var i = 0; i < visibleNodes.Count; i++) { var currentNode =GetNode( visibleNodes[i]); var threshold = (i+1) / (float)visibleNodes.Count * 100; //GD.Print($"当前Node:{currentNode.Name},阈值{threshold} / {newValue}"); if (threshold <= newValue) { currentNode.Show(); } else { currentNode.Hide(); } } progressBar.Value = newValue; } }