unity序列帧特效动态创建播放

这篇博客介绍了一种简化Unity序列帧特效创建的方法,不再需要预先创建prefab。只需将图片放入指定资源文件夹,通过SpriteAniTool.AddEffect静态方法即可动态添加并播放特效。实现原理包括根据图片名访问全局字典,动态加载资源,计算并更新UV以播放序列帧。特效方向可按参数调整,与地面或相机平行。提供的脚本只有100行,并已添加注释。
摘要由CSDN通过智能技术生成

以前的项目里面用过一个序列帧特效的类,但是很麻烦,每一个特效都需要预先创建好perfab,才可以使用播放,而且不能动态创建

昨天自己写了一个方便一点的只需要把图片放到resources文件夹下面的AniEffect里面就可以了(可以改成自己的文件夹路径)


用法:静态方法SpriteAniTool.AddEffect(多个参数);既可以在场景中添加序列帧特效了


原理:根据名字(要与图片的名称相同),访问一个全局字典,如果这个特效已经加载过,则直接取出该特效的材质球赋予给创建的特效面片,如果这个特效从来没有用过,那么就去resources文件下下面找,至于序列帧的播放,和大家的方法基本一样,计算uv的tilling 和offect即可,offect保存在一个数组里面,播放序列帧的时候根据速度去数组里面取一个vector2的值,特效就播放了


注意事项:1.特效有两种,根据最后一个参数bool OnGround,如果为true,特效与地面平行,如果为false,特效则和摄像机平行


by the way :脚本加注释一共100行,特意的

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class SpriteAniTool{
	public static Dictionary<string,Material> EffectLib = new Dictionary<string, Material>();
	/// <summary>
	/// 在场景中添加一个特效,按位置添加,参数代表:名字,持续时间,列,行,速度(帧),位置,是否在地面
	/// </summary>
	public  static void  AddEffect(string name, float time, int clomn, int
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值