欢迎大家光临我的博客!
一、首先介绍一下粒子系统:
1.Emission:发射模块
控制粒子的发射速率(Rate),在粒子持续时间内,可实现某个特定时间生成大量粒子的效果,可模拟爆炸效果生成一大堆的粒子。
2.Shape :形状模块
定义粒子发射器的形状,可提供沿形状表面法线或随机方向的初始力,并控制粒子的发射位置以及方向。
3.Velocity over Lifetime :生命周期速度模块
制着生命周期内每一个粒子的速度,对有着物理行为的粒子效果更明显,但对于那些简单视觉行为效果的粒子,如烟雾飘散效果以及与物理世界几乎没有互动行为的粒子,此模块的作用就不明显了。
4.Limit Velocity over lifetime :生命周期速度限制模块
控制粒子在生命周期内的速度限制以及速度衰减,可以模拟类似拖动的效果。若粒子的速度超过设定的限定值,则粒子速度之会被锁定到该限定值。
5.Force over Lifetime:生命周期作用力模块
控制粒子在生命周期内的受力情况。
6.Color over lifetime:生命周期颜色模块
控制粒子在生命周期内的颜色变化。
7.Color by Speed:颜色的速度控制模块
此模块可让每个粒子的颜色根据自身的速度变化而变化。
8.Size Over Lifetime :生命周期粒子大小模块
控制每一颗粒子在其生命周期内的大小变化。
9.Size by Speed:粒子大小的速度控制
此模块可让每颗粒子的大小根据自身的速度变化而变化。
10.Rotation Over Lifetime :生命周期旋转模块
控制每颗粒子在生命周期内的旋转速度变化。
11.Rotation by Speed :旋转速度控制模块
此模块可让每颗粒子的旋转速度根据自身速度的变化而变化。
12.External Forces:外部作用力模块
此模块可控制风域的倍增系数。
13.Collision:碰撞模块
可为每颗粒子建立碰撞效果,目前只支持平面碰撞,该碰撞对于简单的碰撞检测效率非常高。
14.Sub Emitters:子发射器模块
此模块可时粒子在出生、消亡、碰撞等三个时刻生成其他的粒子。
15.TextureSheet Animation:序列帧动画纹理模块
可对粒子在其生命周期内的UV坐标产生变化,生成粒子的UV动画。可以将纹理划分成网格,在每一格存放动画的一帧。同时也可以将文理划分为几行,每一行是一个独立的动画。需要注意的是,动画所使用的纹理在Renderer模块下的Material属性中指定。
16.Renderer:粒子渲染器模块
该模块显示了粒子系统渲染相关的属性。
接下来做了一个效果图:(粒子效果)
二、探照灯效果
1、创建一个Plane和一个Cube作为参照物
2、创建一个点光源放在Cube上方
3、为点光源创建一个脚本,完成探照灯效果
效果图:
代码如下:
public Vector3 newPos;
public float smooth = 16;
void Start () {
newPos = transform.position;
}
// Update is called once per frame
void Update () {
if(Input.GetKeyDown(KeyCode.Q))
{
newPos = new Vector3(-3,5,-10);
}
if(Input.GetKeyDown(KeyCode.E))
{
newPos = new Vector3(3,5,-10);
}
transform.position = Vector3.Lerp(transform.position, newPos, smooth * Time.deltaTime);
}
三、摄像机的跟随效果
当主角在游戏场景中行走时,ゝ. 我们会把相机跟随主角的位置随意转动!
主要代码如下:
public Transform Troll; //我们依然把Troll做为游戏中的主角
public float smooth = 3;
void Update () {
Vector3 pos = Troll.position + new Vector3(0, 9, -13);
transform.position = Vector3.Lerp(transform.position, pos, smooth * Time.deltaTime);
}