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