๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Unity

[Unity] IPointer Interface์— ๋Œ€ํ•œ ์ •๋ฆฌ - ์˜ค๋ธŒ์ ํŠธ ๋งˆ์šฐ์Šค ํฌ์ธํ„ฐ ํด๋ฆญ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ

728x90
๋ฐ˜์‘ํ˜•

 

์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ๊ธ€์€ ๋งˆ์šฐ์Šค ํฌ์ธํ„ฐ์™€ ๊ด€๋ จํ•œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด๋ฒคํŠธ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” IPointer Interface๋ฅผ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ธํ„ฐํŽ˜์ด์Šค๋Š” Event Systems์— ์ œ๊ณต๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋งˆ์šฐ์Šค ์ž…๋ ฅ(ํด๋ฆญ, ๋“œ๋ž˜๊ทธ ๋“ฑ)์ด๋ฒคํŠธ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

 

 

 

 ์˜ค๋ธŒ์ ํŠธ์™€ Image ํƒ€์ž…์˜ ๋น„๊ต

 

3๊ฐœ์˜ ์˜ค๋ธŒ์ ํŠธ

 

ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๊ฐ„๋‹จํžˆ 3๊ฐœ์˜ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.  ์˜ค๋ธŒ์ ํŠธ ์†Œ๊ฐœ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Circle (์›) - UI ์˜ค๋ธŒ์ ํŠธ 

Image (๋„ค๋ชจ) - UI ์ด๋ฏธ์ง€ 

Capsule (์บก์Š) - ์ผ๋ฐ˜ 2D์˜ค๋ธŒ์ ํŠธ

 

IPointer ์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์šฉ์„ ์œ„ํ•ด EventSystem์„ ๋งŒ๋“ค์–ด ์ฃผ๊ณ , Canvas์— Graphic RayCaster ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด ์ฃผ์„ธ์š”.

 

 

Canvas - Graphic Raycaster

 

 

 

์ด์ œ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด TestClick.cs ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค. IPointer ์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์šฉ์„ ์œ„ํ•ด Event Systems๋ฅผ using์œผ๋กœ ์ •์˜ํ•˜๊ณ , ์‚ฌ์šฉํ•  ์ด๋ฒคํŠธ๋“ค์„ ์ƒ์†๋ฐ›์•„ ๊ด€๋ จ๋œ ๋ฉ”์„œ๋“œ๋“ค์„ ๋งŒ๋“ค์–ด ํ•ด๋‹น ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ์•Œ๋งž์€ Log๊ฐ€ ์ฐํžˆ๋„๋ก ํ™•์ธํ•ด ์ค๋‹ˆ๋‹ค.

 

https://docs.unity3d.com/kr/560/Manual/SupportedEvents.html

 

์ง€์›๋˜๋Š” ์ด๋ฒคํŠธ - Unity ๋งค๋‰ด์–ผ

์ด๋ฒคํŠธ ์‹œ์Šคํ…œ์€ ๋‹ค์ˆ˜์˜ ์ด๋ฒคํŠธ๋ฅผ ์ง€์›ํ•˜๋ฉฐ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ์ž…๋ ฅ ๋ชจ๋“ˆ์„ ํ†ตํ•ด ํ•œ์ธต ๋” ํšจ์œจ์ ์œผ๋กœ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

docs.unity3d.com

IPointer ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ด€๋ จํ•œ ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ๋ชจ๋“  ์ •๋ฆฌ๋ฅผ ๋ณด์‹œ๋ ค๋ฉด ์œ„ ์‚ฌ์ดํŠธ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.

 

 

 

์Šคํฌ๋ฆฝํŠธ ๋งŒ๋“  ํ›„ 3๊ฐœ์˜ ์˜ค๋ธŒ์ ํŠธ์— ๊ฐ๊ฐ Test Click ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด ์ค๋‹ˆ๋‹ค.

 

 

 

 

