using UnityEngine; namespace FairyGUI { /// /// /// public class MeshColliderHitTest : ColliderHitTest { public Vector2 lastHit; /// /// /// /// public MeshColliderHitTest(MeshCollider collider) { this.collider = collider; } /// /// /// /// /// /// override public bool HitTest(Rect contentRect, Vector2 localPoint) { RaycastHit hit; if (!HitTestContext.GetRaycastHitFromCache(HitTestContext.camera, out hit)) return false; if (hit.collider != collider) return false; lastHit = new Vector2(hit.textureCoord.x * contentRect.width, (1 - hit.textureCoord.y) * contentRect.height); HitTestContext.direction = Vector3.back; HitTestContext.worldPoint = StageCamera.main.ScreenToWorldPoint(new Vector2(lastHit.x, Screen.height - lastHit.y)); return true; } } }