ํ๊ทธ(Tag)๋?
์ ๋ํฐ๋ฅผ ์ฌ์ฉํ๋ค ๋ณด๋ฉด, ์คํฌ๋ฆฝํธ์์ ํ๊ทธ(Tag)๋ฅผ ์ด์ฉํด์ ์ํ๋ ๊ฒ์ ์ค๋ธ์ ํธ์ธ์ง๋ฅผ ํ๋ณํ ๋๊ฐ ์์ฃผ ์๋ค.
ํ์ง๋ง ํ๊ทธ๋ฅผ ์ฌ์ฉํด์ ๋น๊ต๋ฅผ ํ๋๋ผ๋ ์์นซ ์๋ชปํ๋ฉด ๊ฐ๋น์ง ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ฉ ์์ฑํ ์๋ ์๋ค๋ ๊ธ์ ๋ณธ ์ ์ด ์๋ค.
1. CompareTag() ๋ฉ์๋๋ฅผ ์ด์ฉํ ๋น๊ต (๊ถ์ฅ)
pirvate void OnTriggerEnter2D(collider2D collision)
{
if(collision.CompareTag("Player")) //CompareTag() ๋ฉ์๋๋ฅผ ํ์ฉํ ๋น๊ต
{
...
}
}
2. string ๋ฌธ์์ด์ ์ด์ฉํ ๋น๊ต (๊ถ์ฅํ์ง ์์)
private void OntriggerEnter2D(collider2D collision)
{
if(collision.tag.Equals("Player")) // ํ๊ทธ(Tag)๋ ๊ฒฐ๊ตญ string ๋ฌธ์์ด์ด๊ธฐ์ ๊ฐ๋ฅ
{
...
}
}
ํ์ง๋ง ๊ฐ๊ธ์ ์ด๋ฉด string ๋ฌธ์์ด ๋น๊ต๋ ์ฌ์ฉํ์ง ์๊ธธ ๊ถํ๊ณ ์๋ค. string ๋ฌธ์์ด์ ๋น๊ต๋ฅผ ์งํํ ๊ฒฝ์ฐ, ์ ๋ํฐ๋ gameObject์์ ๋ฌธ์์ด์ ๊ฐ์ ธ์ค๊ธฐ ์ํด ๋ฌธ์์ด์ ๋ณต์ฌ๋ณธ์ ์์ฑํ๋ ์์ ์ ์งํํ๋ค.
C#์์ ๋ฌธ์์ด(string)์ ์ฐธ์กฐ ํ์(Reference Type)์ด๋ค. ๋ฌธ์์ด์ immutableํ๊ธฐ ๋๋ฌธ์ ํ ๋ฒ ์์ฑ๋ ๊ฒ์ ๋ค์ ๋ฐ๊ฟ ์ ์๋ค.
/* StringBuilder ํด๋์ค๋ฅผ ์ด์ฉํ๋ฉด ์์ ํ ์ ์๋ค. ๋ฌธ์์ด ์์ ์ ๊ฐ๊ธ์ StringBuilder๋ฅผ ์ด์ฉํ์ */
์ฆ, ๋ณต์ฌ๋ณธ์ด ๊ณ์ํด์ ์๊ฒจ๋จ์ ๋ฐ๋ผ ํ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ๊ณ์ ์ด๋ฃจ์ด์ง๊ณ ์ด๊ฒ์ ๊ฐ๋น์ง๋ก ์ด์ด์ง๋ค.
๊ฐ๋น์ง ์ปฌ๋ ์ ์์ ์ ์๋นํ ๋ฌด๊ฑฐ์ด ์์ ์ด๊ธฐ ๋๋ฌธ์ ๊ฒ์์ ํ๋ค๊ฐ ํ๋ ์ ๋๋์ด ์ผ์ด๋๋ ์ฃผ์ ์์ธ์ผ๋ก ์์ฉํ๋ค.
/* ํนํ ๋ชจ๋ฐ์ผ ํ๊ฒฝ์ ๋์ฑ ์น๋ช ์ */
์ด๋ฌํ ์ด์ ๋ก ์ธํด, ์ต์ ํ ์ธก๋ฉด์์ CompareTag() ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ํ๊ทธ๋ฅผ ๋น๊ตํ๋ ๊ฒ์ ๊ถ์ฅํ๊ณ ์๋ค๊ณ ํ๋ค.
CompareTag()๋ ๋ฌธ์์ด์์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ์ผ์ผํค์ง ์๋๋ค.