Unity. Physics.OverLapShphere()

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

๐ŸŒŸ 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๋Š” ๋น„ํŠธ ์—ฐ์‚ฐ์ž์ธ๋ฐ, ๋น„ํŠธ ์—ฐ์‚ฐ์ž๋Š” ๋‹ค์Œ์— ์“ฐ๋Š” ๊ฑธ๋กœ!

ํƒœ๊ทธ: ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ:

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