public NavMeshTriangle(Vector2 uv0, Vector2 uv1, Vector2 uv2)
        {
            m_Root = new NavMeshTriangleNode();

            this.uv0 = uv0;
            this.uv1 = uv1;
            this.uv2 = uv2;
        }
        public NavMeshTriangle(Vector3 vertex0, Vector3 vertex1, Vector3 vertex2, Vector2 uv0, Vector2 uv1, Vector2 uv2)
        {
            m_Root = new NavMeshTriangleNode();

            float maxX = Mathf.Max(vertex0.x, vertex1.x, vertex2.x);
            float maxY = Mathf.Max(vertex0.y, vertex1.y, vertex2.y);
            float maxZ = Mathf.Max(vertex0.z, vertex1.z, vertex2.z);

            float minX = Mathf.Min(vertex0.x, vertex1.x, vertex2.x);
            float minY = Mathf.Min(vertex0.y, vertex1.y, vertex2.y);
            float minZ = Mathf.Min(vertex0.z, vertex1.z, vertex2.z);

            Vector3 si = new Vector3(maxX - minX, maxY - minY, maxZ - minZ);

            if (si.x <= 0)
            {
                si.x = 0.1f;
            }
            if (si.y <= 0)
            {
                si.y = 0.1f;
            }
            if (si.z <= 0)
            {
                si.z = 0.1f;
            }
            Vector3 ct = new Vector3(minX, minY, minZ) + si / 2;

            this.m_Bounds = new Bounds(ct, si);

            this.vertex0 = vertex0;
            this.vertex1 = vertex1;
            this.vertex2 = vertex2;
            this.uv0     = uv0;
            this.uv1     = uv1;
            this.uv2     = uv2;
        }