如何获得单位为C#的倾斜圆的圆周坐标?

如何获得单位为C#的倾斜圆的圆周坐标?,c#,unity3d,C#,Unity3d,非倾斜圆的周长坐标,如上图所示,由以下代码获得 //c=Center //r=radius //i=angle Vector3 FindPoint(Vector3 c, float r, int i) { return c + Quaternion.AngleAxis(1.0f * i, Vector3.forward) * (Vector3.right * r); } //Example of securing coordinates for(int i=0;i<360;i++

非倾斜圆的周长坐标,如上图所示,由以下代码获得

//c=Center
//r=radius
//i=angle
Vector3 FindPoint(Vector3 c, float r, int i)
{
    return c + Quaternion.AngleAxis(1.0f * i, Vector3.forward) * (Vector3.right * r);
}

//Example of securing coordinates
for(int i=0;i<360;i++)
{
    point[i] = FindPoint(center, radius, i);
}
//c=Center
//r=半径
//i=角度
向量3 FindPoint(向量3 c、浮点r、整数i)
{
返回c+四元数角度轴(1.0f*i,向量3.向前)*(向量3.右*r);
}
//保护坐标的示例
对于unity文档中的(int i=0;i)
与Vector3.forward不同,Transform.forward在移动游戏对象的同时也考虑其旋转。
因此,您可以替换此行:

return c + Quaternion.AngleAxis(1.0f * i, Vector3.forward) * (Vector3.right * r);
使用以下选项:

return c + Quaternion.AngleAxis(1.0f * i, transform.forward) * (transform.right * r);
**我猜您的脚本是附加到倾斜对象上的,因此用于转换。否则,您需要像使用tiltedObj.transform一样使用它。