コード例 #1
0
    private void LoadObj()
    {
        ImportObj(path);

        IntPtr sizePtr = GetSizes();
        Size   sizes   = (Size)Marshal.PtrToStructure(new IntPtr(sizePtr.ToInt32()), typeof(Size));

        IntPtr vertPtr = GetVertices();

        Point3[]  vertsT = GetElements <Point3>(vertPtr, sizes.vSize);
        Vector3[] verts  = Point3.Convert(vertsT);

        IntPtr normPtr = GetNormals();

        Point3[]  normsT = GetElements <Point3>(normPtr, sizes.nSize);
        Vector3[] norms  = Point3.Convert(normsT);

        IntPtr uvPtr = GetUVs();

        Point2[]  uvsT = GetElements <Point2>(uvPtr, sizes.uSize);
        Vector2[] uvs  = Point2.Convert(uvsT);

        IntPtr triPtr = GetTris();

        int[] tris = GetElements <int>(triPtr, sizes.tSize);

        Mesh mesh = new Mesh();

        mesh.vertices  = verts;
        mesh.uv        = uvs;
        mesh.normals   = norms;
        mesh.triangles = tris;
        mesh.RecalculateBounds();

        meshFilter.mesh = mesh;
    }