Unity. Physics.Raycast()

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

๐ŸŒŸ Physics.Raycast()

Raycast๋Š” ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ขŒํ‘œ์—์„œ ์›ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์„ , Ray๋ฅผ ๊ทธ์–ด์„œ ๊ทธ ์•ˆ์— ๋“ค์–ด ์žˆ๋Š” ๋ฌผ์ฒด๋ฅผ ๊ฐ์ง€ํ•˜๋Š” ํ•จ์ˆ˜๋‹ค.

๐ŸŒŸ ์‚ฌ์šฉ๋ฒ•

RaycastHit hit;

void Update()
{
	Debug.DrawRay(transform.position, transform.forward * 10f, Color.red);
	if (Physics.Raycast(transform.position, transform.forward, out hit, 10f))
		Debug.Log("์ถฉ๋Œ ๊ฐ์ง€");
}

Debug.DrawRay()๋Š” Raycast์˜ Ray๋ฅผ ์—๋””ํ„ฐ ์ƒ์œผ๋กœ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ์€ ๊ฒƒ์ด๊ณ , ์ธ์ž๋Š” ์›์ , Ray๊ฐ€ ๋‚˜์•„๊ฐˆ ๋ฐฉํ–ฅ, ์ƒ‰์ด ์žˆ๋‹ค. ๋ฐฉํ–ฅ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ 1f๊ฐ€ ํ• ๋‹น๋˜์„œ ๋’ค์— 10f ๊ฐ™์€ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณฑํ•ด์•ผ ์›ํ•˜๋Š” ๊ฑฐ๋ฆฌ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

(Physics.Raycast()์˜ ์ธ์ž๋Š” ์›์ , ๋ฐฉํ–ฅ, ์ถฉ๋Œ ๊ฐ์ง€๋œ ์˜ค๋ธŒ์ ํŠธ ์ •๋ณด๊ฐ€ ๋“ค์–ด ์žˆ๋Š” RaycastHit, ๊ฑฐ๋ฆฌ. ์ด๋ ‡๊ฒŒ 4๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์ถฉ๋Œ์„ ๊ฐ์ง€ํ•˜๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

ํƒœ๊ทธ: ,

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

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

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