Advertisement
Leonniar

Coroutine Problem

Jul 16th, 2022
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.65 KB | None | 0 0
  1. public void OnExecuteClick()
  2.     {
  3.         is_moving = true;
  4.         print(is_moving + "1");
  5.         if (move_dir == "up")
  6.         {
  7.             Vector2 up_dir = new Vector2(XCORD, YCORD);
  8.             move_player_cr = StartCoroutine(MovePlayer(up_dir));
  9.         }
  10.         if (move_dir == "down")
  11.         {
  12.             Vector2 down_dir = new Vector2(-XCORD, -YCORD);
  13.             move_player_cr = StartCoroutine(MovePlayer(down_dir));
  14.         }
  15.         if (move_dir == "left")
  16.         {
  17.             Vector2 left_dir = new Vector2(-XCORD, YCORD);
  18.             move_player_cr = StartCoroutine(MovePlayer(left_dir));
  19.         }
  20.         if (move_dir == "right")
  21.         {
  22.             Vector2 right_dir = new Vector2(XCORD, -YCORD);
  23.             move_player_cr = StartCoroutine(MovePlayer(right_dir));
  24.         }
  25.     }
  26.  
  27.  
  28.     private IEnumerator MovePlayer(Vector2 direction)
  29.     {
  30.         print(is_moving + "2");
  31.         is_moving = true;
  32.  
  33.         float elapsed_time = 0;
  34.  
  35.         orig_pos = transform.position;
  36.         target_pos = orig_pos + direction;
  37.  
  38.         while(elapsed_time < move_time)
  39.         {
  40.             transform.position = Vector2.Lerp(orig_pos, target_pos, (elapsed_time / move_time));
  41.             elapsed_time += Time.deltaTime;
  42.             print("step" + i);
  43.             yield return null;
  44.         }
  45.      
  46.  
  47.         yield return new WaitForSeconds(0.2f);
  48.  
  49.         transform.position = target_pos;
  50.         if (i > 1)
  51.         {
  52.             i--;
  53.             print(i);
  54.             OnExecuteClick();
  55.         }
  56.         if(i == 1)
  57.         {
  58.             is_moving = false;
  59.         }
  60.      
  61.         print(is_moving + "4");
  62.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement