123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- using UnityEngine;
- using System.Collections;
- public class Invisibler : MonoBehaviour
- {
- private float targetAlpha;
- private bool increase;
- private float speed = 1f;
- private Renderer[] rendererArr;
- private Material material;
- // Use this for initialization
- void Start ()
- {
- // Craft craft = GetComponent<Craft>();
- // if(craft.topPartTrans != null)
- // {
- // Renderer[] topRenderers = craft.topPartTrans.GetComponentsInChildren<SkinnedMeshRenderer>();
- // Renderer[] bottomRenderers = craft.bottomPartTrans.GetComponentsInChildren<SkinnedMeshRenderer>();
- // rendererArr = new Renderer[topRenderers.Length + bottomRenderers.Length];
- // for(int i=0; i<topRenderers.Length; i++)
- // {
- // rendererArr[i] = topRenderers[i];
- // }
- // for(int i=0; i<bottomRenderers.Length; i++)
- // {
- // rendererArr[topRenderers.Length + i] = bottomRenderers[i];
- // }
- // }
- // else
- // {
- // rendererArr = craft.bodyTrans.GetComponentsInChildren<SkinnedMeshRenderer>();
- // }
- // material = Instantiate<Material>(Resources.Load<Material> (Config.SHADOW_MATERIAL));
- // material.mainTexture = rendererArr[0].material.mainTexture;
- // for(int i=0; i<rendererArr.Length; i++)
- // {
- // rendererArr[i].material = material;
- // }
- }
-
- // Update is called once per frame
- void Update ()
- {
- bool allDone = true;
- Color color = material.color;
- float value = speed * GameTime.deltaTime;
- if(increase)
- {
- color.a += value;
- if(color.a >= targetAlpha)
- {
- color.a = targetAlpha;
- Craft craft = GetComponent<Craft>();
- for(int i=0; i<rendererArr.Length; i++)
- {
- rendererArr[i].material = craft.material;
- }
- }
- else
- {
- allDone = false;
- }
- }
- else
- {
- color.a -= value;
- if(color.a <= targetAlpha)
- {
- color.a = targetAlpha;
- }
- else
- {
- allDone = false;
- }
- }
- material.color = color;
- if(allDone)
- {
- Destroy(this);
- }
- }
- public static void Start(BattleObject battleObj, float alpha, bool increase)
- {
- Invisibler inv = battleObj.gameObject.AddComponent<Invisibler>();
- inv.targetAlpha = alpha;
- inv.increase = increase;
- }
- }
|