unity打包抖音小游戏后代码生成的正五边形添加的MeshCollider无法被射线检测到
public static List<Vector3> DrawZhengNPylogn(int n, float hightDiv2)
{//生成正n边形的顶点列表,参数:n:要生成的图形的边数;hightDiv2:要生成的图形的大小
var a = hightDiv2;
float angDiv2 = 180f * (n - 2) / n / 2f;
float b = (float )(a / Mathf.Tan(angDiv2 * Math.PI / 180f));
List<Vector3> verts = new List<Vector3>();
verts.Add(new Vector3(b, a));
Vector3 first = new Vector3(b, a);
GameObject gCenter = new GameObject();
Transform tCenter = gCenter.transform;
tCenter.position = new Vector3(b, a);
for (int i = 1; i < n; i++)
{
tCenter.RotateAround(Vector3d.zero, new Vector3(0, 0, 1), 1f * 360f / n);
//Debug.Log(tCenter.position);
verts.Add((v3Copy(tCenter.position)));
//Debug.Log(i - 1 + ":" + object.ReferenceEquals(verts[i - 1], verts[i]));
}
return verts;
}
public static void DrawPylogn(List<Vector3> points, VertexHelper vh)//画多边形
{
foreach (var point in points)
{
// Debug.Log(point);
vh.AddVert(new Vector3(point.x, point.y, point.z), Color.white, new Vector2(0.5f, 0.5f));
}
for (int i = 1; i < points.Count - 1; i++)
{
// Debug.Log(i);
vh.AddTriangle(0, i + 1, i);
}
}
GameObject ctPar = new GameObject();
GameObject centerPolygn = Instantiate(centerCube, Vector3.zero, Quaternion.Euler(0, 0, 0), ctPar.transform);
centerPolygn.transform.position = Vector3.zero;
centerPolygn.transform.eulerAngles = Vector3.zero;
ctPar.transform.parent=fiveCt.transform;
MeshFilter meshFilter = centerPolygn.GetComponent<MeshFilter>();
Mesh mesh = new Mesh( );
mesh.name = "Cubedbx";
VertexHelper vh = new VertexHelper();
vh.Clear();
vh.FillMesh(mesh);
List<Vector3> ls6v = DrawZhengNPylogn(5, centerToLineMiddle);
DrawPylogn(ls6v, vh);//绘制正5边形
meshFilter.mesh = mesh;
centerPolygn.AddComponent<MeshCollider>();//添加MeshCollider组件
centerPolygn.transform.position = Vector3.zero;
这些代码在别的平台上运行成功,但是打包抖音小游戏后iOS设备调试时射线检测不到添加的MeshCollider
求解决!