public bool Raycast(Vector3 origin, Vector3 direction, out Uniject.RaycastHit hitinfo, float distance, int layerMask) { UnityEngine.RaycastHit unityHit = new UnityEngine.RaycastHit(); bool result = UnityEngine.Physics.Raycast(origin, direction, out unityHit, distance, layerMask); if (result) { TestableGameObject testable = null; UnityGameObjectBridge bridge = unityHit.collider.gameObject.GetComponent <UnityGameObjectBridge>(); if (null != bridge) { testable = bridge.wrapping; } hitinfo = new RaycastHit(unityHit.point, unityHit.normal, unityHit.barycentricCoordinate, unityHit.distance, unityHit.triangleIndex, unityHit.textureCoord, unityHit.textureCoord2, unityHit.lightmapCoord, testable, unityHit.collider); } else { hitinfo = new RaycastHit(); } return(result); }
public void OnCollisionEnter(Collision c) { UnityGameObjectBridge other = c.gameObject.GetComponent <UnityGameObjectBridge>(); if (null != other) { Uniject.Collision testableCollision = new Uniject.Collision(c.relativeVelocity, other.wrapping.transform, other.wrapping, c.contacts); wrapping.OnCollisionEnter(testableCollision); } }
public UnityGameObject(GameObject obj) : base(new UnityTransform(obj)) { this.obj = obj; _bridge = obj.AddComponent <UnityGameObjectBridge> (); _bridge.wrapping = this; }