博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity Notes调制粒子系统的颗粒的最大数目
阅读量:6091 次
发布时间:2019-06-20

本文共 960 字,大约阅读时间需要 3 分钟。

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
(); 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中进行以降低更新次数。但它并没有带来太大的区别在视觉上。

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

你可能感兴趣的文章
白山云科技 CTO 童剑:空降后,如何有技术又有艺术地破局?
查看>>
自动化运维工具Ansible之roles
查看>>
MongoDB分片搭建
查看>>
5、Jenkins Email Extension Plugin插件使用说明
查看>>
Flex(mx:DataGrid)实现数据过滤显示
查看>>
【Python】软件管理工具--pip
查看>>
删除Sybase数据库设备
查看>>
Eclipse编译PostgreSQL 9.2.2
查看>>
Class字节码文件结构详解
查看>>
[又拍云]云计算中又一架重要的马车
查看>>
Ruby on Rails 学习笔记(一)
查看>>
Linux下安装pymysql步骤
查看>>
PHP+MySQL数据库教程
查看>>
jQuery UI Datepicker 添加时分秒
查看>>
linux查看和终止进程
查看>>
Beyond Compare比较表格小技巧
查看>>
以太坊·代币开发详解
查看>>
LibreOffice 中文版安装指南
查看>>
c++中调用c代码的3 种方法
查看>>
ISO C 标准定义的头文件
查看>>