当前位置:   article > 正文

Unity 图片序列帧动画的四种方法_unity 如何将png序列转化成动画

unity 如何将png序列转化成动画
  1. //
  2. //方法一 序列帧
  3. // public Texture2D[] TexArray;
  4. //
  5. // private int currentIndex;
  6. //
  7. // private float countTime;
  8. //
  9. // void Start ()
  10. // {
  11. // currentIndex = 0;
  12. // countTime = 0.0f;
  13. // }
  14. //
  15. //
  16. // void OnGUI()
  17. // {
  18. // GUI.DrawTexture (new Rect (10, 10, 100, 100), TexArray [currentIndex]);
  19. //
  20. // countTime++;
  21. //
  22. // if (countTime%50 ==0) // %取余数 当countTime整除50时执行 相当于50帧后换图片 50改成越大间隔越长
  23. // {
  24. // currentIndex++;
  25. // if (currentIndex == TexArray.Length)
  26. // {
  27. // currentIndex = 0;
  28. // countTime = 0;
  29. // }
  30. // }
  31. // }
  32. // 方法二 协同
  33. // public Texture2D[] TexArray;
  34. //
  35. // private int currentIndex;
  36. //
  37. // void Start ()
  38. // {
  39. // StartCoroutine ("WaitForNext");
  40. //
  41. // }
  42. //
  43. // void OnGUI()
  44. // {
  45. // GUI.DrawTexture (new Rect (10, 10, 100, 100), TexArray [currentIndex]);
  46. // }
  47. //
  48. // IEnumerator WaitForNext()
  49. // {
  50. // while (true) //死循环 用于一直执行下去
  51. // {
  52. // yield return new WaitForSeconds(1.0f);
  53. // currentIndex++;
  54. //
  55. //
  56. // if (currentIndex == TexArray.Length)
  57. // {
  58. // currentIndex = 0;
  59. // }
  60. // }
  61. //
  62. //
  63. // }
  64. //方法三 Invoke
  65. //public Texture2D[] TexArray;
  66. //private int currentIndex;
  67. //void Start()
  68. //{
  69. // Invoke("ChangeIndex", 1.0f); //1秒之后执行ChangeIndex()函数
  70. //}
  71. //void OnGUI()
  72. //{
  73. // GUI.DrawTexture(new Rect(10, 10, 100, 100), TexArray[currentIndex]);
  74. //}
  75. //void ChangeIndex()
  76. //{
  77. // currentIndex++;
  78. // if (currentIndex == TexArray.Length)
  79. // {
  80. // currentIndex = 0;
  81. // }
  82. // Invoke("ChangeIndex", 1.0f); //隐约有点递归的味道 执行完后再执行
  83. //}
  84. //方法四 Invoke||material.mainTexture
  85. public Texture2D[] TexArray;
  86. private int currentIndex;
  87. void Start()
  88. {
  89. Invoke("ChangeIndex", 0.1f); //1秒之后执行ChangeIndex()函数
  90. }
  91. void Update()
  92. {
  93. if (Input.GetKeyDown(KeyCode.Y))
  94. {
  95. PlayInvoke();
  96. }
  97. if (Input.GetKeyDown(KeyCode.N))
  98. {
  99. StopInvoke();
  100. }
  101. GetComponent<Renderer>().material.mainTexture = TexArray[currentIndex];
  102. }
  103. void ChangeIndex()
  104. {
  105. currentIndex++;
  106. if (currentIndex == TexArray.Length)
  107. {
  108. currentIndex = 0;
  109. }
  110. Invoke("ChangeIndex", 0.05f);
  111. }
  112. public void PlayInvoke()
  113. {
  114. Invoke("ChangeIndex", 0.05f);
  115. currentIndex = 0;
  116. }
  117. public void StopInvoke()
  118. {
  119. CancelInvoke("ChangeIndex");
  120. currentIndex = 0;
  121. }


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

闽ICP备14008679号