コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }