2016-12-08 5 views
2

人体のさまざまな部分を測定するアプリケーションを構築しています。そのために、新しい人体が外部ディスクから.objファイルにアップロードされるたびに、オブジェクトが固定されていないため、実行時にオブジェクトをロードする必要があるため、問題は私がプレハブを作成できないことです。オブジェクトをゲームモードでロードする

私はOBJLoader拡張で試しましたが、OBJLoaderはUnityEditorを使用しているため、ビルド後には動作しません。

ビルド後も外部ディスクから.objファイルをロードできるソリューションはありますか。

私はWindows用のアプリケーション(.exe)をビルドしています。

+0

これを試しましたか? https://www.assetstore.unity3d.com/en/#!/content/49547 – FCin

+0

はい、そのOBJLoaderクラスはUnityEditorを使用しています。これはビルド後には動作しません。 – Nishit

答えて

1

次の手順を実行し、実行時にOBJ形式の3D静的モデルをロードするには:

  1. *.bytes/*.txtまたはother supported formatsにOBJファイルの名前を変更します。

  2. ロードTextAssetにファイル

    TextAsset data = Resources.Load("model.bytes") as TextAsset; 
    
  3. パースストリング(data.text)、そこから(頂点位置、インデックス、UV0、UV1など)メッシュデータを抽出します。 obj形式は解析が非常に簡単で、多くのプラグインやオープンソースプロジェクトも利用できます。

  4. Meshを作成し、メッシュデータで埋めてのMeshFilterに割り当てます。

    Mesh mesh = new Mesh(); 
    GetComponent<MeshFilter>().mesh = mesh; 
    mesh.vertices = newVertices; 
    mesh.uv = newUV; 
    mesh.triangles = newTriangles; 
    

材料情報も*.mtlファイルから抽出することができます。同様の手順に従ってください:適切なシェーダを使用してMaterialを作成し、テクスチャを材料に割り当てて、GameObjectMeshRendererのに材料を割り当てます。

+1

また、〜60k頂点のユニティ制限をメッシュ。 – Kardux

+0

私はあなたがオブジェクトファイルを手作業で読み上げようとしているので、第3の点を詳しく説明できますか? – Nishit

+0

はい。 objファイルを手動で読み込む必要があります。 – zwcloud

関連する問題