実現したいこと
ここに実現したいことを箇条書きで書いてください。
- [ ]UnityのRuntime OBJ Importerを用いて、自作iPhone用アプリでiPhoneのフォルダから.objファイルをインポートする。
前提
UnityでiPhoneの中にある3Dモデルを表示して遊べるアプリを作っています。
実際にAsset StoreにあるRuntime OBJ Importerを使ってiPhone内のフォルダにある.objファイルを表示させましたが、色が反映されず、真っ白な状態で表示されてしまいます。
発生している問題・エラーメッセージ
iPhone内の自作アプリでiPhoneフォルダ内にある.objファイルを表示させたいが、色が反映されない。
該当のソースコード
C#
1using System.Collections; 22using System.Collections.Generic; 33using UnityEngine; 44using System.IO; 55using Dummiesman; 66 77public class StartSetting : MonoBehaviour 88{ 99 1010 private string _savePath; 1111 1212 public string objPath; 1313 public string error; 1414 public GameObject loadedObject; 1515 1616 1717 void Start() 1818 { 1919 2020 UnityEngine.iOS.Device.SetNoBackupFlag(Application.persistentDataPath); 2121 //iOS : /var/mobile/Containers/Data/Application/<guid>/Documents/Product名/hoge/ 2222 //MacOS : /Users/user名/Library/Application Support/DefaultCompany/Product名/hoge/ 2323 _savePath = Application.persistentDataPath + "/hoge/"; 2424 Debug.Log(_savePath); 2525 Directory.CreateDirectory(_savePath); 2626 2727 2828 2929 3030 objPath = Application.persistentDataPath + "/hoge/" + "R1.obj"; 31 //objPath = "/Users/a06100256/Downloads/HDMI_Type_C_mini__Male_Plug_v2_L2.123ca8095744-b02f-460c-8797-b72ae40d4c58/11605_HDMI_Type_C_mini__Male_Plug_v2_l2.obj"; 3234 //Unity上で表示させるときのためのパス 33 34 //objPath = Application.persistentDataPath + "/hoge/R1/" + "R1.obj"; 35 //マテリアル"R1.mtl"と一緒に"R1"というファイルの中に入れ実験するためのパス 3631 3732 3833 3935 4036 if (!File.Exists(objPath)) 4137 { 4238 Debug.Log("Error"); 4339 } 4440 else 4541 { 4642 Debug.Log("Exist!!!"); 4743 4844 if (loadedObject != null) 4945 Destroy(loadedObject); 5046 loadedObject = new OBJLoader().Load(objPath); 5147 error = string.Empty; 5248 } 5349 5450 } 5551 5652 5753 void Update() 5854 { 5955 6056 } 6157}
試したこと
iPhone上のドキュメントフォルダにプロジェクトのフォルダを作り、その中にhogeというファイルを作り、あらかじめその中に.objファイルを保存しておき、アプリ上で表示させようとしましたが、色が反映されませんでした。
①Runtime OBJ Importerの使い方に問題があるのではと考え、Unity上で表示できるかどうかを試した。(この時に上記にあるUnity上で表示させるときのためのパスを使用しました。)
→その結果、下の写真のように色が反映されて表示されました。
②.objファイル自体には色に関するデータが入っておらず、一緒に生成される.mtlファイルに入っていることを知ったので、hogeというファイルの中に"R1"という名前のフォルダを作り、その中にマテリアル"R1.mtl"と"R1.obj"を一緒に入れて上記のようにobjPathを変更して実行しましたが、色が反映されず真っ白な状態で表示されました。
Mac上では.objファイルと同じ場所に入っている.mtlファイルを自動的に読み込んでくれるが、
iPhone上にそういったシステムがないのでしょうか。それともiPhone上で表示させるために必要な作業の中でどこか間違ってしまっているのでしょうか。
また、仮にiPhone上にそういったシステムがない場合.fbxファイルなら色に関するデータも一緒に入ってくれるのでしょうか。
質問を答えていただくために必要な情報が抜けているかもしれません。コメントして教えていただければ、随時情報を加えたいと思います。
少しでも何か教えていただければ嬉しいです。よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
Unity 2021.2.7f1
Runtime OBJ Importer
Xcode

回答1件
あなたの回答
tips
プレビュー