首先我们要明白圆环生成的原理,其实说白了并不是圆环,而是圆。因为我们使用的预制物体时Cube(物体本身是有大小的)难免会有发生实物的折叠看起来给人的感觉是圆环而已。

1.1 几何中我们要画一个圆,因为圆的标准表达式是

Unity 之圆环算法-LMLPHP

 圆心为(a,b),半径为r。那么我们只要知道圆心和半径就可以了。

  Unity 之圆环算法-LMLPHP

2.1 我们只要知道圆心,半径,和旋转弧度就可以了。

  在Unity中创建测试工程,添加代码circles.cs

  

 using UnityEngine;
using System.Collections; public class circle : MonoBehaviour
{
public GameObject circleModel;
//旋转改变的角度
public int changeAngle = ;
//旋转一周需要的预制物体个数
private int count; private float angle = ;
public float r = ; // Use this for initialization
void Start()
{
count = (int) / changeAngle;
for (int i = ; i < count; i++)
{
Vector3 center = circleModel.transform.position;
GameObject cube = (GameObject)Instantiate(circleModel);
float hudu = (angle / ) * Mathf.PI;
float xx = center.x + r * Mathf.Cos(hudu);
float yy = center.y + r * Mathf.Sin(hudu);
cube.transform.position = new Vector3(xx, yy, );
cube.transform.LookAt(center);
angle += changeAngle;
}
}
}

代码第28行cube.transform.LookAt(center);所有生成的物体都是朝向圆心的。

将此脚本管道MainCamera上即可,添加预制对象。

Unity 之圆环算法-LMLPHP

运行即可看到效果确实是圆环。

Unity 之圆环算法-LMLPHP

如果有好的意见和建议请@我哦,共同学习!

05-11 08:13