ํ์ฌ ๋ชจ๋ฐ์ผ ๊ฒ์์ธ "ํฌ๋ฃจ์ธ์ด๋ ํ์คํธ" ๋ํธ ์ด๋ฏธ์ง๋ฅผ ํ์ฉํ์ฌ ๋๋ฆ ํฌ๋ฉ์ด๋ ๊ฒ์์ ์ ์์ค์ ๋๋ค.
ํํฉ์ด๋ผ๊ณ ํ๊ธฐ์ ์ด๋ผํ์ง๋ง ์ด์ฐ ์ ์ฐ ๊ฒ์ ํ์ผ์ ๋ฏ๋ ๋ฐฉ๋ฒ์ ์์๋ด ์คํ๋ผ์ดํธ๋ฅผ ๋ฝ์ ์ ๋ํฐ ๋ด๋ถ๋ก ๊ฐ์ ธ์จํ
์ ๋๋ฉ์ด์ ์ ๋ง๋ค๊ณ ์คํฌ๋ฆฝํธ๋ฅผ ์ง์ ๋ฐ๋๋ชจ์ ๋๊ธฐ๋ชจ์ ์ ๋ง๋ ํ ์ํํด๋ณด๋ ์ ๋ฆฌ ๋์ค๋ค์
์ ๋๋ฉ์ด์ ๋ง๋ค๋ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ฐ๋ ๋ชจ์ ์ ๋ง๋ค์ด์ ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฐ๋๊ฑด ๋ฉ์ฉกํ๋ฐ ์ผ์ชฝ์ผ๋ก ๊ฐ๋ ๊ณผ์ ์์ ์ ๋ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค
์ด๋ฐ ์ฝ๋๋ฅผ ์ผ๋๋ฐ ์บ๋ฆญํฐ ์ค์ฌ์ถ๋ง ์ผ์ชฝ์ผ๋ก ๋ฐ๋๊ณ ์ ๋๋ฉ์ด์ ์ ๋ฐ๋ผ์ค์ง ๋ชปํ๋๊ฑฐ ๊ฐ์ต๋๋ค ์ด๋ป๊ฒ ํด์ผ ์ผ์ชฝ์ผ๋ก ๋ฉ์ฉกํ๊ฒ ๋ค์งํ ์์ง์ผ๊น์?
void Update()
ย ย {
ย ย ย ย // h =ย
ย ย ย ย // -1 ์ผ์ชฝ
ย ย ย ย // ย 0 ย ์ ์ง
ย ย ย ย // ย 1 ย ์ค๋ฅธ์ชฝ
ย ย ย ย float h = Input.GetAxis("Horizontal");
ย ย ย ย if ( h != 0)
ย ย ย ย {
ย ย ย ย ย ย //์ค๋ฅธ์ชฝ ์ ๋๋ฉ์ด์ ์ ํ
ย ย ย ย ย ย _animator.SetBool("Test", true);
ย ย ย ย ย ย if ((h < 0 && _isRightDir) || (h > 0 && !_isRightDir))
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย Flip(); //์์ ๋ณ๊ฒฝ
ย ย ย ย ย ย }
ย ย ย ย }
ย ย ย ย else
ย ย ย ย {
ย ย ย ย ย ย //๋๊ธฐ ์ ๋๋ฉ์ด์
ย ย ย ย ย ย _animator.SetBool("Test", false);
ย ย ย ย }
ย ย }
ย ย void Flip() //์ค์ผ์ผ x ์์ ๋ณํ ์ฐธ์กฐ ์ฝ๋ (๋ฐฉํฅ์ ํ)
ย ย {
ย ย ย ย Vector3 theScale = transform.localScale;
ย ย ย ย theScale.x *= -1;
ย ย ย ย transform.localScale = theScale;
ย ย ย ย //๋ฐํฅ ๋ฐ์ 1 -> -1, ย -1 -> 1
ย ย ย ย _isRightDir = !_isRightDir;
ย ย }
}
๋๊ธ 0