有时候,会有一些这样的需求,就是围绕一个点,生成一圈物体。
首先,要记住一个固定的公式:
原点 + 半径 * 邻边除以斜边的比例, 邻边除以斜边的比例 = cos(弧度) , 弧度 = 角度 *3.14f / 180f;
原点 + 半径 * 邻边除以斜边的比例, 邻边除以斜边的比例 = Sin(弧度) , 弧度 = 角度 *3.14f / 180f;
以上公式,就可以求出平面坐标系的XY,
具体哪个是Y哪个是X看需求,Cos的为X,Sin的为Y时,生成顺序为逆时针,反之顺时针
示例代码:
{
angle = 360f / iObjCount;
for (int i = 0; i < iObjCount; i++)
{
GameObject objTemp = Instantiate(spawnGmObjPrefab);
objTemp.transform.SetParent(transform, false);
//设置位置 位置公式: x = 原点x + 半径 * 邻边除以斜边的比例, 邻边除以斜边的比例 = Sin(弧度) , 弧度 = 角度 *3.14f / 180f;(Y同理弧度Cos(弧度))
float x = fRadius * Mathf.Sin((angle * i) * (Mathf.PI / 180f));
float y = fRadius * Mathf.Cos((angle * i) * (Mathf.PI / 180f));
objTemp.transform.localPosition = v30;//new Vector3(x, 0, y);
objTemp.transform.localEulerAngles = new Vector3(0, angle * i, 0);
objTemp.name = i.ToString();
}
}```