Unity. Physics.OverLapShphere()
๐ Physics.OverLapShphere()
์ ํจ์๋ ์ํ๋ ์ค๋ธ์ ํธ๋ฅผ ์ค์ฌ์ผ๋ก ๊ตฌ๋ฅผ ๋ง๋ค์ด์ ๊ทธ ์์ ์๋ ์ค๋ธ์ ํธ๋ฅผ ๋ฐฐ์ด๋ก ์ ์ฅํ ์ ์๋ค. ๊ฒ์์์ ์ ์ด ํ๋ ์ด์ด๋ฅผ ์ธ์ํ ๋ ์ฌ์ฉํ๊ธฐ ์ข์ ๋ฏ!
๐ ์ฌ์ฉ๋ฒ
float radius = 5f;
void Start()
{
Collider[] hitColliders = Physics.OverlapSphere(transform.position, radius);
}
hitColliders์ radius์ ๊ธธ์ด๋งํผ ์์ ๋ค์ด ์๋ ๋ชจ๋ ์ถฉ๋์ฒด๊ฐ Collider ๋ฐฐ์ด๋ก ๋ค์ด๊ฐ๋ค. ์ด๋ ์๊ธฐ ์์ ๋ ํฌํจ๋จ! ์ฌ๊ธฐ์ LayerMask
๋ฅผ ์จ์ ์ถฉ๋์ฒด๋ฅผ ๊ฑธ๋ฌ๋ผ ์ ์๋๋ฐ ๋ค์๊ณผ ๊ฐ์ด ์ฐ๋ฉด ๋๋ค.
int layer = 10;
int layerMask = 1 << layer
Collider[] hitColliders = Physics.OverlapSphere(transform.position, radius, layerMask);
์ด๋ ๊ฒ ์ฌ์ฉํ๋ฉด 10๋ฒ ๋ ์ด์ด๋ก ์ง์ ๋ ์ค๋ธ์ ํธ๋ง ๋ฐฐ์ด์ ๋ฃ์ ์ ์๋ค. 1 << layer
๋ ๋นํธ ์ฐ์ฐ์์ธ๋ฐ, ๋นํธ ์ฐ์ฐ์๋ ๋ค์์ ์ฐ๋ ๊ฑธ๋ก!
๋๊ธ๋จ๊ธฐ๊ธฐ