728x90

 

 

๐Ÿž ์š”์•ฝ

bool hasCollision = Physics.Raycast(origin, direction, maxDistance, layerMask);
bool hasCollision = Physics.Raycast(ray, maxDistance, layerMask);

 

RayCast๋Š” Ray์™€ Scene ๋‚ด Collider์˜ ์ถฉ๋Œ์„ ์บ์น˜ํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜์ด๋‹ค. ๋งŒ์•ฝ Ray๊ฐ€ ์˜ค๋ธŒ์ ํŠธ์™€์˜ ์ถฉ๋Œ์„ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ•œ๋‹ค๋ฉด ๋‹ค์Œ ํ•ญ๋ชฉ์„ ๋จผ์ € ์ฒดํฌํ•ด ๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

1. Scene ์•ˆ์— Ray๊ฐ€ ์ถฉ๋Œํ•  ์ˆ˜ ์žˆ๋Š” Collider๊ฐ€ ์กด์žฌํ•˜๋Š”๊ฐ€ (์˜ค๋ธŒ์ ํŠธ์˜ Collider ์ปดํฌ๋„ŒํŠธ ์ฒดํฌ, ๋˜๋Š” Ray์˜ ๋ฐฉํ–ฅ ์ฒดํฌ)

2. Ray์˜ ๊ธธ์ด๊ฐ€ ๋„ˆ๋ฌด ์งง์ง€๋Š” ์•Š์€๊ฐ€ (maxDistance)

3. ์ธ์‹ํ•  Collider๋ฅผ ํ•„ํ„ฐ๋งํ–ˆ๋Š”๊ฐ€ (LayerMask)

 

๊ทธ๋Ÿฐ๋ฐ ์”ฌ ์•ˆ์— ์ถฉ๋Œ์ฒด๋„ ์žˆ๊ณ , Ray์˜ ๊ธธ์ด๋„ Mathf.Infinity๋กœ ์ฃผ๊ณ , Layer๋„ ํ•„ํ„ฐ๋งํ•˜์ง€ ์•Š์•˜๋Š”๋ฐ RayCast๋กœ ๋˜์ง„ Ray๊ฐ€ Collider๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์›์ธ์€ ๋‹ค์–‘ํ•˜๊ฒ ์ง€๋งŒ ์ด๋ฒˆ์— ๊ฒช์€ ์˜ค๋ฅ˜ ์ƒํ™ฉ๊ณผ ์‚ฌ๊ณ  ํ๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

Mesh ์˜ค๋ธŒ์ ํŠธ์— Mesh Collider ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋Š”๋ฐ, Ray๊ฐ€ Collider์™€ ์ถฉ๋Œํ•˜์ง€ ์•Š์•˜๋‹ค.

-> ์ถ”๊ฐ€๋œ Collider๊ฐ€ ์ œ๋Œ€๋กœ ๋งŒ๋“ค์–ด์ง€์ง€ ์•Š์€๊ฑด๊ฐ€?

-> Collider๋ฅผ ์ƒ์„ฑํ•˜๋Š” Mesh Cooking ๊ณผ์ •์˜ ์˜ต์…˜์„ ๋ณ€๊ฒฝํ•œ๋‹ค.

-> Enable Mesh Cleaning๊ณผ Weld Colocated Vertices ์˜ต์…˜๋งŒ ํ™œ์„ฑํ™”

 

 

 

๐Ÿž Mesh Cooking

Mesh Collider๋Š” Mesh๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Collider๋ฅผ ๋นŒ๋“œํ•œ๋‹ค. ์ด ๊ณผ์ •์„ Mesh Cooking์ด๋ผ๊ณ  ํ•œ๋‹ค.

