有時(shí)候哮塞,會(huì)有一些這樣的需求南蹂,就是圍繞一個(gè)點(diǎn)佃乘,生成一圈物體囱井。
首先,要記住一個(gè)固定的公式:
原點(diǎn) + 半徑 * 鄰邊除以斜邊的比例, 鄰邊除以斜邊的比例 = cos(弧度) , 弧度 = 角度 *3.14f / 180f;
原點(diǎn) + 半徑 * 鄰邊除以斜邊的比例, 鄰邊除以斜邊的比例 = Sin(弧度) , 弧度 = 角度 *3.14f / 180f;
以上公式趣避,就可以求出平面坐標(biāo)系的XY庞呕,
具體哪個(gè)是Y哪個(gè)是X看需求,Cos的為X程帕,Sin的為Y時(shí)住练,生成順序?yàn)槟鏁r(shí)針,反之順時(shí)針
示例代碼:
{
angle = 360f / iObjCount;
for (int i = 0; i < iObjCount; i++)
{
GameObject objTemp = Instantiate(spawnGmObjPrefab);
objTemp.transform.SetParent(transform, false);
//設(shè)置位置 位置公式: x = 原點(diǎn)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();
}
}```