private IEnumerator RouteRoutine(int routeNumber)

ย  ย  {

ย  ย  ย  ย  coroutineAllowed = false;


ย  ย  ย  ย  var p0 = routes[routeNumber].GetChild(0).position;

ย  ย  ย  ย  var p1 = routes[routeNumber].GetChild(1).position;

ย  ย  ย  ย  var p2 = routes[routeNumber].GetChild(2).position;

ย  ย  ย  ย  var p3 = routes[routeNumber].GetChild(3).position;


ย  ย  ย  ย  while (tParam < 1)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  tParam += Time.deltaTime * speed;

ย  ย  ย  ย  ย  ย  spherePosition = Mathf.Pow(1 - tParam, 3) * p0

ย  ย  ย  ย  ย  ย  ย  ย  + 3 * Mathf.Pow(1 - tParam, 2) * tParam * p1

ย  ย  ย  ย  ย  ย  ย  ย  + 3 * (1 - tParam) * Mathf.Pow(tParam, 2) * p2

ย  ย  ย  ย  ย  ย  ย  ย  + Mathf.Pow(tParam, 3) * p3;

ย  ย  ย  ย  ย  ย  transform.position = spherePosition;


ย  ย  ย  ย  ย  ย  var distance_ = Vector3.Distance(lastPosition, transform.position) * 10f;

ย  ย  ย  ย  ย  ย  Debug.Log("Speed: " + distance_.ToString("0.00"));


ย  ย  ย  ย  ย  ย  lastPosition = transform.position;


ย  ย  ย  ย  ย  ย  yield return new WaitForEndOfFrame();

ย  ย  ย  ย  }


ย  ย  ย  ย  tParam = 0f;

ย  ย  ย  ย  routeToGo += 1;

ย  ย  ย  ย  if (routeToGo > routes.Length - 1) routeToGo = 0;


ย  ย  ย  ย  coroutineAllowed = true;

ย  ย  }


์ด์ œ ์ด๊ฑธ ๊ฐ™์€ ์†๋„๋กœ ์ด๋™ํ•˜๊ฒŒ ํ•ด์•ผ ํ•˜๋Š”๋ฐ ์ด๋Ÿฌ๋ ค๋ฉด ์Šคํ”Œ๋ผ์ธ ๊ธธ์ด๋ฅผ ๊ตฌํ•ด์•ผ ๋˜๋Š” ๊ฑฐ์ž–์—ฌ?


์• ๋ผ์ด ใ……ใ…‚ ๋•Œ๋ ค ์น˜์šธ๊นŒ?


๋ˆ„๊ฐ€ ๊ฒŒ์ž„ ๋งŒ๋“œ๋Š”๊ฑฐ ์ˆ˜ํ•™ ํ•„์š” ์—†๋‹ค ํ–ˆ๋ƒ!!