当前位置:   article > 正文

Unity 序列帧补帧_unity序列帧插

unity序列帧插

因为最近项目使用序列帧做动画,然后美术提供的图片数量较少图片较大,图集放不下。所以写一小段代码用来生成中间插帧。 效果感觉还可以有种动态模糊的感觉。但是生成时性能堪忧。如果真的要使用的话可以提前在游戏读条的时候生成出来存着。播放序列帧的时候正常播放就行。

逻辑就是根据两张图片的像素颜色做颜色插值,太复杂做法的我也不懂,做到现在这个程度又正好满足我的需求  。          ;)

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. public class TestScript : MonoBehaviour
  6. {
  7. public Sprite sprite1;
  8. public Sprite sprite2;
  9. public Image image;
  10. // Start is called before the first frame update
  11. void Start()
  12. {
  13. image.sprite = CreatorSprite(sprite1, sprite2);
  14. }
  15. // Update is called once per frame
  16. void Update()
  17. {
  18. }
  19. public Sprite CreatorSprite(Sprite spriteA, Sprite spriteB)
  20. {
  21. Color[] GetPixelsA = spriteA.texture.GetPixels();
  22. Color[] GetPixelsB = spriteB.texture.GetPixels();
  23. int GetPixelsA_Length = GetPixelsA.Length;
  24. int GetPixelsB_Length = GetPixelsB.Length;
  25. int maxCount = GetPixelsA_Length;
  26. Color[] colors = new Color[maxCount];
  27. Color begin;
  28. Color end;
  29. for (int i = 0; i < maxCount; i++)
  30. {
  31. if (GetPixelsA_Length > i)
  32. {
  33. begin = GetPixelsA[i];
  34. }
  35. else
  36. {
  37. begin = Color.clear;
  38. }
  39. if (GetPixelsB_Length > i)
  40. {
  41. end = GetPixelsB[i];
  42. }
  43. else
  44. {
  45. end = Color.clear;
  46. }
  47. colors[i] = Color.Lerp(begin, end, 0.5f);
  48. }
  49. int w = spriteA.texture.width;
  50. int h = spriteA.texture.height;
  51. Rect rect = spriteA.rect;
  52. Texture2D texture2D = new Texture2D(w, h);
  53. texture2D.SetPixels(colors);
  54. texture2D.Apply();
  55. Sprite sprite = Sprite.Create(texture2D, rect, new Vector2(0.5f, 0.5f));
  56. return sprite;
  57. }
  58. }


 

运行时如果有以下报错,点击对应图片勾选Read/Write Enable。

UnityException: Texture '1' is not readable, the texture memory can not be accessed from scripts. You can make the texture readable in the Texture Import Settings.】解决方法

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/89854
推荐阅读
相关标签
  

闽ICP备14008679号