Unity5中的粒子縮放(附測試原始碼)
阿新 • • 發佈:2019-02-09
本文章由cartzhang編寫,轉載請註明出處。 所有權利保留。
文章連結:http://blog.csdn.net/cartzhang/article/details/49363241
作者:cartzhang
開始:
關於Unity 5 中的例子縮放,搜尋了半天竟然還有人說:
As far as I know that is not possible to do from code.
然後到官方找來了外掛
https://www.assetstore.unity3d.com/cn/#!/content/4400
這貨居然還需要10刀。我表示很不滿啊!
BTW: 官方下載10美刀的居然只能在編輯器中使用,在執行中然並卵的節奏還是讓人疼啊!
---------
方法:
然後功夫不負有心人!!!找到了解決方案。
之前程式碼上有個public void UpdateScale()
我不瞭解是不是之前的版本的函式。反正是現在沒戲了。
做了簡單修改,然後就大功告成了。
還是程式碼啊!
using UnityEngine; using System.Collections; using System.Collections.Generic; public class ScaleParticles : MonoBehaviour { // @zpj default scale size; public float ScaleSize = 1.0f; private List<float> initialSizes = new List<float>(); void Awake() { // Save off all the initial scale values at start. ParticleSystem[] particles = gameObject.GetComponentsInChildren<ParticleSystem>(); foreach (ParticleSystem particle in particles) { initialSizes.Add(particle.startSize); ParticleSystemRenderer renderer = particle.GetComponent<ParticleSystemRenderer>(); if (renderer) { initialSizes.Add(renderer.lengthScale); initialSizes.Add(renderer.velocityScale); } } } void Start() { gameObject.transform.localScale = new Vector3(ScaleSize, ScaleSize, ScaleSize); // Scale all the particle components based on parent. int arrayIndex = 0; ParticleSystem[] particles = gameObject.GetComponentsInChildren<ParticleSystem>(); foreach (ParticleSystem particle in particles) { particle.startSize = initialSizes[arrayIndex++] * gameObject.transform.localScale.magnitude; ParticleSystemRenderer renderer = particle.GetComponent<ParticleSystemRenderer>(); if (renderer) { renderer.lengthScale = initialSizes[arrayIndex++] * gameObject.transform.localScale.magnitude; renderer.velocityScale = initialSizes[arrayIndex++] * gameObject.transform.localScale.magnitude; } } } }
使用:
建立一個空物件,把上面的名字為ScaleParticles.cs的拖拽到空物件上。把你需要的粒子效果作為一個子物件掛載到空物件上。
如下所示;
修改檢視板中的scale size 大小,來修改粒子大小。
是不是很簡單實用呢。
原始碼呢:
免分下載地址如下: 原始碼地址:http://download.csdn.net/detail/cartzhang/9207203-------------------------------------