๊ด์ฑ์ ๋ฒ์น์ ์ํด ์๋ก ํ๊ธฐ์ง๋ ์๋๋ฐ.. ์ ๋ ๊ฒ ๋จ..
ํ์ผ์ ๋ถ์ด์ ํ์ผ์ด๋ ๊ฐ์ด ์ด๋๋๋๊ฒ ์๋๊ณ ..
์ฐ์ ์ธ์คํํฐ ์ํฉ์ ์ฌ๋ฆด๊ฒ ์๋๊ฒ ๋ฐ์ค์ปฌ๋ผ์ด๋, ๋ฆฌ์ง๋๋ฐ๋, ์คํ๋ผ์ดํธ๋ ๋๋ฌ, ์คํฌ๋ฆฝํธ ๋์ , ์ค์ ๋ ๋ฆฌ์ง๋๋ฐ๋์ ์ค๋ ฅ 0์ผ๋ก ํด๋๊ฒ ๋ฟ.
์ฝ๋๋
public bool UpDown = false; ย /*์คํฌ๋ฆฝํธ ํ๋๋ก ์ฐ๊ฒฐํ๊ณ ์ข์ฐ ์ด๋, ์์๋ ์ด๋ ์ํฉ์ ๋ง๊ฒ ์ฐ๋ ค๊ณ ์ด๋ ๊ฒ ๋ณ์ ๋๋๊ณ ์ธ์คํํฐ์์ย
ย ย public bool LeRiย = false; ย ย ย ์ดํ๋ซํผ์ ์ํ ์ด๋์ด๋ค ๊ทธ๋ผ UpDown ํธ๋ฃจ ํด์ฃผ๊ณ ย ์ข์ฐ ์ด๋์ด๋ค ํ๋ฉด LeRi ํธ๋ฃจ
ย ย bool isfacing = true; // ์ด๊ฑด ์ฝ๋ผ์ด๋์ ์ถฉ๋ํ๋ฉด ๋ฐฉํฅ ์ ํํ๊ธฐ์ํ ๋ณ์
ย ย Rigidbody2D rb;
ย ย public float speed;
// Use this for initialization
void Start ()
ย ย {
ย ย ย ย rb = GetComponent<Rigidbody2D>();
}
ย ย // Update is called once per frame
ย ย void Update()
ย ย {
ย ย ย ย if (UpDown == true)
ย ย ย ย {
ย ย ย ย ย ย if (isfacing == true)
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย transform.Translate(Vector3.up * speed * Time.deltaTime);
ย ย ย ย ย ย }
ย ย ย ย ย ย else if (isfacing == false)
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย transform.Translate(Vector3.down * speed * Time.deltaTime);
ย ย ย ย ย ย }
ย ย ย ย }
ย ย ย ย else if (LeRi == true)
ย ย ย ย {
ย ย ย ย ย ย if (isfacing == true)
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย transform.Translate(Vector3.right * speed * Time.deltaTime);
ย ย ย ย ย ย }
ย ย ย ย ย ย else if (isfacing == false)
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย transform.Translate(Vector3.left * speed * Time.deltaTime);
ย ย ย ย ย ย }
ย ย ย ย }
}
ย ย void OnTriggerEnter2D(Collider2D collider)
ย ย {
ย ย ย ย if (collider.tag == "Wall")
ย ย ย ย {
ย ย ย ย ย ย isfacing = !isfacing;
ย ย ย ย }
ย ย }
์ด๋ ๊ฒ ํ์.
๊ฑ ์ฝ๋๋ฅผ ์ฌ๋ฆฌ์๋ ๊ฒ ๋ซ์ง ์์๊น์
์ฐ์ ์ง๊ธ ๋ฐ์์ ์ด์ด์ ์ฌ๋ฆฐ๊ฑฐ๋ผ์ ํด๊ฒฐํ๋์ค์. ํด๊ฒฐ ์๋๋ฉด ๊ทธ๋ ์ด์ ์ ์ฒด์ ์ธ ์ธ์คํํฐ ์ํฉํ๊ณ ์คํฌ๋ฆฝํธํ๊ณ ์ฌ๋ ค์ผ์ง
๊ฑ ๋ค์ฌ๋ ค์ค์ผ๋๋ฏใ ใ ใ
๋ฌผ๋ฆฌ/์ถฉ๋ ์ด์ชฝ์ ๋ค๋ด์ผ์์์ผใ ใ ์ ๋ ์ค๋ ๋ธ๋ก๋ฐ๊ธฐ ํผ์ฆ๋ง๋ค๋ผ๊ณ 8์๊ฐ์ ๋ ๋ ๋ ธ์ใ ใ ๋๋ฌด ๊ด์ฌ๋๋๊ฒ ๋ง๊ณ ๋ง๋ง๋๋ ๋ฐฉ๋ฒ ์ํฉ๋ ์ ๊ฐ๊ฐ์ด๋ผ
๋ด๋ ค๊ฐ๋๋ ์ ๊ฑฐ์ ๋ง์ถฐ์ y์์น ๋ฐ๋๊ฒ ํด์ค์ผ์ก ๋ณด๋๊น ์ฌ๋ผ๊ฐ๋๋ง ์ค์ ํด์ค๊ฑฐ๊ฐ์๋ฐ
ใด ์ฌ๋ผ๊ฐ๋๋ ๋ญ ๋ฑํ ์ค์ ํด์ค๊ฑฐ ์๋๋ฐ..
์ ๋ํฐ๋ ๊ฒ์ค๋ ๋ง์ด ๋ค๋ฅด๋ค... ๋ฏธ์ํ๋ฐ ํ๋๋ ๋ชฐ๊ฒ๋ค ใ
์์๋์ผ ๋ญ ์ ์ ๋๋ ๊ทธ๋ฅ ๋ฌ๋ ๋ฌด๊ดํ ๊ฑฐ๊ฐ์๋ฐ ์ง์ง ๋ฌธ์ ๋ ์ข์ฐ.. ์ข์ฐ๋ ๊ทธ๋ฅ ํ์ผ๋ง ์์ง์ด๊ณ ๋ฐ๋ก ๋จ์ด์ ธ๋ฒ๋ฆผ..
1.updown / leri bool ํ์ ์ ์คํ๋ ค ๋ ํท๊ฐ๋ฆฌ๋๊น ์ฐจ๋ผ๋ฆฌ enum์ ์ฐ๋๊ฐ Vector3 ๊ฐ์ ์ ๋ ฅํด์ฃผ๋๊ฒ ๋ ํธํ ๊ฒ ๊ฐ๋ค. / 2. ์ ์ฝ๋๊ฐ ๋๊ตฌ ์ฝ๋์ธ๋ฐ? ํ์ผ ์ฝ๋? ํ์ผ์ด ๋ด๋ ค๊ฐ๋ฉด์ ์บ๋ฆญํฐ๋ฅผ ๊ฐ์ด ๊ฐ์ ๋ก ์ด๋์์ผ ์ค์ผ์ง '๋ถ์ด์' ์ ๋ด๋ ค๊ฐ ํ ๋๊น, ํ๋ ์ด์ด ์บ๋ฆญํฐ ๋ ํผ๋ฐ์ค ํ๋ ๋๊ณ , transform.translate ํธ์ถํ ๋ ํ๋ ์ด์ด ์บ๋ฆญํฐ์ ๋ณ์๋ ๊ฐ์ด translate ์์ผ์ค์ผ์ง.
EX ) PlayerCharacter.transform.Translate(~~~)
๊ทธ๋๋ด์ผ๊ฒ ๋ค.. ํ์ผ ์ด๋ํ ๋ ๋ฒจ๋ก์ํฐ๋ ํฌ์ง์ ์ผ๋ก๋ง ์ด๋์ํค๊ธฐ๋งํ์ง ํ๋ฒ ์ ๋ ๊ฒ translate ํด๋ด์ผ๊ฒ ๋ค.
๊ทธ๋ฐ๋ฐ ๊ธ๋ก๋ดค์๋ ๊ทธ๋ด์ฌํ๋๋ฐ ๊ตฌํํด๋ณด๋ ์ ๊ฒ๋ ์๋๊ฑฐ๊ฐ์๋ฐ.. ์ ๋ ๊ฒํ๋ค๊ณ ํ๋ซํผ์ ๋ฑ ๋ถ์ด์ ๊ฐ์ด ๋ด๋ ค๊ฐ๋?
ํ์คํ๊ฒ Onground ์ํ์์ด ๋ณด์ฅ๋์ด ์๊ณ , ํ๋ซํผ๊ณผ ๋์ผํ ํ๋ ์์ ์์น ์ ๋ฐ์ดํธ๊ฐ ๋๋ค๋ฉด ๋ฑ ๋ถ์ด์ ๋ด๋ ค๊ฐ์ผ ํจ. ๋ง์ฝ ๋ญ๊ฐ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ๋ค๋ฉด, ์๋ง Onground๊ฐ ๋ณด์ฅ๋์ง ์์ ์ํ์ฌ์ ๊ทธ๋ด ๊ฒ
๊ทธ๋์ ๋ด ์๊ฐ์๋ ์๋ง ์ฌ๋ผ๊ฐ๋๋ ์บ๋ฆญํฐ๋ฅผ ๋ถ์ฌ์ผ ํ๊ณ (์ฆ ์ฌ๋ผ๊ฐ๋๋ PlayerCharacter.transform.Translate(~~~) ํธ์ถ์ด ํ์) 1.์ ํ 2.๋ฐํ์์ ๊ฑธ์ด๋๊ฐ์ falling ์ํ๋ก ๋ณํ์ ๋ //์ด ๋ ๊ฒฝ์ฐ ์ด์ธ์๋ ๋ฐํ์ ๋ฑ ๋ถ์ด์ ์์ง์ด๋๋ก ํด์ค์ผ ํ ๊ฒ ๊ฐ์. ์ ๋ํฐ ๋ฌผ๋ฆฌ ์์ง์ ์ ์ฐ๊ณ ๋๋ ์ปค์คํ ์ผ๋ก ๋ง๋ค์ด์ ํน์ ์ ๋๋ฉด ๊ตฌ๊ธ๊ฒ์ ใฑ
๊ฐ๋ฆญ๋ํ์์ค๋ง์ด ๋ง์ ํ๋ ์ด์ด๋ ๋์ผํ ์๋ ฅ์ผ๋ก ๊ฐ์ด translateํด์ค์ผ๋จ.. ์๊น ํด์ ์๋๊ฑฐ๋ ๋ด๊ฐ ์ฌ๋ผ๊ฐ๋๊ฒ๋ง ์๊ฐํด์ ๊ทธ๋ผ translate๋๋ ํ๋ซํผ์ ์ฝ๋ผ์ด๋์ ๋ฐ๋ ค์ ์์ง์ด๋ฉด ์ฌ๋ผ๊ฐ๊ธฐ๋ ํ๋๊น ใ ใ ํ๋ซํผ์ด translateํ ๋ player๋ ๋์ผํ ๊ฐ์ผ๋ก translate์์ผ์ฃผ๋ฉด ๋จ. ์ด๊ฑด ๋ฐฉ๊ธ ์ง์์ ์ง์ ๋๋ ค๋ณด๊ณ ํ๋ ๋ง์ด๋๊น ํ์คํจ
์์ ์งค์ฒ๋ผ ๋๋๊ฑฐ๋ ํ๋ ์ด์ด๊ฐ translate๋ก ์์ง์ด๋ ํ๋ซํผ์ ์ฝ๋ผ์ด๋์ ๋ฐ๋ ค์ ์ฌ๋ผ๊ฐ๊ณ ์๋ ์ค์, ํ๋ซํผ์ด ์๋๋ก ๋ด๋ ค๊ฐ๋ฉด์ ๋ฐ์ํจ. ์๋๋ฉด ํ๋ ์ด์ด๋ rigidbody๊ฐ ๋ฌ๋ ค ๋ฌผ๋ฆฌ์์ง์ ์ํฅ์ ๋ฐ๋๋ฐ ์๋ค์ํผ ๊ฐ์์ค๋ฝ๊ฒ ํ๊ณต์ ์ฒด๋ฅํ๊ฒ ๋ ๋ฌผ์ฒด๋ ๋ฐ๋ก ์ต๊ณ ์๋๋ก ์์ง์ด๋๊ฒ ์๋๋ผ 0๋ถํฐ ์์ํด์ ์ ์ ๋นจ๋ผ์ง. ๊ทธ๋์ ์๊ฐ์ ์ผ๋ก ํ๋ ์ด์ด๋ 0์ ์๋์์๋ถํฐ ์ค๋ ฅ์ ์ํด ๊ฐ์ํ๋ฉฐ ํ๊ฐํ๊ณ ํ๋ซํผ์ ๋ฑ์๋๋ก ์๋๋ก ์์ง์ด๋ค๊ฐ ๋ถ๋ชํ๋ฉด์ ๋ฉ์ถ๊ฒ ๋๋๋ฐ, ๋ฉ์ถฐ๋ ํ๋ซํผ์ ์๋๋ก ๊ณ์๊ฐ๋๊น..์ดํ ๋ฐ๋ณต.
transform์ position์ ์ง์ ์กฐ์ํ๋๊ฑด ๋ฌผ๋ฆฌ๋ ฅ์ ๋ณด์กดํจ. ์ฆ ํฌ๋ฌผ์ ์ด๋ ํ๋ ๋ฌผ์ฒด๋ฅผ ์คํฌ๋ฆฝํธ๋ฅผ ์จ์ ๋ค๋ฅธ position์ผ๋ก ์ฎ๊ฒจ๋ ๊ทธ
๋ฌผ๋ฆฌ์ ์ฑ์ง์ด ์ ์ง๋๊ธฐ๋๋ฌธ์ ๋จ์ ํฌ๋ฌผ์ ์ด๋์ ๋ง์ ํจ. ์ด๋ฐ๊ฒ์ฒ๋ผ ์ง๊ธ ์ํฉ์์๋ player๊ฐ ํ๋ซํผ ์์ ๋ฉ์ถฐ์๋ ์ํฉ์์ ๋์ผํ๊ฒ translate๋ก ์ด๋์ํค๊ฒ ๋๋ฉด ํ๋ซํผ ์์ ์์์ด์ ๋ฌผ๋ฆฌ์ ์ฑ์ง์ด 0์ธ ์ํ๋ฅผ ๊ทธ๋๋ก ์ ์งํ๊ฒ๋๋๊ฒ..
์๋๊ธ๋ ์๋ดค๊ฑฐ๋ ๊ธฐ์ต์ด์๋๊ณ ๋ค๊ฐ ๋ญ ๋ง๋๋ ค๋์ง ์ ํํ ๋ชจ๋ฅด๋๋ฐ ํ์ผ์ด ๋ด๋ ค๊ฐ๋ ๋ถ์ด์ ์ด๋ํ๋๊ฒ ๋ง๋๋ ค๋๊ฑฐ๋ฉด ์บ๋ฆญํฐ๊ฐ ํ์ผ์ ๋ถ์์๋ ์บ๋ฆญํฐ๋ฅผ ํ์ผ์ ์์์ผ๋ก๋ฃ์ผ์ transform.parent=ํ์ผ ์ผ์ผํ๋ฏ๋
์๋๊ธ์ ์ฝ๊ณ ์๋ค ๋ถ๋ชจ์๋ฃ๋๊ฑด ์์์ฒ๋ผ ํ๋ฉด๋๊ณ ๋นผ๋๊ฑด transform.parent=null; ์ด๋ ๊ฒํ๋ฉด๋จ ๋ธ๋ญ๋ฟ์์๋๋ ๋๊ฐ์๋๋ OnCollisionEnter/Exit2D ํ๋ฏ ๋๋๊ฑฐ ์์์ ธ