mirror of
https://github.com/BlackMATov/unity-iso-tools.git
synced 2025-12-15 01:12:05 +07:00
68 lines
1.8 KiB
C#
68 lines
1.8 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 FixLayers() {
|
|
var iso_object_layer = isoObject.gameObject.layer;
|
|
if ( gameObject.layer != iso_object_layer ) {
|
|
gameObject.layer = iso_object_layer;
|
|
for ( int i = 0, e = transform.childCount; i < e; ++i ) {
|
|
var child = transform.GetChild(i);
|
|
child.gameObject.layer = iso_object_layer;
|
|
}
|
|
}
|
|
}
|
|
|
|
void FixedUpdate() {
|
|
FixLayers();
|
|
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);
|
|
}
|
|
}
|
|
}
|