From 38390e7ded71f8f9cc888920df2d49029ff1d580 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=A8=E8=90=BD=E5=9F=BA=E5=9B=B4=E8=99=BE?= <3161880837@qq.com> Date: Sat, 6 Sep 2025 15:46:39 +0800 Subject: [PATCH] =?UTF-8?q?fix(SkillIcon):=20=E4=BF=AE=E5=A4=8D=E6=8A=80?= =?UTF-8?q?=E8=83=BD=E5=9B=BE=E6=A0=87=E5=86=B7=E5=8D=B4=E8=BF=9B=E5=BA=A6?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整ShaderMaterial的默认progress值为0.5以匹配实际冷却状态 在_ready中复制材质实例避免共享材质引用 分离progress计算逻辑提高可读性 --- components/Abstracts/SkillIconBase.tscn | 2 +- scripts/Statemachine/SkillIcon.gd | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/components/Abstracts/SkillIconBase.tscn b/components/Abstracts/SkillIconBase.tscn index dc5a773..216a63d 100644 --- a/components/Abstracts/SkillIconBase.tscn +++ b/components/Abstracts/SkillIconBase.tscn @@ -17,7 +17,7 @@ corner_radius_bottom_left = 15 [sub_resource type="ShaderMaterial" id="ShaderMaterial_ew32n"] shader = ExtResource("1_jaivk") -shader_parameter/progress = 0.25 +shader_parameter/progress = 0.5 shader_parameter/backAlpha = 0.25 [node name="SkillIconBase" type="PanelContainer"] diff --git a/scripts/Statemachine/SkillIcon.gd b/scripts/Statemachine/SkillIcon.gd index 36d6d8e..73d5074 100644 --- a/scripts/Statemachine/SkillIcon.gd +++ b/scripts/Statemachine/SkillIcon.gd @@ -3,9 +3,12 @@ class_name SkillIcon @export var weapon: Weapon = null; -@onready var textureRect = $"%texture" +@onready var textureRect: TextureRect = $"%texture" +func _ready(): + textureRect.material = textureRect.material.duplicate() func _physics_process(_delta): if is_instance_valid(weapon): textureRect.texture = weapon.avatarTexture - textureRect.material.set_shader_parameter("progress", clamp(weapon.cooldownTimer.timeSinceLastStart() / weapon.cooldownTimer.cooldown, 0, 1)) + var progress = weapon.cooldownTimer.timeSinceLastStart() / weapon.cooldownTimer.cooldown + textureRect.material.set_shader_parameter("progress", clamp(progress, 0, 1))