粒子系统与流动效果
这是
3D
游戏编程的第八次作业
说明文档
本次实验制作的粒子效果有两个,分别是粒子光环和粒子海洋
闪光点:
附有详细的制作过程与踩坑经验
作业内容
初始化
- 设置背景色为黑色:
- 依次选择
Window->Rendering->Lighting
; - 在弹出窗口中选择
Enviroment
, 并修改其中的Skybox Material
和Sun Source
为None
: - 此时场景色已经为黑色,因为已经没有天空盒了,但是还要注意,摄像机的默认背景色为蓝色,所以必须要在设置摄像机背景色为黑色;
查看Main Camera
的Inspector
,将其中的Background
更改为黑色:
- 依次选择
- 创建空对象并命名为
SeaNRing
,在其下面创建两个粒子系统,分别为Sea
和Ring
,如下图所示:
制作粒子海洋
参考博客Unity制作神奇的粒子海洋!,与博客不同的地方在于多了更细腻的控制颜色的代码
-
粒子系统基本配置
按照下面的模块配截图进行配置- 基本配置模块
- 发射模块
- 形状模块
- 渲染器模块
- 基本配置模块
-
创建代码文件
ParticleSea
,并填入以下代码:public class ParticleSea : MonoBehaviour { ParticleSystem particleSystem; ParticleSystem.Particle[] particlesArray; public float spacing = 1; public int seaResolution = 100; public float noiseScale = 0.1f; public float heightScale = 4f; float perlinNoiseAnimX = 0.01f; float perlinNoiseAnimY = 0.01f; public Gradient colorGradient; void Start() { // 获取粒子系统 particleSystem = gameObject.GetComponent<ParticleSystem>(); particlesArray = new ParticleSystem.Particle[seaResolution * seaResolution]; particleSystem.maxParticles = seaResolution * seaResolution; particleSystem.Emit(seaResolution * seaResolution); particleSystem.GetParticles(particlesArray); } private void Update() { for (int i = 0; i < seaResolution; i++) { for (int j =