Unity围绕一个点生成一圈物体

有时候,会有一些这样的需求,就是围绕一个点,生成一圈物体。
首先,要记住一个固定的公式:
原点 + 半径 * 邻边除以斜边的比例, 邻边除以斜边的比例 = 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();
        }

    }```

你可能感兴趣的:(Unity围绕一个点生成一圈物体)