unity 实现闪电特效

之前尝试过用trail实现闪电特效,效果并不理想:计算量大、视觉尴尬。

所以后来改用序列帧来实现。

step1.准备素材

所需工具:

  AfterEffect [PhotoShop]

步骤:

  1.打开AE

  2.新建Comp,我们选择512x1024大小

  3.新建Solid

  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.

 

转载于:https://www.cnblogs.com/leosfly/p/6756045.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值