这次作业是让我们做一个网站首页的光环效果,网站如下:http://i-remember.fr/en
可以看出,粒子光环大约有两层,外层粒子呈顺时针旋转,内层粒子呈逆时针旋转,总的来说可以采用如下方式来设计,建立一个总的对象halo,
其中包含两个子对象out和in,分别代表外层粒子和内层粒子。粒子的位置和运动采用极坐标来控制,从数学上我们知道,与圆和旋转相关的活动, 采用极坐标较为方便。最后使用pingpong函数,使粒子在半径方向上游离即可。
下面是具体的设计过程,先创建一个空的halo对象,为其添加out子对象,代表外层光环,对out子对象增加粒子系统、
新建一个c#脚本halo,这里因为代码量较小,我们采用自上而下的设计方式,先在start和update函数中把需要的功能列好,再一步步实现该功能。
void Start () {
initial ();
RandomOperation ();
}
void Update () {
rotate ();
}
这里initial函数代表初始化粒子系统,RandomOpeartion函数使得粒子随机分布在圆轨道上,rotate函数使得粒子可以进行旋转。
在实现每个函数之前,我们先来确定一下要声明的变量,在这里我引入一个新类,circlePosition,用来表示粒子的极坐标,其属性有半径,角度和时间,代码如下:
public class CirclePosition
{
public float radius = 0f, angle = 0f, time = 0f;
public CirclePosition(float ra, float an, float ti) {
radius = ra;
angle = an;
time = ti;
}
}