1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-06-03 18:27:13 +08:00

fix(BulletBase): 修复子弹分裂和折射时的空引用问题

确保在子弹分裂和折射时检查返回的子弹对象是否有效,避免空引用异常
This commit is contained in:
2026-03-22 08:16:35 +08:00
parent 7d6e396985
commit 3089af3ea0
4 changed files with 17 additions and 5 deletions
+7 -2
View File
@@ -37,6 +37,7 @@ var initialSpeed: float = 0
var initialDamage: float = 0
var speedScale: float = 1
var isFirstFrame: bool = true
var cycleStateAngle: float = 0
func _ready():
initialSpeed = speed
@@ -182,7 +183,9 @@ func trySplit():
cloned.launcher = launcher
if is_instance_valid(parent):
cloned.parent = parent
get_parent().add_child.call_deferred(split(cloned, i, total, last))
var splited = split(cloned, i, total, last)
if !is_instance_valid(splited): continue
get_parent().add_child.call_deferred(splited)
func tryRefract():
if is_instance_valid(launcher) and canDuplicateSelf:
var value = launcher.fields.get(FieldStore.Entity.BULLET_REFRACTION)
@@ -204,7 +207,9 @@ func tryRefract():
cloned.launcher = launcher
if is_instance_valid(parent):
cloned.parent = parent
get_parent().add_child.call_deferred(refract(cloned, entity, i, total, last))
var refracted = refract(cloned, entity, i, total, last)
if !is_instance_valid(refracted): continue
get_parent().add_child.call_deferred(refracted)
# 抽象方法
func firstFrame():