我为MeshCollider
编写了网格生成器。但有时候,当我将凸属性设置为ture
时,会出现一些错误。
例如,现在我有一个44个顶点的网格,这个错误:
CreateTrianglesFromPolygons:凸包有一个少于3个顶点的多边形!
或
凸壳初始化失败!尝试使用PxConvexFlag :: eINFLATE_CONVEX标志。
或其他......
我想要的只是,就是检测并处理这个错误。但是try catch
不起作用:
try
{
collider.convex = true;
UnityEngine.Debug.Log("Success! TrCount: " + collider.sharedMesh.triangles.Length.ToString()); // "Success! TrCount: 84"
}
catch
{
UnityEngine.Debug.Log("Error occur"); // never appear
}
在将凸面设置为true之前,可能有一些规则要检测它。
感谢您的帮助。)
答案 0 :(得分:1)
您忘记了catch(ExceptionType)
try
{
collider.convex = true;
UnityEngine.Debug.Log("Success!");
}
catch(Exception e)
{
UnityEngine.Debug.Log("Error occur: " + e.Message);
}
在顶部添加using System;
。
编辑:
错误消息是 NOT 异常,因此下面的方法可以解决您的问题。请记住,凸起要求三角形<&lt; 255上班。以下代码可确保您的触发在 3 和 254 之间。
if (generatedMesh.triangles.Length >= 3 && generatedMesh.triangles.Length < 255)
{
collider.convex = true;
UnityEngine.Debug.Log("Success!");
}else
{
UnityEngine.Debug.Log("Error occur: " + e.Message);
}