以前尝试过用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.