Unity该粒子系统是很容易使用。这样的问题是在实际的过程中遇到的:以控制的粒子系统组件的动态需要可产生颗粒的最大数目。

看doc他说,有maxParticles控制。却没有这个开放的參数。仅仅能通过其他的方式来实现。

这里能够通过手动产生粒子的方式来实现。也即ParticleSystem中的Emit方法,详细代码例如以下:

public class ParticleSystemComp : MonoBehaviour
{
ParticleSystem mParticleSystem = null;
int mMaxParticles = 0; public int maxParticles
{
get
{
return mMaxParticles;
}
set
{
mMaxParticles = value;
}
} void Awake()
{
mParticleSystem = this.gameObject.GetComponent<ParticleSystem>();
mParticleSystem.emissionRate = 0.0f;
mMaxParticles = mParticleSystem.particleCount;
mParticleSystem.Clear();
} void Update()
{
if (mParticleSystem != null)
{
if (mParticleSystem.particleCount < mMaxParticles)
{
mParticleSystem.Emit(mMaxParticles - mParticleSystem.particleCount);
}
}
}
}

实现过程是对于每一个ParticleSystem加入一个额外的组件,通过该组件来原始PS的更新。

当中的更新原则是推断当前活动的粒子数量,假设粒子数小于指定的最大值的话就再又一次生成几个新的粒子出来进行填充。

此外。出于性能考虑。当中Update内部的操作也能够移至FixedUpdate中进行以降低更新次数。但它并没有带来太大的区别在视觉上。

版权声明:本文博主原创文章,博客,未经同意,不得转载。

Unity Notes调制粒子系统的颗粒的最大数目的更多相关文章

  1. Unity 中实现粒子系统的 LOD

    模型的 LOD 比较简单,直接使用 Unity 提供的组件 LODGroup 挂到模型物体上,然后分别指定不同 LOD 级别的 Renderer 即可. LODGroup 并不是用距离来控制 LOD, ...

  2. 关于Unity中的UGUI优化,你可能遇到这些问题

    https://blog.uwa4d.com/archives/QA_UGUI-1.html 关于Unity中的UGUI优化,你可能遇到这些问题 作者:admin / 时间:2016年11月08日 / ...

  3. Unity粒子系统特性

    经代码测试分析,unity粒子系统 Shiruken粒子系统的可编程性比较差.所有的Modules都无法通过代码控制. 可以用ParticleSystem.SetParticles设置粒子,但是设置进 ...

  4. Unity 3D 粒子系统的一点经验

    http://hunterwang.diandian.com/post/2012-10-21/40041523890 最近做东西需要增加效果,简单的运用了一下粒子效果,真心感觉比较难调整好效果.同时也 ...

  5. 【Unity】9.3 粒子系统生成器详解

    分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 上一节已经介绍过了在Unity 5.x中两种创建粒子效果的方式(方式1.方式2). 这一节我们主要学习第2种方式的基本概 ...

  6. 【Unity】9.1 导入粒子系统组件

    分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 Unity 5.x已经自带了粒子系统组件,新建工程后只需要直接导入它就可以使用了. 二.导入Unity自带的粒子系统组件 ...

  7. 【Unity】第9章 粒子系统

    分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 粒子是在三维空间中渲染出来的二维图像,主要用于在场景中表现如烟.火.水滴.落叶.--等各种效果. Unity粒子系统 ( ...

  8. Unity粒子系统

    最近比较清闲,就重新看了一遍例子系统,感觉能把效果做的炫酷对于初学者来说并不是一件容易的事,但是回头想想,最重要的原因可能还是没有把Particle Systems组件研究透吧,温故而知新,一起复习一 ...

  9. Unity 文字爆炸(风化)消失效果 粒子系统应用

    利用Unity的粒子系统,使用C#代码控制粒子的位置和速度,实现文字风化爆炸的效果. Unity的东西,不像flash,不能直接放到网页中,没办法了,只能放截图了.有兴趣的可以下载看看:text_ex ...

随机推荐

  1. 【Java】 实现一个简单文件浏览器(1)

    学习Java的Swing的时候写的一个超简单文件浏览器 效果如图: 项目结构: 这里面主要用了两个控件,JTree和JTable 下面先说下左侧的文件树如何实现: 首先是FileTree类,继承于JT ...

  2. BZOJ 3224: Tyvj 1728 普通平衡树(BST)

    treap,算是模板题了...我中间还一次交错题... -------------------------------------------------------------------- #in ...

  3. ORACLE备份手记

    嘛的,最近一直写EPOLL的游戏服务端搞的头晕,BOSS说了要备份ORACLE,由于DBA离职了,搞这个事情搞的很蛋疼,关掉实例后备份数据库各种连接不到实例,本来今晚要完成泡泡堂游戏的DX版的,郁闷 ...

  4. IntelliJ IDEA中创建并运行scala应用程序

    1.安装scala插件 2.创建scala项目 下载scala SDK,如果你已经下载了,选择你所下载的版本,点击OK

  5. 关于Python的self指向性

    Python的self是指向类的实例化对像,而不是类本身,每次调用类的实例化即self指向此实例化对像,如下代码: class Person: def __init__(self,name): sel ...

  6. web api 开发之 filter

     1.使用filter之前应该知道的(不知道也无所谓,哈哈!) 谈到filter 不得不先了解下aop(Aspect Oriented Programming)面向切面的编程.(度娘上关于aop一大堆 ...

  7. QTableView表格滚动条样式(QSS真是细致到家了)

    环境:Qt5.3 IDE:QtCreator 效果预览: 垂直与水平滚动条样式 代码: ui->QTableView->verticalScrollBar()->setStyleSh ...

  8. golang ODBC 访问access数据库(问题解决之心理路程)

    最近项目需要,需要操作access,以前是用VC++ OLE访问,网络用ACE库,感觉很庞大...决定用go试试 网上用的最多的就是这个https://github.com/weigj/go-odbc ...

  9. Microsoft SQL Server 混合云博客系列

    Microsoft 云操作系统愿景的核心支柱之一就是借助我们的混合云基础结构改造数据中心.在 Windows Azure 基础结构服务正式发布后的几个月里,我们一直在发布博客,介绍 Windows A ...

  10. BZOJ3231(矩阵连乘,稍有点复杂)

    题目:3231: [Sdoi2008]递归数列 题意: 一个由自然数组成的数列按下式定义:   对于i <= k:ai = bi 对于i > k: ai = c1ai-1 + c2ai-2 ...