以前嘗試過用trail實現閃電特效,效果並不理想:計算量大、視覺尷尬。工具
因此後來改用序列幀來實現。動畫
step1.準備素材this
所需工具:spa
AfterEffect [PhotoShop]code
步驟:orm
1.打開AEblog
2.新建Comp,咱們選擇512x1024大小隊列
3.新建Solidip
4.新建Advanced Lightning資源
5.選中主幹衰退
6.點擊衰退前的時鐘按鈕,使它變成動畫
7.在時間軸調整閃電衰退參數
8.添加到渲染隊列,設置格式爲PNG序列,設置顏色模式爲A+RGB
9.渲染
[10.ps中微調效果]
extra:
若是想實現更復雜的閃電特效,能夠用JavaScript編寫腳本控制參數。
step2.編寫C#腳本
所需工具:
IDE unity
步驟:
1.新建cs腳本
public class SerialAnim : MonoBehaviour { public string filesName; public Texture2D[] textures; public Material target; public float fps = 30; private float _spf; private float _timeRemain; private int _index = 0; // Use this for initialization void Start () { if (filesName.Length > 0) { string[] subs = filesName.Split(','); int iFrom = int.Parse(subs[1]); int iTo = int.Parse(subs[2]); for(int i = iFrom;i<=iTo;i++){ textures[i-iFrom] = Resources.Load(string.Format(subs[0],i),typeof(Texture2D)) as Texture2D; print (string.Format(subs[0],i)); } } _spf = 1 / fps; target.mainTexture = textures[_index]; } // Update is called once per frame void Update () { var dt = Time.deltaTime; _timeRemain += dt; while (_timeRemain>_spf) { _index = (_index+1)%textures.GetLength(0); target.mainTexture = textures[_index]; _timeRemain -= _spf; } } }
step3.管理資源
所需工具:
unity
步驟:
1.把素材添加到Resources/Textures
2.腳本File Name鍵入:Textures/lightning_{0:0#},0,12
[也能夠一張一張的加入到Textures列表裏]
The End.