Unity学习笔记(4)-----粒子效果的实现

Unity学习笔记(4)—–粒子效果的实现

一.效果展示

下面用若干张张动图展示效果:
effect
大概就是这样,并不是很难。 实际效果要比图中的好一点(顺畅得多)。

实现步骤

大致可以分为如下几个步骤,然后逐个实现就可以了:

  1. 生产粒子
  2. 设置粒子初始属性(位置, 颜色, 速度等)
  3. 控制粒子旋转
  4. 改变粒子颜色
  5. 让颜色均匀旋转

    下面分步骤说明。

1.生产粒子

首先我们需要一个ParticleSystem的组件来管理这个粒子系统。 再让组件附着在一个空对象上即可。结构如图:
structure

emptyObj_structure

如图中那样, 我们在这个含有particle System的对象上挂载脚本, 准备对这个粒子系统进行控制。

在写脚本之前, 先对Particle System 进行一些必要的设置, 这样可以在测试脚本的时候看起来更舒服 :), 如图:
basicSetting

嘛, 由于我们都是代码控制, 下面的属性几乎都可以不勾选, renderer除外。 记得给renderer设置一个好看的Material啊 : )
这里写图片描述

这些都是为粒子能够正常产生做准备。 这些做好后, 就可以开始写脚本控制了, 产生粒子的相关代码如下:(只是产生的话, 超简单!)

using UnityEngine;
using System.Collections;
public class ParticleSea : MonoBehaviour {

    public ParticleSystem particleSystem;
    private ParticleSystem.Particle[] particlesArray;
    public int seaResolution = 25;
    void Start() {
        particlesArray = new ParticleSystem.Particle[seaResolution * seaResolution];
        particleSystem.maxParticles = seaResolution * seaResolution;
        particleSystem.Emit(seaResolution * seaResolution);
        particleSystem.GetParticles(particlesArray);
    }
}

这些变量的含义:

particle System: 用来得到这个Object的particle System(在Inspector中记得把当前的Particle System 拖给脚本变量)
particlesArray: 用来存放粒子系统所产生的粒子的数组。
seaResolution: 粒子海洋的长度(实际粒子数是这个数的平方)。

Ps : 之所以不改为直接用粒子数表示有两个原因:

  1. 之前我参考的教程的粒子实现时用的这个, 我写这个的时候因为懒直接在那个的基础上做了 ~。~
  2. 事实上写完想改的时候发现这样可以给粒子简单的分层。有一定的可拓展性(好吧其实没有什么用)

In all, 这样做之后创建过程就完成了。

2.设置粒子初始属性

首先考虑我们需要粒子的哪些属性:

  1. 粒子速度 speed
  2. 粒子旋转的半径 radius
  3. 粒子当前旋转角度 a
  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值