我试图在运行时将.obj文件导入我的Unity项目。我使用框架SimpleOBJ来导入此文件。
在Unity编辑器内运行项目时,一切都按预期工作,并导入和显示对象。
但是,在我尝试导入文件时构建项目后,我收到错误,并且无法导入.obj文件。
我尝试了不同的导入方法,更类似于框架提供的示例,但这只会使代码复杂化,但不能解决我的问题。
class ObjHandler : MonoBehaviour
{
public GameObject import()
{
filepath = FileBrowser.OpenSingleFile("*");
WWW www = new WWW(filepath);
return ObjImporter.Import(www.text);
}
public void ImportObject()
{
ObjHandler handler = new ObjHandler();
_gameObject = handler.Import();
foreach (Transform child in _gameObject.transform)
{
GameObjects.Add(new GameObjectModel(child.gameObject));
Debug.Log(child.gameObject.name);
}
}
预期成果:https://i.imgur.com/0o0iyf6.png
实际结果(错误):https://i.imgur.com/yMtesoh.png
我找到了解决问题的方法。 事实证明,正是我使用的Unity版本创造了这个问题。
在错误日志中挖掘了一些后,我发现了这个错误:
警告:Shader不支持:'Legacy Shaders / Diffuse' - 传递'Meta'没有顶点着色器
所以我尝试了几次升级Unity。
最终我使用了Beta版本:Unity 2019.2 0a11
此版本修复了不受支持的着色器错误,这修复了我的独立构建错误。