Unity中控制粒子系統的最大粒子數量,unity粒子

來源:互聯網
上載者:User

Unity中控制粒子系統的最大粒子數量,unity粒子

Unity中的粒子系統使用起來還是比較方便的。不過在實際過程中遇到這樣的一個問題:需要動態來控制一個粒子系統組件所能產生的最大粒子數。看doc上說是有maxParticles來控制,但實際上卻沒有這個開放的參數,只能通過其它的方式來實現。

這裡可以通過手動產生粒子的方式來實現,也即ParticleSystem中的Emit方法,具體代碼如下:

public class ParticleSystemComp : MonoBehaviour{ParticleSystem mParticleSystem = null;int mMaxParticles = 0;public ing 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中進行以減少更新次數,但是視覺上並不會帶來太大的差異。


現在Unity3D 35的粒子系統預設是一直在不停的發射,怎實現只發射一次,跪

在Emission裡面把Rate改為0,然後Bursts點一下加號
Time設定為0
Particles就填你設定的最大粒子數
這樣就會一次性把你設定的粒子數發射出去
 
unity3d粒子系統可以做出任何類型的粒子

任何這個詞太絕對了。沒有哪款引擎能說它可以做出任何效果。U3D作出絕大多數效果還是可以的
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.