Unity 之圆环算法
2015-04-10 19:57 wuzhang 阅读(9177) 评论(4) 编辑 收藏 举报首先我们要明白圆环生成的原理,其实说白了并不是圆环,而是圆。因为我们使用的预制物体时Cube(物体本身是有大小的)难免会有发生实物的折叠看起来给人的感觉是圆环而已。
1.1 几何中我们要画一个圆,因为圆的标准表达式是
圆心为(a,b),半径为r。那么我们只要知道圆心和半径就可以了。
2.1 我们只要知道圆心,半径,和旋转弧度就可以了。
在Unity中创建测试工程,添加代码circles.cs
1 using UnityEngine; 2 using System.Collections; 3 4 5 public class circle : MonoBehaviour 6 { 7 public GameObject circleModel; 8 //旋转改变的角度 9 public int changeAngle = 0; 10 //旋转一周需要的预制物体个数 11 private int count; 12 13 private float angle = 0; 14 public float r = 5; 15 16 // Use this for initialization 17 void Start() 18 { 19 count = (int)360 / changeAngle; 20 for (int i = 0; i < count; i++) 21 { 22 Vector3 center = circleModel.transform.position; 23 GameObject cube = (GameObject)Instantiate(circleModel); 24 float hudu = (angle / 180) * Mathf.PI; 25 float xx = center.x + r * Mathf.Cos(hudu); 26 float yy = center.y + r * Mathf.Sin(hudu); 27 cube.transform.position = new Vector3(xx, yy, 0); 28 cube.transform.LookAt(center); 29 angle += changeAngle; 30 } 31 } 32 }
代码第28行cube.transform.LookAt(center);所有生成的物体都是朝向圆心的。
将此脚本管道MainCamera上即可,添加预制对象。
运行即可看到效果确实是圆环。
如果有好的意见和建议请@我哦,共同学习!