union physic helper holder

This commit is contained in:
2016-04-20 22:56:20 +06:00
parent 92ed826849
commit 40488f9424
7 changed files with 39 additions and 40 deletions

View File

@@ -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<IsoPhysicHelper>(gameObject); }
}
protected void DestroyUnnecessaryCheck() {
physicHelper.DestroyIfUnnecessary(this);
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 24e253f6697d448229f535a2e796f72b
timeCreated: 1461163442
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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<IsoPhysicHelper>(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

View File

@@ -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<IsoPhysicHelper>(gameObject); }
}
void Awake() {
_fakeListener = fakeObject.AddComponent<IsoFakeCollisionListener>().Init(this);
}
@@ -24,7 +16,7 @@ namespace IsoTools {
if ( _fakeListener ) {
Destroy(_fakeListener);
}
physicHelper.DestroyIfUnnecessary(this);
DestroyUnnecessaryCheck();
}
}
}

View File

@@ -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<IsoPhysicHelper>(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

View File

@@ -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<IsoPhysicHelper>(gameObject); }
}
void Awake() {
_fakeListener = fakeObject.AddComponent<IsoFakeTriggerListener>().Init(this);
}
@@ -24,7 +16,7 @@ namespace IsoTools {
if ( _fakeListener ) {
Destroy(_fakeListener);
}
physicHelper.DestroyIfUnnecessary(this);
DestroyUnnecessaryCheck();
}
}
}