Invisibler.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. using UnityEngine;
  2. using System.Collections;
  3. public class Invisibler : MonoBehaviour
  4. {
  5. private float targetAlpha;
  6. private bool increase;
  7. private float speed = 1f;
  8. private Renderer[] rendererArr;
  9. private Material material;
  10. // Use this for initialization
  11. void Start ()
  12. {
  13. // Craft craft = GetComponent<Craft>();
  14. // if(craft.topPartTrans != null)
  15. // {
  16. // Renderer[] topRenderers = craft.topPartTrans.GetComponentsInChildren<SkinnedMeshRenderer>();
  17. // Renderer[] bottomRenderers = craft.bottomPartTrans.GetComponentsInChildren<SkinnedMeshRenderer>();
  18. // rendererArr = new Renderer[topRenderers.Length + bottomRenderers.Length];
  19. // for(int i=0; i<topRenderers.Length; i++)
  20. // {
  21. // rendererArr[i] = topRenderers[i];
  22. // }
  23. // for(int i=0; i<bottomRenderers.Length; i++)
  24. // {
  25. // rendererArr[topRenderers.Length + i] = bottomRenderers[i];
  26. // }
  27. // }
  28. // else
  29. // {
  30. // rendererArr = craft.bodyTrans.GetComponentsInChildren<SkinnedMeshRenderer>();
  31. // }
  32. // material = Instantiate<Material>(Resources.Load<Material> (Config.SHADOW_MATERIAL));
  33. // material.mainTexture = rendererArr[0].material.mainTexture;
  34. // for(int i=0; i<rendererArr.Length; i++)
  35. // {
  36. // rendererArr[i].material = material;
  37. // }
  38. }
  39. // Update is called once per frame
  40. void Update ()
  41. {
  42. bool allDone = true;
  43. Color color = material.color;
  44. float value = speed * GameTime.deltaTime;
  45. if(increase)
  46. {
  47. color.a += value;
  48. if(color.a >= targetAlpha)
  49. {
  50. color.a = targetAlpha;
  51. Craft craft = GetComponent<Craft>();
  52. for(int i=0; i<rendererArr.Length; i++)
  53. {
  54. rendererArr[i].material = craft.material;
  55. }
  56. }
  57. else
  58. {
  59. allDone = false;
  60. }
  61. }
  62. else
  63. {
  64. color.a -= value;
  65. if(color.a <= targetAlpha)
  66. {
  67. color.a = targetAlpha;
  68. }
  69. else
  70. {
  71. allDone = false;
  72. }
  73. }
  74. material.color = color;
  75. if(allDone)
  76. {
  77. Destroy(this);
  78. }
  79. }
  80. public static void Start(BattleObject battleObj, float alpha, bool increase)
  81. {
  82. Invisibler inv = battleObj.gameObject.AddComponent<Invisibler>();
  83. inv.targetAlpha = alpha;
  84. inv.increase = increase;
  85. }
  86. }