From 7e015ec21eeea77511755f8a2058a12cbf354d31 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Fri, 21 Aug 2015 01:54:18 +0600 Subject: [PATCH] fix disabled iso object bug --- Assets/IsoTools/Scripts/IsoObject.cs | 18 +++++++----------- Assets/IsoTools/Scripts/IsoWorld.cs | 9 +-------- 2 files changed, 8 insertions(+), 19 deletions(-) diff --git a/Assets/IsoTools/Scripts/IsoObject.cs b/Assets/IsoTools/Scripts/IsoObject.cs index 3995ac2..a2dae38 100644 --- a/Assets/IsoTools/Scripts/IsoObject.cs +++ b/Assets/IsoTools/Scripts/IsoObject.cs @@ -208,24 +208,20 @@ namespace IsoTools { IsoWorld _isoWorld = null; public IsoWorld isoWorld { get { - if ( (object)_isoWorld == null ) { + if ( !_isoWorld ) { _isoWorld = GameObject.FindObjectOfType(); } return _isoWorld; } } - public void ResetWorld() { - _isoWorld = null; - } - public void FixTransform() { #if UNITY_EDITOR if ( !Application.isPlaying && isAlignment ) { _position = tilePosition; } #endif - if ( (object)isoWorld != null ) { + if ( isoWorld ) { transform.position = IsoUtils.Vec3ChangeZ( isoWorld.IsoToScreen(position), transform.position.z); @@ -235,7 +231,7 @@ namespace IsoTools { } public void FixIsoPosition() { - if ( (object)isoWorld != null ) { + if ( isoWorld ) { position = isoWorld.ScreenToIso( transform.position, positionZ); @@ -251,7 +247,7 @@ namespace IsoTools { } void MartDirtyIsoWorld() { - if ( (object)isoWorld != null ) { + if ( isoWorld ) { isoWorld.MarkDirty(this); } #if UNITY_EDITOR @@ -275,14 +271,14 @@ namespace IsoTools { } void OnEnable() { - if ( (object)isoWorld != null ) { + if ( isoWorld ) { isoWorld.AddIsoObject(this); } MartDirtyIsoWorld(); } void OnDisable() { - if ( (object)isoWorld != null ) { + if ( isoWorld ) { isoWorld.RemoveIsoObject(this); } } @@ -299,7 +295,7 @@ namespace IsoTools { } void OnDrawGizmos() { - if ( isShowBounds && (object)isoWorld != null ) { + if ( isShowBounds && isoWorld ) { IsoUtils.DrawCube(isoWorld, position + size * 0.5f, size, Color.red); } } diff --git a/Assets/IsoTools/Scripts/IsoWorld.cs b/Assets/IsoTools/Scripts/IsoWorld.cs index 5275d45..c1aca9d 100644 --- a/Assets/IsoTools/Scripts/IsoWorld.cs +++ b/Assets/IsoTools/Scripts/IsoWorld.cs @@ -165,13 +165,6 @@ namespace IsoTools { _isoRMatrix = _isoMatrix.inverse; } - void ResetAllWorlds() { - var objects_iter = _objects.GetEnumerator(); - while ( objects_iter.MoveNext() ) { - objects_iter.Current.ResetWorld(); - } - } - void FixAllTransforms() { var objects_iter = _objects.GetEnumerator(); while ( objects_iter.MoveNext() ) { @@ -559,13 +552,13 @@ namespace IsoTools { void OnEnable() { _objects = new HashSet(FindObjectsOfType()); + _objects.RemoveWhere(iso_object => !iso_object.enabled); _visibles.Clear(); _sectors.Clear(); MarkDirty(); } void OnDisable() { - ResetAllWorlds(); _objects.Clear(); _visibles.Clear(); _sectors.Clear();