Files
unity-iso-tools/Assets/IsoTools/Scripts/Internal/IsoFakeObject.cs
2015-12-20 18:01:43 +06:00

55 lines
1.5 KiB
C#

using UnityEngine;
namespace IsoTools.Internal {
public class IsoFakeObject : MonoBehaviour {
IsoObject _isoObject = null;
Vector3 _lastPosition = Vector3.zero;
public void Init(IsoObject iso_object) {
_isoObject = iso_object;
_lastPosition = iso_object.position;
transform.position = iso_object.position;
}
public IsoObject isoObject {
get { return _isoObject; }
}
void FixedUpdate() {
if ( !IsoUtils.Vec3Approximately(_lastPosition, isoObject.position) ) {
_lastPosition = transform.position = isoObject.position;
} else if ( !IsoUtils.Vec3Approximately(_lastPosition, transform.position) ) {
_lastPosition = isoObject.position = transform.position;
}
}
void OnTriggerEnter(Collider collider) {
isoObject.gameObject.SendMessage(
"OnIsoTriggerEnter",
IsoUtils.IsoConvertCollider(collider),
SendMessageOptions.DontRequireReceiver);
}
void OnTriggerExit(Collider collider) {
isoObject.gameObject.SendMessage(
"OnIsoTriggerExit",
IsoUtils.IsoConvertCollider(collider),
SendMessageOptions.DontRequireReceiver);
}
void OnCollisionEnter(Collision collision) {
isoObject.gameObject.SendMessage(
"OnIsoCollisionEnter",
new IsoCollision(collision),
SendMessageOptions.DontRequireReceiver);
}
void OnCollisionExit(Collision collision) {
isoObject.gameObject.SendMessage(
"OnIsoCollisionExit",
new IsoCollision(collision),
SendMessageOptions.DontRequireReceiver);
}
}
} // namespace IsoTools.Internal