๋‹ค์‹œ ๋งํ•ด Mesh Cooking์ด๋ž€, ์ผ๋ฐ˜ mesh๋ฅผ ๋ฌผ๋ฆฌ์—”์ง„์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ mesh๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๊ณต๊ฐ„ ๊ฒ€์ƒ‰ ๊ตฌ์กฐ(Physics.Raycast ๋“ฑ)๋ฅผ ๋นŒ๋“œํ•˜๋Š” ์ž‘์—…์„ ์˜๋ฏธํ•œ๋‹ค.

Mesh Cooking์€ ๋Ÿฐํƒ€์ž„ ์‹œ์ ์— ์‹คํ–‰๋œ๋‹ค. ๋˜๋Š” Import Settings - Model - Generate Colliders๋กœ ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

 

Mesh๋ฅผ Cooking ํ•˜๋Š” ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

Cook for Faster Simulator

๋Ÿฐํƒ€์ž„์— ์ตœ์ ํ™”๋œ collider๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์˜ต์…˜์ด๋‹ค. ์ƒ์„ฑ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค.

Enable Mesh Cleaning

Mesh์˜ ๊ฒฐํ•จ์„ ์ œ๊ฑฐํ•˜๋Š” ์˜ต์…˜์ด๋‹ค. ์ •ํ™•ํ•œ Hit ํฌ์ธํŠธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Collision ๊ฐ์ง€์— ํšจ๊ณผ์ ์ด๋‹ค.

Weld Colocated Vertices

๊ฐ™์€ ์œ„์น˜์— ์žˆ๋Š” vertex๋“ค์„ ๊ฒฐํ•ฉํ•˜๋Š” ์˜ต์…˜

Use Fast Midphase

๋ ˆ๊ฑฐ์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜(์•„๋งˆ RํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ์–‘)๋ณด๋‹ค ๋” ๋น ๋ฅธ Midphase ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ์˜ต์…˜. ๋Œ€์ƒ ํ”Œ๋žซํผ์ด ๋ฐ์Šคํฌํ†ฑ์ธ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค. 

 

๋ฉ”์‹œ๊ฐ€ ์ค‘๋ณต ์ •์  ๋“ฑ์˜ ๊ฒฐํ•จ์ด๋‚˜ ๋„ˆ๋ฌด ํฌ๊ณ  ์ž‘์€ ์‚ผ๊ฐํ˜•์„ ํฌํ•จํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๋ฉด, Mesh Cleaning๊ณผ Weld Colocated Vertices ์˜ต์…˜์€ ๊ผญ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

 

 

๐Ÿž ์˜ต์…˜ ์„ฑ๋Šฅ ๋น„๊ต

๊ฐ ์˜ต์…˜์„ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ์„ฑ๋Šฅ์„ ๋Œ€์ถฉ ๋น„๊ตํ•ด๋ดค๋‹ค. ์ •๋Ÿ‰์ ์œผ๋กœ ์ •ํ™•ํ•œ ์ธก์ •์€ ์•„๋‹˜

 

 

All

์ด ์˜ต์…˜์˜ ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ๋Š” Collider๊ฐ€ ์ œ๋Œ€๋กœ ์ƒ์„ฑ๋˜์ง€  ์•Š๊ฑฐ๋‚˜ ์—ฐ์‚ฐ ๋ฐฉ์‹์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ Collision ์ฒดํฌ๊ฐ€ ์ œ๋Œ€๋กœ ์•ˆ ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

 

Cook for Faster Simulator + Enable Mesh Cleaning + Weld Colocated Vertices

Faster Simul ์˜ต์…˜ ๋•Œ๋ฌธ์— ์‹คํ–‰ ์‹œ์ž‘๋ถ€ํ„ฐ ๋Ÿฐํƒ€์ž„ ์‹œ์ž‘๊นŒ์ง€ ์‹œ๊ฐ„์ด ๊ฝค ์†Œ์š”๋œ๋‹ค.

 

 

Enable Mesh Cleaning + Weld Colocated Vertices

 

 

 


 ์ฐธ๊ณ ์ž๋ฃŒ 

728x90

+ Recent posts