From d1a7de02292538d42d45ddf77c4aebaa5f04f8e7 Mon Sep 17 00:00:00 2001 From: Jiaqi Liu Date: Sun, 30 Jul 2023 02:55:42 -0700 Subject: [PATCH] Fix a bug that might be caused by a delayed destroy --- Assets/Scripts/Pal3/Actor/ActorActionController.cs | 3 +++ .../Pal3/Actor/SkeletalAnimationActorActionController.cs | 7 +------ .../Pal3/Actor/VertexAnimationActorActionController.cs | 7 +------ Assets/Scripts/Pal3/Scene/SceneManager.cs | 7 ++++++- .../Scripts/Pal3/Scene/SceneObjects/AutoTriggerObject.cs | 1 + Assets/Scripts/Pal3/Scene/SceneObjects/CollidableObject.cs | 2 ++ .../Scene/SceneObjects/Common/BoundsTriggerController.cs | 1 + .../Scene/SceneObjects/Common/SceneObjectMeshCollider.cs | 1 + .../SceneObjects/Common/StandingPlatformController.cs | 1 + .../Pal3/Scene/SceneObjects/DivineTreeFlowerObject.cs | 1 + .../Pal3/Scene/SceneObjects/DivineTreePortalObject.cs | 1 + .../Scripts/Pal3/Scene/SceneObjects/ElevatorDoorObject.cs | 1 + Assets/Scripts/Pal3/Scene/SceneObjects/ElevatorObject.cs | 1 + .../Scripts/Pal3/Scene/SceneObjects/ElevatorPedalObject.cs | 1 + .../Pal3/Scene/SceneObjects/FallableObstacleObject.cs | 2 ++ .../Scripts/Pal3/Scene/SceneObjects/GeneralSceneObject.cs | 1 + .../Scripts/Pal3/Scene/SceneObjects/GravitySwitchObject.cs | 1 + .../Scripts/Pal3/Scene/SceneObjects/JumpableAreaObject.cs | 1 + .../Pal3/Scene/SceneObjects/LiftingPlatformObject.cs | 2 ++ .../Pal3/Scene/SceneObjects/MovableCarrierObject.cs | 1 + .../Pal3/Scene/SceneObjects/MushroomBridgeObject.cs | 1 + .../Scripts/Pal3/Scene/SceneObjects/PedalSwitchObject.cs | 1 + .../Scripts/Pal3/Scene/SceneObjects/PiranhaFlowerObject.cs | 1 + Assets/Scripts/Pal3/Scene/SceneObjects/PushableObject.cs | 1 + Assets/Scripts/Pal3/Scene/SceneObjects/RareChestObject.cs | 1 + .../Pal3/Scene/SceneObjects/RetractableBlockerObject.cs | 1 + .../Pal3/Scene/SceneObjects/RoadElevatorOrBlockerObject.cs | 2 ++ .../Pal3/Scene/SceneObjects/RotatingBridgeObject.cs | 1 + .../Scripts/Pal3/Scene/SceneObjects/RotatingWallObject.cs | 3 +++ Assets/Scripts/Pal3/Scene/SceneObjects/SceneObject.cs | 1 + .../Scripts/Pal3/Scene/SceneObjects/SectorBridgeObject.cs | 1 + .../Scripts/Pal3/Scene/SceneObjects/SpecialSwitchObject.cs | 1 + .../Pal3/Scene/SceneObjects/StaticOrAnimatedObject.cs | 1 + .../Pal3/Scene/SceneObjects/SuspensionBridgeObject.cs | 1 + Assets/Scripts/Pal3/Scene/SceneObjects/SwitchObject.cs | 4 ++++ .../Scripts/Pal3/Scene/SceneObjects/SwordBridgeObject.cs | 1 + .../Pal3/Scene/SceneObjects/ThreePhaseBridgeObject.cs | 1 + .../Pal3/Scene/SceneObjects/ThreePhaseSwitchObject.cs | 1 + .../Scripts/Pal3/Scene/SceneObjects/ToggleSwitchObject.cs | 1 + Assets/Scripts/Pal3/Scene/SceneObjects/TrapObject.cs | 1 + .../Scripts/Pal3/Scene/SceneObjects/WulingSwitchObject.cs | 2 ++ Assets/Scripts/Pal3/UI/RoundedFrostedGlassImage.cs | 2 +- 42 files changed, 59 insertions(+), 14 deletions(-) diff --git a/Assets/Scripts/Pal3/Actor/ActorActionController.cs b/Assets/Scripts/Pal3/Actor/ActorActionController.cs index b79bea246..88ef0a62d 100644 --- a/Assets/Scripts/Pal3/Actor/ActorActionController.cs +++ b/Assets/Scripts/Pal3/Actor/ActorActionController.cs @@ -140,16 +140,19 @@ internal virtual void DeActivate() if (_shadow != null) { Destroy(_shadow); + _shadow = null; } if (_rigidbody != null) { Destroy(_rigidbody); + _rigidbody = null; } if (_collider != null) { Destroy(_collider); + _collider = null; } } diff --git a/Assets/Scripts/Pal3/Actor/SkeletalAnimationActorActionController.cs b/Assets/Scripts/Pal3/Actor/SkeletalAnimationActorActionController.cs index ab3f70ebf..bafbe46e5 100644 --- a/Assets/Scripts/Pal3/Actor/SkeletalAnimationActorActionController.cs +++ b/Assets/Scripts/Pal3/Actor/SkeletalAnimationActorActionController.cs @@ -148,6 +148,7 @@ internal override void DisposeCurrentAction() if (_skeletalModelRenderer != null) { _skeletalModelRenderer.Dispose(); + _skeletalModelRenderer = null; } base.DisposeCurrentAction(); @@ -156,12 +157,6 @@ internal override void DisposeCurrentAction() internal override void DeActivate() { DisposeCurrentAction(); - - if (_skeletalModelRenderer != null) - { - Destroy(_skeletalModelRenderer); - } - base.DeActivate(); } diff --git a/Assets/Scripts/Pal3/Actor/VertexAnimationActorActionController.cs b/Assets/Scripts/Pal3/Actor/VertexAnimationActorActionController.cs index 04f467b64..a3b414bd0 100644 --- a/Assets/Scripts/Pal3/Actor/VertexAnimationActorActionController.cs +++ b/Assets/Scripts/Pal3/Actor/VertexAnimationActorActionController.cs @@ -221,6 +221,7 @@ internal override void DisposeCurrentAction() { _mv3ModelRenderer.AnimationLoopPointReached -= AnimationLoopPointReached; _mv3ModelRenderer.Dispose(); + _mv3ModelRenderer = null; } base.DisposeCurrentAction(); @@ -229,12 +230,6 @@ internal override void DisposeCurrentAction() internal override void DeActivate() { DisposeCurrentAction(); - - if (_mv3ModelRenderer != null) - { - Destroy(_mv3ModelRenderer); - } - base.DeActivate(); } diff --git a/Assets/Scripts/Pal3/Scene/SceneManager.cs b/Assets/Scripts/Pal3/Scene/SceneManager.cs index ccd9dbb88..4fb99e5a4 100644 --- a/Assets/Scripts/Pal3/Scene/SceneManager.cs +++ b/Assets/Scripts/Pal3/Scene/SceneManager.cs @@ -113,9 +113,14 @@ private void DisposeCurrentScene() { CommandDispatcher.Instance.Dispatch(new SceneLeavingCurrentSceneNotification()); Object.Destroy(_currentScene); - Object.Destroy(_currentSceneRoot); _currentScene = null; } + + if (_currentSceneRoot != null) + { + Object.Destroy(_currentSceneRoot); + _currentSceneRoot = null; + } } public void Execute(SceneLoadCommand command) diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/AutoTriggerObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/AutoTriggerObject.cs index 6da7ea803..62535a721 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/AutoTriggerObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/AutoTriggerObject.cs @@ -103,6 +103,7 @@ public override void Deactivate() { _triggerController.OnPlayerActorEntered -= OnPlayerActorEntered; Object.Destroy(_triggerController); + _triggerController = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/CollidableObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/CollidableObject.cs index 72c048b7c..7be19dba3 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/CollidableObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/CollidableObject.cs @@ -112,11 +112,13 @@ public override void Deactivate() _triggerController.OnPlayerActorEntered -= OnPlayerActorEntered; _triggerController.OnPlayerActorExited -= OnPlayerActorExited; Object.Destroy(_triggerController); + _triggerController = null; } if (_meshCollider != null) { Object.Destroy(_meshCollider); + _meshCollider = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/Common/BoundsTriggerController.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/Common/BoundsTriggerController.cs index ef3195ba3..90ded0ad4 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/Common/BoundsTriggerController.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/Common/BoundsTriggerController.cs @@ -43,6 +43,7 @@ private void OnDisable() if (_collider != null) { Destroy(_collider); + _collider = null; } } diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/Common/SceneObjectMeshCollider.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/Common/SceneObjectMeshCollider.cs index 6cc91c09c..aeee53d6f 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/Common/SceneObjectMeshCollider.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/Common/SceneObjectMeshCollider.cs @@ -69,6 +69,7 @@ private void OnDisable() if (_collider != null) { Destroy(_collider); + _collider = null; } } } diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/Common/StandingPlatformController.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/Common/StandingPlatformController.cs index e23ac8ac6..39f021cf6 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/Common/StandingPlatformController.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/Common/StandingPlatformController.cs @@ -80,6 +80,7 @@ private void OnDisable() if (_collider != null) { Destroy(_collider); + _collider = null; } } } diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/DivineTreeFlowerObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/DivineTreeFlowerObject.cs index 40293c96a..6e493dd38 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/DivineTreeFlowerObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/DivineTreeFlowerObject.cs @@ -75,6 +75,7 @@ public override void Deactivate() if (_platformController != null) { Object.Destroy(_platformController); + _platformController = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/DivineTreePortalObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/DivineTreePortalObject.cs index b6aac1918..a9eed8064 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/DivineTreePortalObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/DivineTreePortalObject.cs @@ -149,6 +149,7 @@ public override void Deactivate() _platformController.OnPlayerActorEntered -= OnPlayerActorEntered; _platformController.OnPlayerActorExited -= OnPlayerActorExited; Object.Destroy(_platformController); + _platformController = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/ElevatorDoorObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/ElevatorDoorObject.cs index adf952698..0c1c6e9ae 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/ElevatorDoorObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/ElevatorDoorObject.cs @@ -55,6 +55,7 @@ public override void Deactivate() if (_meshCollider != null) { Object.Destroy(_meshCollider); + _meshCollider = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/ElevatorObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/ElevatorObject.cs index 345602812..d21737b95 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/ElevatorObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/ElevatorObject.cs @@ -100,6 +100,7 @@ public override void Deactivate() { _triggerController.OnPlayerActorEntered -= OnPlayerActorEntered; Object.Destroy(_triggerController); + _triggerController = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/ElevatorPedalObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/ElevatorPedalObject.cs index e5a6814cc..c9def5ec1 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/ElevatorPedalObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/ElevatorPedalObject.cs @@ -120,6 +120,7 @@ public override void Deactivate() { _platformController.OnPlayerActorEntered -= OnPlayerActorEntered; Object.Destroy(_platformController); + _platformController = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/FallableObstacleObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/FallableObstacleObject.cs index f3450a259..51e7c8f70 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/FallableObstacleObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/FallableObstacleObject.cs @@ -89,12 +89,14 @@ public override void Deactivate() if (_meshCollider != null) { Object.Destroy(_meshCollider); + _meshCollider = null; } if (_triggerController != null) { _triggerController.OnPlayerActorEntered -= OnPlayerActorEntered; Object.Destroy(_triggerController); + _triggerController = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/GeneralSceneObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/GeneralSceneObject.cs index 7112b4b32..e0f05a42e 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/GeneralSceneObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/GeneralSceneObject.cs @@ -80,6 +80,7 @@ public override void Deactivate() if (_meshCollider != null) { Object.Destroy(_meshCollider); + _meshCollider = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/GravitySwitchObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/GravitySwitchObject.cs index dd2ef16cb..615097ac1 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/GravitySwitchObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/GravitySwitchObject.cs @@ -117,6 +117,7 @@ public override void Deactivate() { _platformController.OnPlayerActorEntered -= OnPlayerActorEntered; Object.Destroy(_platformController); + _platformController = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/JumpableAreaObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/JumpableAreaObject.cs index 843391199..837d98097 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/JumpableAreaObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/JumpableAreaObject.cs @@ -56,6 +56,7 @@ public override void Deactivate() _triggerController.OnPlayerActorEntered -= OnPlayerActorEntered; _triggerController.OnPlayerActorExited -= OnPlayerActorExited; Object.Destroy(_triggerController); + _triggerController = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/LiftingPlatformObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/LiftingPlatformObject.cs index 812dfeea0..234974dbf 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/LiftingPlatformObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/LiftingPlatformObject.cs @@ -168,11 +168,13 @@ public override void Deactivate() if (_platformController != null) { Object.Destroy(_platformController); + _platformController = null; } if (_meshCollider != null) { Object.Destroy(_meshCollider); + _meshCollider = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/MovableCarrierObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/MovableCarrierObject.cs index 73a25bf0b..cb0b1dceb 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/MovableCarrierObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/MovableCarrierObject.cs @@ -225,6 +225,7 @@ public override void Deactivate() { _platformController.OnPlayerActorEntered -= OnPlayerActorEntered; Object.Destroy(_platformController); + _platformController = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/MushroomBridgeObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/MushroomBridgeObject.cs index ff15a4b3e..3521d94cb 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/MushroomBridgeObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/MushroomBridgeObject.cs @@ -92,6 +92,7 @@ public override void Deactivate() if (_platformController != null) { Object.Destroy(_platformController); + _platformController = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/PedalSwitchObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/PedalSwitchObject.cs index ecf4ae65c..f4e84eb78 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/PedalSwitchObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/PedalSwitchObject.cs @@ -130,6 +130,7 @@ public override void Deactivate() { _platformController.OnPlayerActorEntered -= OnPlayerActorEntered; Object.Destroy(_platformController); + _platformController = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/PiranhaFlowerObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/PiranhaFlowerObject.cs index dd796f53d..16785355f 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/PiranhaFlowerObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/PiranhaFlowerObject.cs @@ -114,6 +114,7 @@ public override void Deactivate() { _triggerController.OnPlayerActorEntered -= OnPlayerActorEntered; Object.Destroy(_triggerController); + _triggerController = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/PushableObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/PushableObject.cs index abf73d126..4c816aef8 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/PushableObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/PushableObject.cs @@ -391,6 +391,7 @@ public override void Deactivate() { _triggerController.OnPlayerActorEntered -= OnPlayerActorEntered; Object.Destroy(_triggerController); + _triggerController = null; } if (_standingPlatformController != null) diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/RareChestObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/RareChestObject.cs index 402b9d90d..4f9b439b8 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/RareChestObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/RareChestObject.cs @@ -75,6 +75,7 @@ public override void Deactivate() if (_meshCollider != null) { Object.Destroy(_meshCollider); + _meshCollider = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/RetractableBlockerObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/RetractableBlockerObject.cs index 6e987a6bf..e9c3744a9 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/RetractableBlockerObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/RetractableBlockerObject.cs @@ -57,6 +57,7 @@ public override void Deactivate() if (_meshCollider != null) { Object.Destroy(_meshCollider); + _meshCollider = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/RoadElevatorOrBlockerObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/RoadElevatorOrBlockerObject.cs index 13d3c2d29..b7e1afdf9 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/RoadElevatorOrBlockerObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/RoadElevatorOrBlockerObject.cs @@ -130,11 +130,13 @@ public override void Deactivate() if (_platformController != null) { Object.Destroy(_platformController); + _platformController = null; } if (_meshCollider != null) { Object.Destroy(_meshCollider); + _meshCollider = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/RotatingBridgeObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/RotatingBridgeObject.cs index 5c307700f..c0e5f67a4 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/RotatingBridgeObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/RotatingBridgeObject.cs @@ -91,6 +91,7 @@ public override void Deactivate() if (_platformController != null) { Object.Destroy(_platformController); + _platformController = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/RotatingWallObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/RotatingWallObject.cs index 44f97bbc8..47fa6b266 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/RotatingWallObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/RotatingWallObject.cs @@ -83,16 +83,19 @@ public override void Deactivate() if (_meshCollider != null) { Object.Destroy(_meshCollider); + _meshCollider = null; } if (_subObjectMeshCollider != null) { Object.Destroy(_subObjectMeshCollider); + _subObjectMeshCollider = null; } if (_subObjectGameObject != null) { Object.Destroy(_subObjectGameObject); + _subObjectGameObject = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/SceneObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/SceneObject.cs index ae8bf03ba..9dfb60833 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/SceneObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/SceneObject.cs @@ -281,6 +281,7 @@ public virtual void Deactivate() if (_sceneObjectGameObject != null) { Object.Destroy(_sceneObjectGameObject); + _sceneObjectGameObject = null; } } diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/SectorBridgeObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/SectorBridgeObject.cs index 2fc714969..7bd4dc59d 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/SectorBridgeObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/SectorBridgeObject.cs @@ -66,6 +66,7 @@ public override void Deactivate() if (_standingPlatformController != null) { Object.Destroy(_standingPlatformController); + _standingPlatformController = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/SpecialSwitchObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/SpecialSwitchObject.cs index 83545af84..2d405f0e0 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/SpecialSwitchObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/SpecialSwitchObject.cs @@ -113,6 +113,7 @@ public override void Deactivate() if (_meshCollider != null) { Object.Destroy(_meshCollider); + _meshCollider = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/StaticOrAnimatedObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/StaticOrAnimatedObject.cs index afe842a9c..b10741fdf 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/StaticOrAnimatedObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/StaticOrAnimatedObject.cs @@ -113,6 +113,7 @@ private void LateUpdate() private void OnDisable() { Destroy(_effectComponent); + _effectComponent = null; } } } \ No newline at end of file diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/SuspensionBridgeObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/SuspensionBridgeObject.cs index a519e3c2b..83f85e6be 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/SuspensionBridgeObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/SuspensionBridgeObject.cs @@ -89,6 +89,7 @@ public override void Deactivate() if (_platformController != null) { Object.Destroy(_platformController); + _platformController = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/SwitchObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/SwitchObject.cs index 61eaa6853..3a792e79d 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/SwitchObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/SwitchObject.cs @@ -124,6 +124,8 @@ public override IEnumerator InteractAsync(InteractionContext ctx) _interactionIndicatorRenderer.Dispose(); Object.Destroy(_interactionIndicatorRenderer); Object.Destroy(_interactionIndicatorGameObject); + _interactionIndicatorRenderer = null; + _interactionIndicatorGameObject = null; } if (ctx.StartedByPlayer && @@ -204,11 +206,13 @@ public override void Deactivate() { _interactionIndicatorRenderer.Dispose(); Object.Destroy(_interactionIndicatorRenderer); + _interactionIndicatorRenderer = null; } if (_interactionIndicatorGameObject != null) { Object.Destroy(_interactionIndicatorGameObject); + _interactionIndicatorGameObject = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/SwordBridgeObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/SwordBridgeObject.cs index 0fce9e6a8..0e4df0b99 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/SwordBridgeObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/SwordBridgeObject.cs @@ -85,6 +85,7 @@ public override void Deactivate() if (_platformController != null) { Object.Destroy(_platformController); + _platformController = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/ThreePhaseBridgeObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/ThreePhaseBridgeObject.cs index 5f25cd12f..6a27f9773 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/ThreePhaseBridgeObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/ThreePhaseBridgeObject.cs @@ -104,6 +104,7 @@ public override void Deactivate() if (_standingPlatformController != null) { Object.Destroy(_standingPlatformController); + _standingPlatformController = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/ThreePhaseSwitchObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/ThreePhaseSwitchObject.cs index 518b4123e..cd67502ac 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/ThreePhaseSwitchObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/ThreePhaseSwitchObject.cs @@ -146,6 +146,7 @@ public override void Deactivate() if (_meshCollider != null) { Object.Destroy(_meshCollider); + _meshCollider = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/ToggleSwitchObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/ToggleSwitchObject.cs index 06b9d8f60..4d8a40d21 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/ToggleSwitchObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/ToggleSwitchObject.cs @@ -159,6 +159,7 @@ public override void Deactivate() if (_meshCollider != null) { Object.Destroy(_meshCollider); + _meshCollider = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/TrapObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/TrapObject.cs index bc9d33a7b..e48ca8ea9 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/TrapObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/TrapObject.cs @@ -95,6 +95,7 @@ public override void Deactivate() { _triggerController.OnPlayerActorEntered -= OnPlayerActorEntered; Object.Destroy(_triggerController); + _triggerController = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/Scene/SceneObjects/WulingSwitchObject.cs b/Assets/Scripts/Pal3/Scene/SceneObjects/WulingSwitchObject.cs index 36752f506..ee6d62205 100644 --- a/Assets/Scripts/Pal3/Scene/SceneObjects/WulingSwitchObject.cs +++ b/Assets/Scripts/Pal3/Scene/SceneObjects/WulingSwitchObject.cs @@ -99,6 +99,7 @@ public override IEnumerator InteractAsync(InteractionContext ctx) if (ObjectInfo.Parameters[0] == 1 && _meshCollider != null) { Object.Destroy(_meshCollider); + _meshCollider = null; } } @@ -143,6 +144,7 @@ public override void Deactivate() if (_meshCollider != null) { Object.Destroy(_meshCollider); + _meshCollider = null; } base.Deactivate(); diff --git a/Assets/Scripts/Pal3/UI/RoundedFrostedGlassImage.cs b/Assets/Scripts/Pal3/UI/RoundedFrostedGlassImage.cs index bade8ad1f..755a5a2ae 100644 --- a/Assets/Scripts/Pal3/UI/RoundedFrostedGlassImage.cs +++ b/Assets/Scripts/Pal3/UI/RoundedFrostedGlassImage.cs @@ -48,8 +48,8 @@ private void Start() private void OnDestroy() { Destroy(_material); - image = null; _material = null; + image = null; } private void OnRectTransformDimensionsChange()