์์ง์ด๋๊ฒ ์ค์ํ๊ฑฐ๊ฐ์์ ์์ง์ด๋๊ฒ๋ง ์งฐ์.
public class Test : MonoBehaviour {
ย ย public float maxSpeed = 7f;
ย ย private int check = 0;
ย ย Rigidbody2D rb;
ย ย ย
// Use this for initialization
void Start () {
ย ย ย ย rb = GetComponent<Rigidbody2D>();
}
ย ย // Update is called once per frame
ย ย void FixedUpdate()
ย ย {
ย ย ย ย if (check == 1)
ย ย ย ย {
ย ย ย ย ย ย rb.velocity = new Vector2(-1 * maxSpeed, rb.velocity.y);
ย ย ย ย }
ย ย ย ย else if (check == 2)
ย ย ย ย {
ย ย ย ย ย ย rb.velocity = new Vector2(0, rb.velocity.y);
ย ย ย ย }
ย ย ย ย else if (check == 3)
ย ย ย ย {
ย ย ย ย ย ย rb.velocity = new Vector2(1 * maxSpeed, rb.velocity.y);
ย ย ย ย }
ย ย ย ย else if (check == 4)
ย ย ย ย {
ย ย ย ย ย ย rb.velocity = new Vector2(0, rb.velocity.y);
ย ย ย ย }
ย ย }
ย ย public void leftDown()
ย ย {
ย ย ย ย check = 1;
ย ย }
ย ย public void leftUp()
ย ย {
ย ย ย ย check = 2;
ย ย }
ย ย public void rightDown()
ย ย {
ย ย ย ย check = 3;
ย ย }
ย ย public void rightUp()
ย ย {
ย ย ย ย check = 4;
ย ย }
}
์ค์ท์ ์ผ์ชฝ๋ง ์๋๋ฐ ์ด๋ฐ์์ผ๋ก ์ผ์ชฝ ์ค๋ฅธ์ชฝ ์ถ๊ฐํด์ค์ ๋๋ฅด๊ณ ์์ผ๋ฉด Downํจ์๊ฐ ๋๋ฉด Upํจ์๊ฐ ๊ทธ๋์ ๊ทธ ๋ฒํผ์ ๋ง์ ์ฒดํฌ๊ฐ if๋ก ์ธ์ํด์ velocity๋ก ์์ง์์.
์ด์ํ๋ก ๊ทธ ์กฐ์ด์คํฑ ์ด์ ์ํฌ์์๋?
ํน์ ์ด๊ฑฐ ์์ ํ๋ค๊ณ ์ํ์ด? ์์ง ์๋จ?
์ ์ ์ํ๋ก ๋ฒํผ๋ค์ง์ฐ๊ณ ์ปค์คํค ์กฐ์ด์คํฑ์์๋ ๋ฒํผ ์ด๋ฒคํธ ๋ถ๋ฌ์๋ ์๋จ
์ ์ฝ๋์์ leftDown() leftUp()์ ๋ฒํผ์ ๋๋ ๋ค๋ ๊ฑฐ์ผ? ๊ทผ๋ฐ ์ด์ ์ ๊ฑธ ์ธ ํ์๊ฐ ์์์
๋ฐฉํฅํค ์ ๋ ฅ ๋ถ๋ถ์ ๋ค ์ง์๋ฒ๋ฆฌ๊ณ fixedupdate๋ ์ ์ง์๋ผ
๊ทธ๋ฆฌ๊ณ float h = 0; ์ด๋ผ๊ณ ์ข์ฐ ์ด๋๊ฐ์ฉ ๋ณ์๋ฅผ ํ๋ ๋ง๋ฌ
๋ค ์ง์ฐ๋ฉด ์ด์ผ์์ง์ฌ?
๊ทธ ๋ด์ if(CnInputManager.GetAxis("Horizontal") > 0.3f) h = 1; ์ด๋ ๊ฒ ์กฐ์ด์คํฑ ์ธํ๊ฐ์ด ์ค๋ฅธ์ชฝ์ผ๋ก 0.3์ด์์ด๋ฉด h = 1๋ก ๋ฐ๊ฟ
๋ฐ๋๋ก else if (CnInputManager.GetAxis("Horizontal") < -0.3f) h = -1; ์ด๋ ๊ฒ ํด์ ์ผ์ชฝ์ผ๋ก -0.3 ์ดํ๋ก ๋ด๋ ค๊ฐ๋ฉด h =-1๋ก ๋ฐ๊พธ๊ณ
๊ทธ ๋ด์ rb.velocity = new Vector2(h * maxSpeed, rb.velocity.y); ๋ก ํด์ h๊ฐ์ ์คํผ๋๋ฅผ ๊ณฑํด์ฃผ๋ ๊ฑฐ์. ๊ทธ๋ผ ์ผ์ชฝ์ผ๋ -1 * maxSpeed , ์ค๋ฅธ์ชฝ์ผ๋ 1 * maxSpeed, ๋ ๋ฒ์์ ์ ๋๋ฉด 0 * maxSpeed๊ฐ ๋ ๊ฑฐ์์
๊ทธ๋ฆฌ๊ณ ์ ค ์์ using CnControls; ์ ๋ฃ์ด์ค๋ผ
๋ ์์ ์ cncontrol ์ด๋ผ๋ ์์ ์ ์์ฐ๊ณ ๋ง๋ค์๋ค ์์์ฒ๋ผ ํ๋ฉด ๋์๊ฐ๊ฑฐ์
๋ 1์ 20๋ถ๋๋ฉด tv์์ ๊ฐ์ผ ํจ ์ค๋ ์์์บ์คํธ 7ํ ์๋ณด๋ฉด 1000์ ๋ด๊ณ vod๋ก ๋ด์ผ ๋จ
์คํธ๋ผ.. ์ ๋ฒ์ ๋๊ธ์ ๊ทธ๋ ๊ฒ ๋จ๊ฒจ์คฌ์๋๋ฐ ๊ทธ๊ฑฐ ์ดํด๋ชปํ๋๋ฐ ๊ทธ๊ฒ ์กฐ์ด์คํฑ ์คํฌ๋ฆฝํธ๊ฐ ์๋๋ผ ๋ด๊ฐ ์๋ ์ฐ๋๊ณณ์ ๋ค ์ง์ฐ๊ณ ํ๋ผ๋๊ฑฐ ์๊ตฌ๋.. ๋๋ค.. ๊ทธ๋ฐ๋ฐ 0์ด ์๋๋ค.. ๋ ๋ฒ์์ ์ ๋๋๋ฐ๋ ๊ณ์ ์์ผ๋ก ๊ฐ๋ค..
์๋ฌ๋ค. else ๋ก ํด์ ๊ทธ๋ฅ ๊ทธ ์ธ์ ๋ชจ๋ ๊ฑฐ ๋ค h =0์ผ๋ก ํด๋จ๋๋ ๋ฌ๋ค.. ๋ญ ๋ค๋ฅธ ๊ฒฝ์ฐ๋ 0์ด ๋ ๊ฑฐ๊ฐ๊ธดํ์ง๋ง ์ฐ์ ๊ทธ๋ฅ ์ด๋ฌํฅ ํด๊ฒฐํจ.
ํน์ ๋ญ 0์ด๋๋ฉด ์๋๋ ๊ฒฝ์ฐ์๋ else๋๋ฉ ๋ค 0์ด ๋์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง๋ ์๊ฒ ์ง..
์ฌํผ ์ด์ ํ๋ฒ ์๋ํ๋ ํ๋ก์ ํธ์ ์ด์ํ๊ณ ์ ์ ๋ก ๋๋ ํจ ๋ด์ผ์ง ์ฐ์ ๋๋์ ์ข๋ค.. ์ด๋ ๊ฒ ํ๋์๋ฆฌ์๊ตฌ๋..
๊ทธ๋ผ ๋ค ์ค์ผ์ด์?
๊ทผ๋ฐ ์์์ฒ๋ผ ํ๋ฉด ์ ๋ ฅ์ด ์์ผ๋ฉด h=0์ด ๋์์ผ ํจ ๋งคํ๋ ์๋ง๋ค ์ฒจ์ h=0์ผ๋ก ํ ๋ค 0.3f์ด์์ด๊ฑฐ๋ -0.3f์ดํ์ผ๋๋ง h๋ฅผ ๊ฑด๋๋ฆฌ์์
๋ฑํ else h=0; ์ด๋ ๊ฒ ํ ํ์๊ฐ ์๋๋ฐ? ๋ญ ํ์ฌ๊ฐ ๊ทธ ๋ถ๋ถ์ ๊ณต๋ถ๊ฒธ ์ ์ดํด๋ด
ใ ใ ๊ฐ์ฌ ๊ฐ์ฌ ~