public static Rect CalcScreenRect(GameObject gameObject, Camera camera, QueryConfig queryConfig) { AABB worldAABB = CalcWorldAABB(gameObject, queryConfig); if (!worldAABB.IsValid) { return(new Rect(0.0f, 0.0f, 0.0f, 0.0f)); } return(worldAABB.GetScreenRectangle(camera)); }
public List <MeshVertexChunk> GetWorldChunksHoveredByPoint(Vector3 hoverPoint, Matrix4x4 worldMtx, Camera camera) { var hoveredChunks = new List <MeshVertexChunk>(); foreach (var chunk in _vertexChunks) { AABB chunkAABB = chunk.ModelSpaceAABB; chunkAABB.Transform(worldMtx); Rect screenrect = chunkAABB.GetScreenRectangle(camera); if (screenrect.Contains(hoverPoint, true)) { hoveredChunks.Add(chunk); } } return(hoveredChunks); }