我正在構建一個測量人體不同部位的應用程序。爲此,每次新的人體都將從外部磁盤上傳到.obj文件中,所以問題是我無法創建預製件,因爲對象沒有固定,我必須在運行時加載對象。在遊戲模式下加載對象
我已經嘗試過使用OBJLoader擴展,但OBJLoader使用UnityEditor,因此它在構建後不工作。
是否有任何解決方案可以在構建之後從外部磁盤加載.obj文件。
我正在爲Windows(.exe)構建應用程序。
我正在構建一個測量人體不同部位的應用程序。爲此,每次新的人體都將從外部磁盤上傳到.obj文件中,所以問題是我無法創建預製件,因爲對象沒有固定,我必須在運行時加載對象。在遊戲模式下加載對象
我已經嘗試過使用OBJLoader擴展,但OBJLoader使用UnityEditor,因此它在構建後不工作。
是否有任何解決方案可以在構建之後從外部磁盤加載.obj文件。
我正在爲Windows(.exe)構建應用程序。
要在運行時加載的obj格式的3D靜態模型,請按照下列步驟操作:
obj的文件重命名爲*.bytes
/*.txt
或other supported formats。
將文件加載到TextAsset
TextAsset data = Resources.Load("model.bytes") as TextAsset;
分析字符串(data.text
),並從中提取出的網格數據(頂點位置,指數,UV0,UV1等等)。 obj格式很容易解析,也有很多插件和開源項目可用。
創建一個Mesh
並填充網格數據並將其分配給GameObject
的MeshFilter
。
Mesh mesh = new Mesh();
GetComponent<MeshFilter>().mesh = mesh;
mesh.vertices = newVertices;
mesh.uv = newUV;
mesh.triangles = newTriangles;
的材料信息也可以從*.mtl
文件中提取。只需按照以下步驟操作:使用適當的着色器創建Material
,爲材質分配紋理並將材質分配到GameObject
的MeshRenderer
的sharedMaterial
。
你試過這個嗎? https://www.assetstore.unity3d.com/en/#!/content/49547 – FCin
是的,那OBJLoader類正在使用UnityEditor,它不會在生成之後工作 – Nishit