3d๋ผ collider ๊ณ„์† ์ผœ๋‘๋ฉด ๊ณต๊ฒฉ๋ชจ์…˜์„ ํ•˜์ง€ ์•Š์•„๋„ collider์— ๋‹ฟ์ด๋ฉด ์ฒ˜๋งž์•„์„œ

coroutine์„ ์ด์šฉํ•ด์„œ ๊ป๋‹ค ์ผฐ๋‹ค ํ•ด๋’€๋Š”๋ฐ

๋ฒ”์œ„๋Š” isrange๋กœ ํ•ด๋†จ๊ณ 
๊ทผ๋ฐ isrange์ผ ๋•Œ attack๋ชจ์…˜์€ ๋ฐ˜๋ณตํ•˜๋Š”๋ฐ coroutine์€ ํ•œ๋ฒˆ๋ฐ–์— ์‹คํ–‰์„ ์•ˆํ•˜๋”๋ผ๊ณ 

isrange์ผ ๋•Œ coroutine๋„ ๊ณ„์† ๋ฐ˜๋ณต์„ ํ–ˆ์œผ๋ฉด ์ข‹๊ฒ ๋Š”๋ฐ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ while์ด๋ž‘ do while์“ฐ๋‹ˆ๊นŒ ์‹คํ–‰์ด ์•ˆ๋˜๋”๋ผ๊ณ  ใ…‹


์ฝ”๋“œ๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ


if (isRange) //isrange์ผ ๋•Œ

{

animator.SetBool("isRun", false); //๋‹ฌ๋ฆฌ๋Š”๊ฑฐ ๋ฉˆ์ถ”๊ณ 

agent.speed = 0;

StartCoroutine(ChangeSpeedAfterDelay(2.5f)); //๊ณต๊ฒฉ coroutine

}


//๊ณต๊ฒฉ coroutine

IEnumerator ChangeSpeedAfterDelay(float newSpeed)

{

agent.speed = 0;

animator.SetBool("Attack", true); //๊ณต๊ฒฉ ์• ๋‹ˆ์ด์…˜

yield return new WaitForSeconds(0.5f);

handCollider.enabled = true; //enemy collider

animator.SetBool("Attack", false);


yield return new WaitForSeconds(0.5f);

handCollider.enabled = false;


yield return new WaitForSeconds(1f);

agent.speed = newSpeed;

}