From 3ead69dd271d4db199012b0f9b97ab9afdda4d00 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Thu, 21 Apr 2016 00:25:00 +0600 Subject: [PATCH] copy-paste fix --- .../Scripts/Internal/IsoPhysicHelper.cs | 57 +------------------ .../Scripts/Internal/IsoPhysicHelperHolder.cs | 18 +++++- 2 files changed, 18 insertions(+), 57 deletions(-) diff --git a/Assets/IsoTools/Scripts/Internal/IsoPhysicHelper.cs b/Assets/IsoTools/Scripts/Internal/IsoPhysicHelper.cs index 5e027e5..270b8f0 100644 --- a/Assets/IsoTools/Scripts/Internal/IsoPhysicHelper.cs +++ b/Assets/IsoTools/Scripts/Internal/IsoPhysicHelper.cs @@ -6,71 +6,18 @@ namespace IsoTools.Internal { [RequireComponent(typeof(IsoObject))] public class IsoPhysicHelper : MonoBehaviour { - static List _tmpColliders = new List(7); - static List _tmpRigidbodies = new List(7); - static List _tmpTriggerListeners = new List(7); - static List _tmpCollisionListeners = new List(7); - GameObject _isoFakeObject = null; public GameObject isoFakeObject { get { return _isoFakeObject; } } - //TODO: fix copy-paste - public void DestroyIfUnnecessary(Component except) { - var unnecessary = true; - GetComponents (_tmpColliders); - GetComponents (_tmpRigidbodies); - GetComponents (_tmpTriggerListeners); - GetComponents(_tmpCollisionListeners); - if ( unnecessary ) { - for ( int i = 0, e = _tmpColliders.Count; i < e; ++i ) { - if ( _tmpColliders[i] != except ) { - unnecessary = false; - break; - } - } - } - if ( unnecessary ) { - for ( int i = 0, e = _tmpRigidbodies.Count; i < e; ++i ) { - if ( _tmpRigidbodies[i] != except ) { - unnecessary = false; - break; - } - } - } - if ( unnecessary ) { - for ( int i = 0, e = _tmpTriggerListeners.Count; i < e; ++i ) { - if ( _tmpTriggerListeners[i] != except ) { - unnecessary = false; - break; - } - } - } - if ( unnecessary ) { - for ( int i = 0, e = _tmpCollisionListeners.Count; i < e; ++i ) { - if ( _tmpCollisionListeners[i] != except ) { - unnecessary = false; - break; - } - } - } - _tmpColliders.Clear(); - _tmpRigidbodies.Clear(); - _tmpTriggerListeners.Clear(); - _tmpCollisionListeners.Clear(); - if ( unnecessary ) { - Destroy(this); - } - } - void Awake() { - hideFlags = HideFlags.HideInInspector; + //hideFlags = HideFlags.HideInInspector; var iso_object = GetComponent(); if ( iso_object ) { _isoFakeObject = new GameObject("_Fake" + gameObject.name); _isoFakeObject.AddComponent().Init(iso_object); - _isoFakeObject.hideFlags = HideFlags.HideInHierarchy | HideFlags.NotEditable; + //_isoFakeObject.hideFlags = HideFlags.HideInHierarchy | HideFlags.NotEditable; GameObject.DontDestroyOnLoad(_isoFakeObject); } } diff --git a/Assets/IsoTools/Scripts/Internal/IsoPhysicHelperHolder.cs b/Assets/IsoTools/Scripts/Internal/IsoPhysicHelperHolder.cs index a46340f..6321980 100644 --- a/Assets/IsoTools/Scripts/Internal/IsoPhysicHelperHolder.cs +++ b/Assets/IsoTools/Scripts/Internal/IsoPhysicHelperHolder.cs @@ -1,8 +1,11 @@ using UnityEngine; -using System.Collections; +using System.Collections.Generic; namespace IsoTools.Internal { public class IsoPhysicHelperHolder : MonoBehaviour { + + static List _tmpHolders = new List(7); + protected GameObject fakeObject { get { return physicHelper.isoFakeObject; } } @@ -12,7 +15,18 @@ namespace IsoTools.Internal { } protected void DestroyUnnecessaryCheck() { - physicHelper.DestroyIfUnnecessary(this); + var unnecessary = true; + GetComponents(_tmpHolders); + for ( int i = 0, e = _tmpHolders.Count; i < e; ++i ) { + if ( _tmpHolders[i] != this ) { + unnecessary = false; + break; + } + } + if ( unnecessary ) { + Destroy(physicHelper); + } + _tmpHolders.Clear(); } } } \ No newline at end of file