์ฐ์ ๋๊ทธ๋ผ๋ฏธ๊ฐ ์ฒดํฌํฌ์ธํธ๊ณ ์ธ๋ชจ๊ฐ ๋ด๊ฐ ์ฃฝ์ ์ง์ ์ด์ผ.
์ฐ์ 1๋ฒ์ ์ง๊ธ ๊ฐ๋ ค์ ์๋ณด์ด๋๋ฐ ์์์ ์ ์์ํ์๋ง์ ๊ทธ๋ฅ ์๋ ํธ๋ฃจ๊ฐ ๋์๋ ์ฒดํฌํฌ์ธํธ๊ฐ ์์ด
void OnTriggerEnter2D(Collider2D collider)
ย ย {
ย ย ย ย if (collider.tag == "Player")
ย ย ย ย {
ย ย ย ย ย ย GameObject trigger = GetNearestActiveCheckpoint();
ย ย ย ย ย ย if (trigger != null)
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย collider.transform.position = trigger.transform.position;
ย ย ย ย ย ย }
ย ย ย ย }
ย ย ย ย else
ย ย ย ย {
ย ย ย ย ย ย Destroy(collider.gameObject);
ย ย ย ย }
ย ย }
ย ย GameObject GetNearestActiveCheckpoint()
ย ย {
ย ย ย ย GameObject[] checkpoints = GameObject.FindGameObjectsWithTag("CheckPoint");
ย ย ย ย GameObject nearestCheckpoint = null;
ย ย ย ย float shortestDistance = Mathf.Infinity;
ย ย ย ย foreach (GameObject checkpoint in checkpoints)
ย ย ย ย {
ย ย ย ย ย ย Vector3 checkpointPosition = checkpoint.transform.position;
ย ย ย ย ย ย float distance = (checkpointPosition - transform.position).sqrMagnitude;
ย ย ย ย ย ย CheckpointTrigger trigger = checkpoint.GetComponent<CheckpointTrigger>();
ย ย ย ย ย ย if (distance < shortestDistance && trigger.isTriggered == true)
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย nearestCheckpoint = checkpoint;
ย ย ย ย ย ย ย ย shortestDistance = distance;
ย ย ย ย ย ย }
ย ย ย ย }
ย ย ย ย return nearestCheckpoint;
ย ย }
}
์ฒดํฌํฌ์ธํธ ์ฌ๋ฌ๊ฐ์ค์ ํ๋๋ฅผ true๋ก ํ๋ ์ ๋ง๊ณ ๋ถํ์ฅ์ ๋ผ๋ ๊ฐ์ ๋ง๋ค์ด์ ๊ทธ๊ฑธ ๊ฐ ๋ถํ์ฅ์ ์ฃผ์๋ฅผ ๋ฃ์ด์ฃผ๋ ์์ผ๋ก ใฑ
์กฐ๊ธ๋ง๋ ์์ธํ๊ฒ ํ๋ฆฌ์ฆ~
๋ง์ง๋ง ์ฒดํฌํฌ์ธํธ๋ก ๊ฐ์ผ๋๋๊ฑฐ๋ฉด ๊ทธ๋ฅ ๋ง์ง๋ง์ผ๋ก ์ฒดํฌ๋ ์ฒดํฌํฌ์ธํธ๊ฐ ๋ญ์ง๋ง ์๊ณ ์์ผ๋ฉด ๋๋๊ฑฐ์๋? ๊ตณ์ด ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ๊น์ด ์ฒดํฌํฌ์ธํธ๋ก ๊ฐ์ผํ๋๊ฑฐ?
๊ทธ๋ฐ๋ฐ ์ ๊ธฐ 3๋ฒ์งธ ์ฒดํฌํฌ์ธํธ๊ฐ๊ธฐ์ ์ ์ฃฝ์์๋์์์ ๊ทธ๋ฌ๋ ๊ฑฐ๋ฆฌ์ฒดํฌํ๋๊ฑฐ ๊ทธ๋ฐ๋ฐ ๋ฌธ์ ๋ฐ์์์ ์ด ์ ๋ ๋ค๋๊ฑฐ ๋ฌด์กฐ๊ฑด 3๋ฒ์ฒดํฌํฌ์ธํธ๋ก๊ฐ์ง๋ฉด ์๋จ..
3๋ฒ์ฒดํฌ ๊ฐ๊ธฐ์ ์ ์ผ์ง์ ์์ด๋ผ ์ฃฝ์ด๋ ๊ฐ๊น์ด ์ฒดํฌ๋ก ์๊ฐ์ง๋๋ฐ 3๋ฒ ๋ฐ๋์๊ฐ ๊ฑฐ๋ฆฌ๋ง๋ณด๊ณ 2๋ฒ ๊ฐ์ง๋ ์ฉ..
๊ทธ๋์ ๋ฐ๋์๊ฐ ๊ทธ์ ์ ๋ฐ์๋๊ฒ ํ์ค๋๋ฉด ์ด๋จ๊ฐ ์ถ์ด์
๊ทธ๋๊น ๋๊ฐ ์ํ๋๊ฑฐ๋ ๋ง์ง๋ง์ผ๋ก ๋ฐ์ ์ฒดํฌํฌ์ธํธ๋ก ๊ฐ๊ธฐ๋ฅผ ์ํ๋ค๋ ๊ฑฐ ์๋?
๊ทธ๋ผ ๊ทธ๋ฅ ํ๋ ์ด์ด ๊ด๋ฆฌํ๋ ์คํฌ๋ฆฝํธ์์ Vector3๋ก ๋ง์ง๋ง ์ฒดํฌํฌ์ธํธ ์์น๋ฅผ ์ ์ฅํด๋๊ณ ์ฃฝ์์ ๋ ๊ทธ ์์น๋ก ์ด๋ํ๊ฒ ๋ง๋ค๋ฉด ๋๋๊ฑฐ๊ฐ์๋ฐ..
์ ใ ใ ๋ง์ง๋ง ์ผ๋ก ๊ฐ์ง๋ค๋๊ฒ ๋ฌด์กฐ๊ฑด 3๋ฒ ๊ฐ์ง๋ค๋๋ง์ธ์ค ๋ง์ง๋ง์ผ๋ก ์ฐ์๊ณณ์ผ๋ก ๊ฐ์ง๋๊ฑฐ.
๊ฐ์ฅ ๊ฐ๊น์ด ์ฒดํฌํฌ์ธํธ๋ก ๊ฐ์ผ ํ ํ์์์ฒด๊ฐ ์๋๊ฒ
์ใ ๊ทธ๋ฅ ์ฒดํฌํฌ์ธํธ๋ฐ์ผ๋ฉด ๊ทธ๊ฑฐ ์ ์ฅํ๊ณ ๊ฑฐ๊ธฐ๋ก ์ด๋๋๊ฒ? ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ๊ณณ๋ฐ์ผ๋ฉด ๋ค์ ์ต๊ทผ๊ฒ ์ ์ฅ๋๋ ๊ทธ๋ฐ์์ผ๋ก?
Vector3ํ ๋ณ์ ๋ง๋ค์ด๋๊ณ (vector2๋ ๋จ) ์คํํฌ์ธํธ๋ผ๊ณ ์ด๋ฆ ์ง๊ณ ์ฒดํฌํฌ์ธํธ๋ ์ ์ดํ์ ์ ์ดํํธ๋ ์๋ฆฌ๊ฐ์๊ฑฐ ๋๋ฉด์ ์คํํฌ์ธํธ์๋ค๊ฐ ์ฒดํฌํฌ์ธํธ์ ์์น๋ ์ฒดํฌํฌ์ธํธ์ ์ ์ฅํด๋์ ์์น๋ฅผ ์ ์ฅํ๊ธฐ๋ง ํ๋ฉด ๋ ๋ฏ..๋งจ์๋๊ธ์ด ๋งํด์ค๊ฒ ์ด๋ฐ๋ฐฉ์
ใ ใ ๊ทธ๋ฐ์
์ฃฝ์ด์ ๋ถํํ ๋๋ ์ ์ฅ๋์ด์๋ ์คํํฌ์ธํธ๋ก ํ๋ ์ด์ด ์ด๋์ํค๋ฉด ๋๊ณ
์ํ ๊ฐ์ฌ๊ฐ์ฌ~~
๊ดํ ์ธ๋์์ด ํด๋จ๋ค ํฑํ ๋์ ๋ง์ด ๋ฐ๋ค ใ ใ