Advertisement
Guest User

Untitled

a guest
Mar 28th, 2016
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.88 KB | None | 0 0
  1. using UnityEngine;
  2.  
  3. namespace IsoTools.Internal {
  4.     public class IsoFakeObject : MonoBehaviour {
  5.  
  6.         IsoObject _isoObject    = null;
  7.         Vector3   _lastPosition = Vector3.zero;
  8.  
  9.         public void Init(IsoObject iso_object) {
  10.             _isoObject         = iso_object;
  11.             _lastPosition      = iso_object.position;
  12.             transform.position = iso_object.position;
  13.         }
  14.  
  15.         public IsoObject isoObject {
  16.             get { return _isoObject; }
  17.         }
  18.  
  19.         void FixLayers() {
  20.             var iso_object_layer = isoObject.gameObject.layer;
  21.             if ( gameObject.layer != iso_object_layer ) {
  22.                 gameObject.layer = iso_object_layer;
  23.                 for ( int i = 0, e = transform.childCount; i < e; ++i ) {
  24.                     var child = transform.GetChild(i);
  25.                     child.gameObject.layer = iso_object_layer;
  26.                 }
  27.             }
  28.         }
  29.  
  30.         void FixedUpdate() {
  31.             FixLayers();
  32.             if ( !IsoUtils.Vec3Approximately(_lastPosition, isoObject.position) ) {
  33.                 _lastPosition = transform.position = isoObject.position;
  34.             } else if ( !IsoUtils.Vec3Approximately(_lastPosition, transform.position) ) {
  35.                 _lastPosition = isoObject.position = transform.position;
  36.             }
  37.         }
  38.  
  39.         void OnTriggerEnter(Collider collider) {
  40.             isoObject.gameObject.SendMessage(
  41.                 "OnIsoTriggerEnter",
  42.                 IsoUtils.IsoConvertCollider(collider),
  43.                 SendMessageOptions.DontRequireReceiver);
  44.         }
  45.  
  46.         void OnTriggerExit(Collider collider) {
  47.             isoObject.gameObject.SendMessage(
  48.                 "OnIsoTriggerExit",
  49.                 IsoUtils.IsoConvertCollider(collider),
  50.                 SendMessageOptions.DontRequireReceiver);
  51.         }
  52.  
  53.         void OnCollisionEnter(Collision collision) {
  54.             isoObject.gameObject.SendMessage(
  55.                 "OnIsoCollisionEnter",
  56.                 new IsoCollision(collision),
  57.                 SendMessageOptions.DontRequireReceiver);
  58.         }
  59.        
  60.         void OnCollisionExit(Collision collision) {
  61.             isoObject.gameObject.SendMessage(
  62.                 "OnIsoCollisionExit",
  63.                 new IsoCollision(collision),
  64.                 SendMessageOptions.DontRequireReceiver);
  65.         }
  66.     }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement