์๊ฑฐ ์ฌ๋ ค์ ๊ณ์ ์ง๋ฌธํ๋ ์ฌ๋์ธ๋ฐ
์ด์ ํ๊ต ์ค๊ฐ๊ณ ์ฌ ๋๋ด์ ๋ค์ ์ด๊ฑฐ ์๋ํด ๋ณผ ์๊ฐ์ด ์ข ๋๋ค ์ถ์๋๋ฐ
์ด๋์ ๋ ์ฝ๋ฃจํด์ ๋ํ ๊ฑธ ๊ณต๋ถํ๊ณ ํด์ ์ด์ ์ ๋ฐ์ดํธ๋๋ฌธ์ ์ ๋๋ฉ์ด์ ์ด ์บ์ฌ๋๋ ๊ฑด ๋ง์๋๋ฐ
์ด๋ฒ ๋ฌธ์ ๋ boolํ์ Attack์ด ๋ฌธ์ ์...
ํน์ ํค๋ฅผ ๋๋ฅด๋ฉด Attack์ด true๊ฐ ๋ ๋ค์์ 1ํ ์คํํ๊ณ ๋ค์ false๊ฐ ๋ผ์ผ ํ๋๋ฐ
private void Update() {
if(Input.GetKeyDown(KeyCode.W)) {
// Y 1
StartCoroutine(GetAnimationY(1));
} else if(Input.GetKeyDown(KeyCode.S)) {
// Y -1
StartCoroutine(GetAnimationY(-1));
} else if(Input.GetKeyDown(KeyCode.A)) {
// X -1
StartCoroutine(GetAnimationX(-1));
} else if(Input.GetKeyDown(KeyCode.D)) {
// X 1
StartCoroutine(GetAnimationX(1));
}
StartCoroutine(GetAnimationIdle());
}
IEnumerator GetAnimationX(int a) {
animator.SetFloat("DirX", a);
animator.SetFloat("DirY", 0);
animator.SetBool("Attack", true);
yield return new WaitForSeconds(1f);
}
IEnumerator GetAnimationY(int a) {
animator.SetFloat("DirY", a);
animator.SetFloat("DirX", 0);
animator.SetBool("Attack", true);
yield return new WaitForSeconds(1f);
}
IEnumerator GetAnimationIdle() {
// animator.SetBool("Attack", false);
yield return new WaitForSeconds(1f);
}
์ ์ด์ด๊ธฐ ๋งจ ๋ฐ์ GetAnimationIdle() ์์ ์ ๋ถ๋ถ์ ์ฃผ์์ฒ๋ฆฌํด์ ์์ ๋๊น
์ ์๋ํจ ์ ๋ถ๋ถ์ด ๋ฌธ์ ์ธ๊ฑด๋ฐ
์ด์ผ ํ๋ฉด ํค๋ฅผ ๋๋ฅผ ๋ ๋ด๋ ค์ฐ๊ธฐ 1ํ ํธ์ถํ๊ณ ๋ฉ์ถ๊ฒ ๋ง๋ค ์ ์์???
Trigger์์ฐ๊ณ boo์ฐ๋ ์ด์ ๊ฐ ๋ฐ๋ก ์์?
์ ํ๋ธ์์ ํ๋ผ๊ณ ํ๋๊ฑฐ ๋ฌด์์ ๋ฐ๋ผํด์ ๊ฑฐ๊ธฐ์ bool ์ฐ๊ธธ๋ ๋๋ ์ผ์
bool๋ง๋ค๋ ๋ณด๋ฉด bool๋ง๊ณ trigger๋ง๋๋๊ฒ๋ ์์ ์ธ๋ animator.SetTrigger("Attack"); ํ๋ฉด ๋
์ผ๋จ ๊ทธ๋์ ํธ๋ฆฌ๊ฑฐ๋ก Attack์ด๋ Stand ๋ง๋ค๊ณ ํค๋ฅผ ๋๋ฅผ ๋ ์ดํ ์๋๋ฉด Stand ํ๋๊น ์ ๊ฑฐ๋ ๋๊ฐ์ ๋ฌธ์ ๋ ์ ์ด๊ฑฐ ์ด์ผ ํด์ผํจ...
trigger์ ์ฐ๊ฒฐ๋ ์ดํ์ด ๋๋๋ฉด Stand๋ก ๊ฐ๊ฒ ์ฐ๊ฒฐํด์ผ์ง. ๊ทธ๋ฌ์ง๋ง๊ณ ์ํ๋ก์ ํธ ํ์ ์ ํ๋ธ์ ์ ๋ํฐ ์ ๋๋ฉ์ด์ ๊ฐ๋ฅด์ณ์ฃผ๋ ๊ฐ์ ๋ณด๊ณ ์ด๋๋ฉ์ด์ ์์งํ๋ค์์ ๋ค์ ๋ง๋ค์ด๋ณด์
์ค์ผ์ด ๊ทธ๋๋ด์ผ๊ฒ ๋ค ์๋ ค์ค์ ๊ณ ๋ง์
StartCoroutine(GetAnimationIdle()); ์ด๊ฑธ ์ ๋ฐ์ดํธ์ ๋ฃ์ง๋ง๊ณ ์ฝ๋ฃจํด 2๊ฐ๋ชจ๋ yield return new WaitForSeconds(1f); ์ด๊ฑฐ๋ค์ ๋ฃ์ ๋๊ฒ ๋ค
???? ๋ญ์ ๋๋ถ์ ํด๊ฒฐ๋จ ๋๋ฌด๊ณ ๋ง๋ค ์ง์ง