我有一个IFC模型,我使用场景准备(http://forgetoolkit.com/#/scenePrepration)中的示例脚本“ test-2legged”将其上载到Forge。然后我用AR / VR工具包(ForgeARKit-update-6-2018.1)加载了它。但是,下载的模型不完整(请参见下图)。模型中没有外部链接。
请注意,我对'test-2legged'做了一些小的修改,因为原始示例无法直接与新的Beta服务器'https://developer-api-beta.autodesk.io'配合使用(请参阅另一篇文章:{{3} }。
对于模型中的某些组件来说似乎是可见的,但对于其他组件则不是,我注意到的一件事是,某些组件在诸如Type / Type name之类的属性中具有非Unicode(Finnish)值,不确定如果是根本原因。
任何人都可以帮助检查哪些地方可能出问题吗?我可以上传示例模型。
Forge ARKit: Cannot load model in Unity
提前谢谢!
答案 0 :(得分:1)
对于遇到类似问题的任何人,在Unity中如何解析来自https://developer-api-beta.autodesk.io的仿射变换都存在问题。如果您遇到类似的问题(场景中的位置/旋转/比例都设置为零的网格),请转到 Assets / Forge / CodeBase / InstanceTreeRequest.cs 并替换"AffineMatrix"
用以下代码切换大小写:
case "AffineMatrix":
Matrix4x4 mat = new Matrix4x4 ();
var elements = node["mt"]["elements"].AsArray;
mat.m00 = elements[0].AsFloat;
mat.m10 = elements[1].AsFloat;
mat.m20 = elements[2].AsFloat;
mat.m01 = elements[3].AsFloat;
mat.m11 = elements[4].AsFloat;
mat.m21 = elements[5].AsFloat;
mat.m02 = elements[6].AsFloat;
mat.m12 = elements[7].AsFloat;
mat.m22 = elements[8].AsFloat;
mat.m03 = node["tr"]["x"].AsFloat;
mat.m13 = node["tr"]["y"].AsFloat;
mat.m23 = node["tr"]["z"].AsFloat;
mat.m33 = 1.0f;
obj.transform.localScale = ScaleFromMatrix (mat);
obj.transform.rotation = RotationFromMatrix (mat);
obj.transform.position = TranslationFromMatrix (mat);
break;