关于在unity中使用序列帧动画

Posted 萨瓦迪卡麦兜兜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于在unity中使用序列帧动画相关的知识,希望对你有一定的参考价值。

 //动画数组
    public object[] anim;
    //限制一秒多少帧
    public float fps = 30;
    //帧序列
    private int nowFram;
    //记录当前时间
    private float switchTime;
    public string path = "Texture/33";

    public bool isLoop = false;

    public Image image;

    public Texture2D texture;
    void Awake()
    {

       anim = Resources.LoadAll(path);
    }

    void Update()
    {

        if (anim == null)
        {
            anim = Resources.LoadAll(path);
        }
       DrawAnimation(anim);
    }

    void DrawAnimation(object[] tx)
    {
        switchTime += Time.deltaTime;
        if (switchTime >= 1.0 / fps)
        {

            nowFram++;
            switchTime = 0;
            if (nowFram >= tx.Length)
            {
                if (isLoop)

                    nowFram = 0;
                else
                    return;
            }
        }
        if (nowFram < tx.Length)
        {
            texture = (Texture2D)tx[nowFram];
           Sprite sp = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
            image.sprite = sp;
        }

    }

如果在运行时,出现报错,说是类型无法转换的错误的话。可能是你把图片类型转换成sprite了。我们在unity中在把塔转换成texture格式在运行就不会报错了。

 

以上是关于关于在unity中使用序列帧动画的主要内容,如果未能解决你的问题,请参考以下文章

Unity 动画系列一 属性动画 序列帧动画

unity shader序列帧动画代码,顺便吐槽一下unity shader系统

跟我一起学Unity3D代码中分割图片而且载入帧序列动画

Unity3d UGUI序列帧动画

关于Unity中的帧动画

Unity 2D:创建序列帧动画