๋‹˜๋œ๋‹˜๋œ

์ œ๊ฐ€ ์  ๋ชฌ์Šคํ„ฐ๋ฅผ ์Šคํฌ๋ฆฝํŠธ๋กœ MoveTowards๋กœ ์ด๋™์‹œํ‚ค๊ณ  ์žˆ๋Š”๋ฐ์—ผ


MoveTowards๋กœ ์ด๋™์‹œํ‚ค๊ณ , ๊ทธ ๋ชฉํ‘œ๋กœ ์ด๋™์‹œํ‚ค๋ฉด ๋ช‡ ์ดˆ๋™์•ˆ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ๋ชฉํ‘œ ์žฌ์„ค์ •ํ•˜๊ณ  ๋‹ค์‹œ ์ด๋™์‹œ์ผœ์—ผ


void FixedUpdate()

ย  ย  {

ย  ย  ย  ย  //๋žœ๋คํ•˜๊ฒŒ ์„ค์ •ํ•œ moveSpot์œผ๋กœ ํŒจํŠธ๋กค

ย  ย  ย  ย  transform.position = Vector2.MoveTowards(transform.position, randomPos, patrolSpeed * Time.deltaTime);


ย  ย  ย  ย  //moveSpot๊ณผ ํŒจํŠธ๋กคํ•˜๋Š” ์ ์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ์ข์•„์ง€๋ฉด ๋‹ค์Œ ์ด๋™ ๋ชฉํ‘œ๋ฅผ ์„ค์ •ํ•จ

ย  ย  ย  ย  if (Vector2.Distance(transform.position, randomPos)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  if (waitTime <= 0)

ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  minX = transform.position.x - 7;

ย  ย  ย  ย  ย  ย  ย  ย  maxX = transform.position.x + 7;

ย  ย  ย  ย  ย  ย  ย  ย  minY = transform.position.y - 7;

ย  ย  ย  ย  ย  ย  ย  ย  maxY = transform.position.y + 7;

ย  ย  ย  ย  ย  ย  ย  ย  randomPos = new Vector2(Random.Range(minX, maxX), Random.Range(minY, maxY));

ย  ย  ย  ย  ย  ย  ย  ย  waitTime = startWaitTime;

ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  ย  ย  else

ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  waitTime -= Time.deltaTime;

ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  }

ย  ย  }


์ด๋ ‡๊ฒŒ ํ•˜๊ณ ์žˆ๋Š”๋ฐ, ์–˜๊ฐ€ ์ด๋™์ค‘์—๋Š” ๊ณต๊ฒฉ์„ ์•ˆํ•˜๊ณ , ์ด๋™์ด ๋๋‚˜๋ฉด ๊ทธ ์ž๋ฆฌ์— ๋ฉˆ์ถฐ์„œ ์›๊ฑฐ๋ฆฌ ๊ณต๊ฒฉ์„ ํ•˜๊ฒŒ ํ•˜๊ณ ์‹ถ์–ด์—ฌ

๊ทธ๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ์–˜๊ฐ€ ์ด๋™ ์ค‘์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ์ฒดํฌํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์€๋ฐ ๊ทธ๋Ÿฐ ๊ฑด ์–ด๋–ป๊ฒŒ ํ•˜๋‚˜์—ฌ?


์ถ”๊ฐ€๋กœ, ์ด๊ฑด ์ง€๊ธˆ ์ œ๊ฐ€ ํ˜ผ์ž ํ•ด๊ฒฐํ•ด๋ณด๋ ค ๋…ธ๋ ฅํ•˜๊ณ ์žˆ๊ธด ํ•œ๋ฐ, ๋ฉฐ์น  ์งธ ๋ชจ๋ฅด๊ฒ ์–ด์„œ์š”

ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ฐ€๊นŒ์ด ๋‹ค๊ฐ€์˜ค๋ฉด ํ”Œ๋ ˆ์ด์–ดํ•œํ…Œ์„œ ๋ฉ€์–ด์ง€๊ฒŒ ํ•˜๊ณ ์‹ถ์€๋ฐ(์›๊ฑฐ๋ฆฌ ๋ชน์ด๋ผ์„œ ๋„๋ง๊ฐ€๋Š” ๊ฐœ๋…์ด์ก)

์ธ์‹ํ•˜๋Š” ๊ฑด ์•„๋งˆ overlapcircle๋กœ ํ•˜๋ฉด ๋ ๊ฒƒ๊ฐ™์€๋ฐ, ๋ฐฉํ–ฅ์„ ์–ด๋–ป๊ฒŒ ์ง€์ •ํ•ด์•ผ๋ ์ง€ ๋ชจ๋ฅด๊ฒ ์–ด์—ฝ

ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋‹ค๊ฐ€์˜ค๋Š” ๊ทธ ๋ฐฉํ–ฅ์„ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๊ฐ™์€ ๊ฒŒ ์ž‡๋‚˜์—ผ??

๊ทธ๋Ÿผ ๋ฏธ๋ฆฌ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹น