java导入obj文件,使用FastObjImporter(Unity)在运行时加载并显示.obj文件

我想在Unity(2017.3.1f1)的运行时导入并显示.obj文件,并从Unity wiki(click)找到FastObjImporter的固定版本(click,直接链接到pastebin) .

由于我的.obj文件不包括法线,我不得不进行以下更改:

if(faceData[i].z >= 1) {

if(normals.Count != 0) {

newNormals[i] = normals[faceData[i].z - 1];

}

}

我还在开头添加了 mesh.RecalculateNormals(); .

我打开这个问题的问题和原因是Unity没有显示任何内容 . 场景很简单:标准定向灯和标准相机,玩家角色作为孩子 .

我的代码(我必须旋转才能正确对齐):

Mesh m = FastObjImporter.Instance.ImportFile(path);

Material mat = new Material(Shader.Find("Hidden/Internal-Colored")) { color = new Color(0,0,1) };

GameObject obj = new GameObject();

if(obj.GetComponent()==null) { obj.AddComponent(); }

if(obj.GetComponent()==null) { obj.AddComponent(); }

obj.GetComponent().mesh = m;

obj.GetComponent().material = mat;

obj.transform.Rotate(new Vector3(270,0,0));

obj.transform.Rotate(new Vector3(0,0,180));

我尝试了不同的着色器和模型,我使用相同的代码来创建我自己的网格物体和带有顶点信息的GameObjects我正在从.txt文件中读取并且一切正常 - 只是不在这里 .

我还注意到“三角形”列表总是带有0个项目,即使我的.obj文件中有大量“t ....”条目 . 如果我在这里将“j = 1”更改为“j = 0”,则填充列表:

info += j;

j = 0;

while(j + 2 < info) {

最后,Unity仍然没有显示任何内容,因此必须有其他错误 .

有没有人怀疑它可能是什么以及我能做些什么才能让它发挥作用?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值