mirror of
https://github.com/BlackMATov/unity-iso-tools.git
synced 2025-12-14 17:09:31 +07:00
union physic helper holder
This commit is contained in:
18
Assets/IsoTools/Scripts/Internal/IsoPhysicHelperHolder.cs
Normal file
18
Assets/IsoTools/Scripts/Internal/IsoPhysicHelperHolder.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 24e253f6697d448229f535a2e796f72b
|
||||
timeCreated: 1461163442
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user