์ง€๊ธˆ๊นŒ์ง€ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. Canvas - Image๋งŒ ๋ฐ˜์‘ํ•˜๊ณ , Canvas-์˜ค๋ธŒ์ ํŠธ & ์ผ๋ฐ˜ ์˜ค๋ธŒ์ ํŠธ๋Š” ๋ฐ˜์‘์„ ๋ชป ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

 ์˜ค๋ธŒ์ ํŠธ ์ด๋ฒคํŠธ ๋ฐ˜์‘์‹œํ‚ค๊ธฐ

 

UI ์•ˆ์— ๋˜๋Š” ๋ฐ–์— ์ •์˜๋œ ์˜ค๋ธŒ์ ํŠธ๋“ค์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”๊ฐ€๋กœ ๋งŒ๋“ค์–ด ์ค˜์•ผ ํ•  ๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Box Colider

๋จผ์ € Collider์ปดํฌ๋„ŒํŠธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” Box Collider๋ฅผ ์ถ”๊ฐ€ ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. 2D/3D ๊ตฌ๋ถ„ํ•ด์„œ ๋„ฃ์–ด์ฃผ์„ธ์š”.

์ €๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด Capsule ์˜ค๋ธŒ์ ํŠธ์—๋งŒ ํ•œ ๋ฒˆ ๋„ฃ์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

Main Camera - Physics Raycaster

 

Main Camera๋กœ ๋„˜์–ด๊ฐ€ Physics RayCaster ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ๋„ 2D/3D ๊ตฌ๋ถ„ํ•ด์„œ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.

 

 

 

 

Box Collider๋ฅผ ์ ์šฉํ•œ Capsule ์˜ค๋ธŒ์ ํŠธ๋Š” ์ •์ƒ์ ์œผ๋กœ ๋ฐ˜์‘์€ ํ•˜์ง€๋งŒ, ์ ์šฉํ•˜์ง€ ์•Š์€ Circle UI ์˜ค๋ธŒ์ ํŠธ๋Š” ๋ฐ˜์‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

 Event Trigger ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅด๊ฒŒ ์ œ์–ดํ•˜๊ธฐ

 

 

์ด๋ฒˆ์—๋Š” ๊ธฐ์กด์˜ ์Šคํฌ๋ฆฝํŠธ์—์„œ ์ง์ ‘ IPoniter ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ์ด๋ฒคํŠธ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๊ฒŒ ์•„๋‹Œ, 

์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด ๋˜‘๊ฐ™์€ ๋ฐ˜์‘์„ ๋ณด์ผ ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์—, ๊ธฐ์กด Text Click ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์œ„์™€ ๊ฐ™์ด ๋ณ€ํ˜•์‹œ์ผœ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

 

๊ทธ๋ฆฌ๊ณ  ๋ฐ˜์‘์‹œํ‚ฌ ์˜ค๋ธŒ์ ํŠธ์— Event Trigger ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์–ด๋–ค ์ด๋ฒคํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€ ์ •์˜ํ•ด ์ค๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ, ์‚ฌ์šฉํ•  ์ด๋ฒคํŠธ์— ์•Œ๋งž์€ ๋ฉ”์„œ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•ด ์ค๋‹ˆ๋‹ค.

 

์œ„์—์„œ ๋ฐ˜์‘ํ•˜์ง€ ์•Š์•˜๋˜ UI ์˜ค๋ธŒ์ ํŠธ Circle์— Collider๋„ ์ถ”๊ฐ€ํ•ด ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

์Šคํฌ๋ฆฝํŠธ ๋ณ€ํ˜•์ด ์žˆ์—ˆ๊ธฐ์—, ๋‹น์—ฐํžˆ Event Trigger ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”๊ฐ€ํ•œ Circle ์˜ค๋ธŒ์ ํŠธ๋งŒ ๋ฐ˜์‘ํ•˜๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•