diff --git a/Assembly-CSharp.csproj b/Assembly-CSharp.csproj
index 20de6a7..cb91d67 100644
--- a/Assembly-CSharp.csproj
+++ b/Assembly-CSharp.csproj
@@ -60,6 +60,7 @@
+
diff --git a/Assets/IsoTools/Scripts/Internal/IsoPhysicHelperHolder.cs b/Assets/IsoTools/Scripts/Internal/IsoPhysicHelperHolder.cs
new file mode 100644
index 0000000..a46340f
--- /dev/null
+++ b/Assets/IsoTools/Scripts/Internal/IsoPhysicHelperHolder.cs
@@ -0,0 +1,18 @@
+using UnityEngine;
+using System.Collections;
+
+namespace IsoTools.Internal {
+ public class IsoPhysicHelperHolder : MonoBehaviour {
+ protected GameObject fakeObject {
+ get { return physicHelper.isoFakeObject; }
+ }
+
+ protected IsoPhysicHelper physicHelper {
+ get { return IsoUtils.GetOrCreateComponent(gameObject); }
+ }
+
+ protected void DestroyUnnecessaryCheck() {
+ physicHelper.DestroyIfUnnecessary(this);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/IsoTools/Scripts/Internal/IsoPhysicHelperHolder.cs.meta b/Assets/IsoTools/Scripts/Internal/IsoPhysicHelperHolder.cs.meta
new file mode 100644
index 0000000..1605777
--- /dev/null
+++ b/Assets/IsoTools/Scripts/Internal/IsoPhysicHelperHolder.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 24e253f6697d448229f535a2e796f72b
+timeCreated: 1461163442
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/IsoTools/Scripts/IsoCollider.cs b/Assets/IsoTools/Scripts/IsoCollider.cs
index 864b9a0..04c7554 100644
--- a/Assets/IsoTools/Scripts/IsoCollider.cs
+++ b/Assets/IsoTools/Scripts/IsoCollider.cs
@@ -7,7 +7,7 @@ using UnityEditor;
namespace IsoTools {
[RequireComponent(typeof(IsoObject))]
- public abstract class IsoCollider : MonoBehaviour {
+ public abstract class IsoCollider : IsoPhysicHelperHolder {
protected abstract Collider CreateRealCollider(GameObject target);
IsoFakeCollider _fakeCollider;
@@ -17,14 +17,6 @@ namespace IsoTools {
get { return _realCollider; }
}
- protected GameObject fakeObject {
- get { return physicHelper.isoFakeObject; }
- }
-
- protected IsoPhysicHelper physicHelper {
- get { return IsoUtils.GetOrCreateComponent(gameObject); }
- }
-
[SerializeField]
public PhysicMaterial _material = null;
public PhysicMaterial material {
@@ -118,7 +110,7 @@ namespace IsoTools {
if ( _fakeCollider ) {
Destroy(_fakeCollider);
}
- physicHelper.DestroyIfUnnecessary(this);
+ DestroyUnnecessaryCheck();
}
#if UNITY_EDITOR
diff --git a/Assets/IsoTools/Scripts/IsoCollisionListener.cs b/Assets/IsoTools/Scripts/IsoCollisionListener.cs
index 96c0613..cbda7aa 100644
--- a/Assets/IsoTools/Scripts/IsoCollisionListener.cs
+++ b/Assets/IsoTools/Scripts/IsoCollisionListener.cs
@@ -4,18 +4,10 @@ using IsoTools.Internal;
namespace IsoTools {
[DisallowMultipleComponent]
[RequireComponent(typeof(IsoObject))]
- public class IsoCollisionListener : MonoBehaviour {
+ public class IsoCollisionListener : IsoPhysicHelperHolder {
IsoFakeCollisionListener _fakeListener;
- GameObject fakeObject {
- get { return physicHelper.isoFakeObject; }
- }
-
- IsoPhysicHelper physicHelper {
- get { return IsoUtils.GetOrCreateComponent(gameObject); }
- }
-
void Awake() {
_fakeListener = fakeObject.AddComponent().Init(this);
}
@@ -24,7 +16,7 @@ namespace IsoTools {
if ( _fakeListener ) {
Destroy(_fakeListener);
}
- physicHelper.DestroyIfUnnecessary(this);
+ DestroyUnnecessaryCheck();
}
}
}
\ No newline at end of file
diff --git a/Assets/IsoTools/Scripts/IsoRigidbody.cs b/Assets/IsoTools/Scripts/IsoRigidbody.cs
index 76c856a..aaea7ed 100644
--- a/Assets/IsoTools/Scripts/IsoRigidbody.cs
+++ b/Assets/IsoTools/Scripts/IsoRigidbody.cs
@@ -8,7 +8,7 @@ using UnityEditor;
namespace IsoTools {
[DisallowMultipleComponent]
[RequireComponent(typeof(IsoObject))]
- public class IsoRigidbody : MonoBehaviour {
+ public class IsoRigidbody : IsoPhysicHelperHolder {
IsoFakeRigidbody _fakeRigidbody;
@@ -17,14 +17,6 @@ namespace IsoTools {
get { return _realRigidbody; }
}
- GameObject fakeObject {
- get { return physicHelper.isoFakeObject; }
- }
-
- IsoPhysicHelper physicHelper {
- get { return IsoUtils.GetOrCreateComponent(gameObject); }
- }
-
[SerializeField]
public float _mass = 1.0f;
public float mass {
@@ -350,7 +342,7 @@ namespace IsoTools {
if ( _fakeRigidbody ) {
Destroy(_fakeRigidbody);
}
- physicHelper.DestroyIfUnnecessary(this);
+ DestroyUnnecessaryCheck();
}
#if UNITY_EDITOR
diff --git a/Assets/IsoTools/Scripts/IsoTriggerListener.cs b/Assets/IsoTools/Scripts/IsoTriggerListener.cs
index 184f2a3..f1e6cf3 100644
--- a/Assets/IsoTools/Scripts/IsoTriggerListener.cs
+++ b/Assets/IsoTools/Scripts/IsoTriggerListener.cs
@@ -4,18 +4,10 @@ using IsoTools.Internal;
namespace IsoTools {
[DisallowMultipleComponent]
[RequireComponent(typeof(IsoObject))]
- public class IsoTriggerListener : MonoBehaviour {
+ public class IsoTriggerListener : IsoPhysicHelperHolder {
IsoFakeTriggerListener _fakeListener;
- GameObject fakeObject {
- get { return physicHelper.isoFakeObject; }
- }
-
- IsoPhysicHelper physicHelper {
- get { return IsoUtils.GetOrCreateComponent(gameObject); }
- }
-
void Awake() {
_fakeListener = fakeObject.AddComponent().Init(this);
}
@@ -24,7 +16,7 @@ namespace IsoTools {
if ( _fakeListener ) {
Destroy(_fakeListener);
}
- physicHelper.DestroyIfUnnecessary(this);
+ DestroyUnnecessaryCheck();
}
}
}
\ No newline at end of file