This commit is contained in:
2025-06-26 21:02:29 +08:00
parent 578387269a
commit 14089f66be
12 changed files with 3233 additions and 2817 deletions
@@ -74,10 +74,21 @@ namespace AibisDream
{
if (gearFollower != null)
{
// 停止所有DOTween动画
if (gearFollower.gameObject != null)
{
DOTween.Kill(gearFollower.gameObject);
}
gearFollower.ClearCutLine();
Destroy(gearFollower.gameObject);
DestroyImmediate(gearFollower.gameObject);
gearFollower = null;
}
// 重置状态
isCuttingMode = false;
isEntranceComplete = false;
isGearActive = false;
}
private void ActivateGear()
@@ -266,8 +277,25 @@ namespace AibisDream
_targetModule.StopCutTextFlicker();
}
// 清理GearFollower
if (gearFollower != null)
{
// 停止所有DOTween动画
if (gearFollower.gameObject != null)
{
DOTween.Kill(gearFollower.gameObject);
}
// 强制销毁GearFollower
DestroyImmediate(gearFollower.gameObject);
gearFollower = null;
}
if (entrancePanel != null)
{
// 停止面板的DOTween动画
DOTween.Kill(entrancePanel);
// 获取当前相机位置
Vector3 startPosition = GetPanelSpawnPosition();
@@ -277,14 +305,46 @@ namespace AibisDream
.OnComplete(() => {
Destroy(entrancePanel);
entrancePanel = null;
gearFollower = null;
});
}
else if (gearFollower != null)
}
private void OnDestroy()
{
// 从系统字典中注销
FixSystemCenter.SystemDic.Unregister<CuttingManager>();
// 清理相机注册
CameraKit.Instance.UnRegisterCamera(CameraEnum.CutEmo);
CameraKit.Instance.UnRegisterCamera(CameraEnum.CutMemory);
CameraKit.Instance.UnRegisterCamera(CameraEnum.CutLogic);
CameraKit.Instance.UnRegisterCamera(CameraEnum.CutEmoDeep);
CameraKit.Instance.UnRegisterCamera(CameraEnum.CutMemoryDeep);
CameraKit.Instance.UnRegisterCamera(CameraEnum.CutLogicDeep);
// 强制清理所有相关对象
if (gearFollower != null)
{
Destroy(gearFollower.gameObject);
// 如果gearFollower还在运行,强制停止
if (gearFollower.gameObject != null)
{
DestroyImmediate(gearFollower.gameObject);
}
gearFollower = null;
}
if (entrancePanel != null)
{
DestroyImmediate(entrancePanel);
entrancePanel = null;
}
// 重置状态
isCuttingMode = false;
isEntranceComplete = false;
isGearActive = false;
_targetModule = null;
_targetSpriteRenderer = null;
}
}
}