本文章由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
[Particle Scaler](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
連接:[粒子縮放源碼工程免分下載](http://download.csdn.net/detail/cartzhang/9207203)
-------------------------------------
### 就是這樣。
若有問題,請隨時聯系!
非常感謝!!!
- 前言
- Unity隨機Prefab,自動前往某點處理
- Unity導入FBX自動進行動畫切分
- Unity5中的粒子縮放(附測試源碼)
- Unity和虛幻的比較
- Unity 實現Log實時輸出到屏幕或控制臺上&lt;一&gt;
- Unity 實現Log實時輸出到屏幕或控制臺上&lt;二&gt;
- Unity的Json解析<一>--讀取Json文件
- Unity的Json解析<二>–寫Json文件
- Unity 的OCulus VR開發遇到的坑---OC版本差異
- Unity中一鍵創建常用文件夾
- Unity版本與虛擬現實頭盔Deepoon大朋版本測試
- Unity 多場景打包
- Untiy中的數據平滑處理
- Unity中SendMessage和Delegate效率比較