Advertisement
JJCUBER

coroutine issue

Aug 22nd, 2018
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.47 KB | None | 0 0
  1. private IEnumerator changeTree(Vector2 vec) // Has to yield return something, even if you return null
  2.     {
  3.         print("IENUMERATOR STARTED!");
  4.         Vector2 playerPos = (Vector2)player.transform.position;
  5.         playerPos = new Vector2(Mathf.Round(playerPos.x), Mathf.Round(playerPos.y));
  6.         while(playerPos - new Vector2(0,1) == vec || playerPos - new Vector2(0,2) == vec)
  7.         {
  8.             // Renderer renderer = GameObject.Find(vec.x + " , " + vec.y).GetComponent<Renderer>();
  9.             // float alpha = GameObject.Find(vec.x + " , " + vec.y).GetComponent<Renderer>().material.color.a;
  10.             GameObject prefab = GameObject.Find(vec.x + " , " + vec.y);
  11.  
  12.             // Dictionary<int, Transform> children = new Dictionary<int, Transform>();
  13.  
  14.             // int count = 0;
  15.  
  16.             foreach(Transform child in prefab.transform)
  17.             {
  18.                 // children.Add(count, child);
  19.                 // count++;
  20.  
  21.                 // child.GetComponent<SpriteRenderer>().color = new Color(0.1f, 0.1f, 0.1f);
  22.                 float alpha = child.GetComponent<SpriteRenderer>().color.a;
  23.  
  24.                 if(alpha > 0.2f) child.GetComponent<SpriteRenderer>().color = new Color(1.0f, 1.0f, 1.0f, Mathf.Lerp(alpha, 0.2f, 2 * Time.deltaTime));
  25.             }
  26.  
  27.             // float alpha = children[0].GetComponent<Renderer>().material.color.a;
  28.             /*
  29.             if(alpha > 0.2f)
  30.             {
  31.                 // float newAlpha = Mathf.Lerp(alpha, 0.2f, 2 * Time.deltaTime);
  32.                 // children[0].GetComponent<Renderer>().material.color.a = newAlpha;
  33.                 // Renderer renderer = children[2].GetComponent<Renderer>();
  34.                 // renderer.material.color.a = Mathf.Lerp(alpha, 0.2f, 2 * Time.deltaTime);
  35.                 //children[2].alpha =
  36. ]           }*/
  37.         }
  38.  
  39.         float alpha2 = 0.0f;
  40.         while(alpha2 < 1.0f)
  41.         {
  42.             GameObject prefab = GameObject.Find(vec.x + " , " + vec.y);
  43.             foreach(Transform child in prefab.transform)
  44.             {
  45.                 alpha2 = child.GetComponent<SpriteRenderer>().color.a;
  46.  
  47.                 child.GetComponent<SpriteRenderer>().color = new Color(1.0f, 1.0f, 1.0f, Mathf.Lerp(alpha2, 1.0f, 2 * Time.deltaTime));
  48.             }
  49.             // float alpha = GameObject.Find(vec.x + " , " + vec.y).GetComponent<Renderer>().material.color.a;
  50.             // alpha =
  51.            
  52.             // if(alpha < 1.0f)
  53.             // {
  54.             //  alpha =
  55.             // }
  56.             // else yield return null;
  57.         }
  58.        
  59.         tilesWithCoroutines.Remove(vec);
  60.         print("COMPLETE!");
  61.         yield return null;
  62.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement