Enter๊ณผ ESC๋ฅผ ๋ˆ„๋ฅด๋ฉด ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ํŠน์ • ์œ„์น˜๋กœ ํ…”๋ ˆํฌํŠธ ํ•ด์•ผํ•˜๋Š”๋ฐ ์ด๊ฒŒ ์•ˆ๋˜๋„ค์š”ใ… ใ… 

Ratation์€ ์ ์šฉ์ด ๋˜์–ด์„œ ๋ฐฉํ–ฅ์€ ๋ฐ”๋€Œ๋Š”๋ฐ ์œ„์น˜๋งŒ ์•ˆ๋ฐ”๋€๋‹ˆ๋‹คใ… ใ… 


์›ํ•˜๋Š” ์œ„์น˜์˜ ์˜ค๋ธŒ์ ํŠธ(public GameObject teleportPoint)๋กœ ํ…”๋ ˆํฌํŠธ ํ•˜๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.


pointPos[] ๋ฐฐ์—ด์€ teleportPoint.transform.position์„ ๋Œ€์ž…ํ•˜์˜€๊ณ 

pointRot[] ๋ฐฐ์—ด์€ teleportPoint.transform.rotation์„ ๋Œ€์ž…ํ•˜์˜€์Šต๋‹ˆ๋‹ค.


์›์ธ์ด ๋ฌด์—‡์ผ๊นŒ์š”?


[SerializeField] private GameObject player;


void Update()

ย  ย  {

ย  ย  ย  ย  if (isTpDelay == false)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  // Esc๋ฅผ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ ์ด์ „ ์œ„์น˜๋กœ ํ…”๋ ˆํฌํŠธ

ย  ย  ย  ย  ย  ย  if (gateIndex != 0 && Input.GetKeyDown(KeyCode.Escape))

ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  gateIndex--;

ย  ย  ย  ย  ย  ย  ย  ย  player.transform.SetPositionAndRotation(pointPos[gateIndex], pointRot[gateIndex]);

ย  ย  ย  ย  ย  ย  }


ย  ย  ย  ย  ย  ย  // Enter๋ฅผ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ ๋‹ค์Œ ์œ„์น˜๋กœ ํ…”๋ ˆํฌํŠธ

ย  ย  ย  ย  ย  ย  if (onGate && Input.GetKeyDown(KeyCode.Return))

ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  if (gateIndex == 0)

ย  ย  ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  gateIndex++;

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  player.transform.SetPositionAndRotation(pointPos[gateIndex], pointRot[gateIndex]);

ย  ย  ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  ย  ย  ย  ย  else if (gateIndex == 1)

ย  ย  ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  gateIndex++;

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  player.transform.SetPositionAndRotation(pointPos[gateIndex], pointRot[gateIndex]);

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  character = characters[gateInfo.getIndex()];

ย  ย  ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  ย  ย  ย  ย  else

ย  ย  ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  SceneManager.LoadScene(stages[gateInfo.getIndex()]);

ย  ย  ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  }

ย  ย  }