๐ŸŽฎ Unity Study/Unity

[Unity] Scrollrect ์ปดํฌ๋„ŒํŠธ๋กœ Scrollview ๋งŒ๋“ค๊ธฐ

ibelieveinme 2022. 11. 17. 17:57
728x90

[๊ธฐ๋ณธ๊ฐœ๋…]

Unity์—์„œ ์ œ๊ณตํ•˜๋Š” ์Šคํฌ๋กค ์‚ฌ๊ฐ ์˜์—ญ(Scroll Rect) Component๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ์Šคํฌ๋กคํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Scroll Rect์˜ ๊ธฐ๋ณธ ์†์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

- ํ”„๋กœํผํ‹ฐ

ํ”„๋กœํผํ‹ฐ ๊ธฐ๋Šฅ ์„ค๋ช…
Content ์ปค๋‹ค๋ž€ ์ด๋ฏธ์ง€์™€ ๊ฐ™์€, ์Šคํฌ๋กค๋  UI ์š”์†Œ์˜ ์‚ฌ๊ฐ ํŠธ๋žœ์Šคํผ์— ๋Œ€ํ•œ ์ฐธ์กฐ์ž…๋‹ˆ๋‹ค.
Horizontal ์ˆ˜ํ‰ ์Šคํฌ๋กค๋ง์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
Vertical ์ˆ˜์ง ์Šคํฌ๋กค๋ง์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
Movement Type ์ œํ•œ ์—†์Œ, ํƒ„์„ฑ ์žˆ์Œ ๋˜๋Š” ์œ„์น˜ ํ•œ์ •.
ํƒ„์„ฑ ์žˆ์Œ์ด๋‚˜ ์œ„์น˜ ํ•œ์ • ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ˜ํ…์ธ ๊ฐ€ ์Šคํฌ๋กค ์‚ฌ๊ฐ ์˜์—ญ ๋ฒ”์œ„ ๋‚ด์— ๋จธ๋ฌผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
ํƒ„์„ฑ ์žˆ์Œ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ˜ํ…์ธ ๊ฐ€ ์Šคํฌ๋กค ์‚ฌ๊ฐ ์˜์—ญ ๊ฐ€์žฅ์ž๋ฆฌ์— ๋‹ฟ์œผ๋ฉด ํŠ•๊ธฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
        Elasticity ํƒ„์„ฑ ์žˆ์Œ ๋ชจ๋“œ์—์„œ ์‚ฌ์šฉํ•  ํƒ„์„ฑ ์ •๋„์ž…๋‹ˆ๋‹ค.
Inertia ๊ด€์„ฑ์ด ์„ค์ •๋˜๋ฉด ๋“œ๋ž˜๊ทธ ํ›„ ํฌ์ธํ„ฐ๋ฅผ ๋–ผ๋”๋ผ๋„ ์ฝ˜ํ…์ธ ๊ฐ€ ๊ณ„์† ์›€์ง์ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ,
๋“œ๋ž˜๊ทธํ•ด์•ผ๋งŒ ์ฝ˜ํ…์ธ ๊ฐ€ ์›€์ง์ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
        Deceleration Rate ๊ด€์„ฑ์ด ์„ค์ •๋˜๋ฉด ๊ฐ์†๋ฅ ์€ ์ฝ˜ํ…์ธ ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋น ๋ฅด๊ฒŒ ์ •์ง€ํ•˜๋Š”์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์ด 0์ด๋ฉด ๋ฐ”๋กœ ๋ฉˆ์ถ”๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ ์ฝ˜ํ…์ธ ๋Š” ๋Š๋ ค์ง€์ง€ ์•Š๊ณ  ๊ณ„์† ์›€์ง์ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
Scroll Sensitivity ์Šคํฌ๋กค ํœ ๊ณผ ํŠธ๋ž™ ํŒจ๋“œ ์Šคํฌ๋กค ์ด๋ฒคํŠธ ๋ฏผ๊ฐ๋„์ž…๋‹ˆ๋‹ค.
Viewport ์ฝ˜ํ…์ธ  ์‚ฌ๊ฐ ํŠธ๋žœ์Šคํผ์˜ ๋ถ€๋ชจ์ธ ๋ทฐํฌํŠธ ์‚ฌ๊ฐ ๋ณ€ํ™˜์— ๋Œ€ํ•œ ์ฐธ์กฐ์ž…๋‹ˆ๋‹ค.
Horizontal Scrollbar ์ˆ˜ํ‰ ์Šคํฌ๋กค๋ฐ” ์š”์†Œ์— ๋Œ€ํ•œ ์„ ํƒ ์ฐธ์กฐ์ž…๋‹ˆ๋‹ค.
        Visibility ์Šคํฌ๋กค๋ฐ”๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์ˆจ๊ธธ์ง€, ์„ ํƒ์ ์œผ๋กœ ๋ทฐํฌํŠธ๋„ ํ™•์žฅํ• ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
        Spacing ์Šคํฌ๋กค๋ฐ”์™€ ๋ทฐํฌํŠธ ๊ฐ„ ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค.
Vertical Scrollbar ์ˆ˜์ง ์Šคํฌ๋กค๋ฐ” ์š”์†Œ์— ๋Œ€ํ•œ ์„ ํƒ ์ฐธ์กฐ์ž…๋‹ˆ๋‹ค.
        Visibility ์Šคํฌ๋กค๋ฐ”๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์ˆจ๊ธธ์ง€, ์„ ํƒ์ ์œผ๋กœ ๋ทฐํฌํŠธ๋„ ํ™•์žฅํ• ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
        Spacing ์Šคํฌ๋กค๋ฐ”์™€ ๋ทฐํฌํŠธ ๊ฐ„ ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค.

 

- ์ด๋ฒคํŠธ(Events)

ํ”„๋กœํผํ‹ฐ ๊ธฐ๋Šฅ
On Value Changed ์Šคํฌ๋กค ์‚ฌ๊ฐ ์˜์—ญ์˜ ์Šคํฌ๋กค ํฌ์ง€์…˜์ด ๋ณ€๊ฒฝ๋˜๋ฉด ํ˜ธ์ถœ๋˜๋Š” Unity ์ด๋ฒคํŠธ์ž…๋‹ˆ๋‹ค.
์ด๋ฒคํŠธ๋Š” ํ˜„์žฌ ์Šคํฌ๋กค ํฌ์ง€์…˜์„ Vector2 ํƒ€์ž… ๋™์  ์ธ์ˆ˜๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Scroll rect ์ปดํฌ๋„ŒํŠธ ์†์„ฑ์—์„œ ๊ฐ€์žฅ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฐœ๋…์€ Viewport์™€ Content ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

* Viewport : ํ‘œ์‹œํ•˜๊ณ ์ž ํ•˜๋Š” ์ฝ˜ํ…์ธ ๊ฐ€ ๋ณด์—ฌ์งˆ ๊ณณ

* Content : ํ‘œ์‹œํ•˜๊ณ ์ž ํ•˜๋Š” ๋‚ด์šฉ๋ฌผ


[์‚ฌ์šฉ ๋ฐฉ๋ฒ•]

1. ๋ฃจํŠธ Object์— ์Šคํฌ๋กค Scroll Rect ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€ํ•˜๊ธฐ.

Viewport์—๋Š” Mask ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ปจํ…์ธ ๋ฅผ ๋ณด์—ฌ์ค„ ๋•Œ, Mask ์˜์—ญ๊นŒ์ง€๋งŒ ๋ณด์ด๊ฒŒ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋•Œ, ์Šคํฌ๋กค๋˜๋Š” ๋ชจ๋“  ์ฝ˜ํ…์ธ ๋Š” ๋ทฐํฌํŠธ์˜ ์ž์‹์ธ ๋‹จ์ผ ์ฝ˜ํ…์ธ  Object์˜ Child ๊ฐ์ฒด์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

2. ์Šคํฌ๋กค์ด ๋ณด์ด๊ฒŒ ํ•  ๊ฑด์ง€, ๋ฐฐ๊ฒฝ์ƒ‰์€ ์žˆ๊ฒŒ ํ•  ๊ฑด์ง€ ๋“ฑ๋“ฑ Custom ํ•˜๊ธฐ

Horizontal Scrollbar, Vertical Scrollbar ๋ฅผ ๋‹ค ์—†์•ค ์ƒํƒœ.

 

Horizontal ์†์„ฑ๋งŒ ์ฒดํฌํ•ด์ฃผ๋ฉด ๊ฐ€๋กœ๋งŒ ์Šคํฌ๋กค์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

Movement Type์„ Elastic์œผ๋กœ ์ฃผ๋ฉด ๋๋ถ€๋ถ„์—์„œ ๋š ๋Š๊ธฐ์ง€ ์•Š๊ณ  ํŠ•๊ธฐ๋Š” ๋ชจ์…˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

3. ์ด ๋•Œ, ๋งˆ์ง€๋ง‰๊นŒ์ง€ ์Šคํฌ๋กค์ด ์•ˆ๋˜๊ณ  ํŠ•๊ธด๋‹ค๋ฉด Content ๊ฐ์ฒด์— Content Size Fitter๋ฅผ ๋‹ฌ์•„์ค€๋‹ค.

Content Size๊ฐ€ ์ง์•„์„œ ๊ทธ๋Ÿฐ ๊ฒƒ.

 

Content Size Fitter์˜ Horizontal Fit ์†์„ฑ์„ Preferred Size๋กœ ๋ถ€์—ฌํ•˜๋ฉด Content ํฌ๊ธฐ๊ฐ€ ์ž์‹ ๊ฐ์ฒด์˜ ๊ฐ€๋กœ ๊ธธ์ด๋งŒํผ ํ• ๋‹น๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋๊นŒ์ง€ ์Šคํฌ๋กค์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.

 

+ ์ •๋ ฌ์„ ์œ„ํ•ด Horizontal Layout Group ์„ ๋‹ฌ์•„์ฃผ์—ˆ๋”ฐ.

 

4. Content ๋‚ด๋ถ€์˜ ๊ฐ์ฒด ๊ฐ€๋กœ, ์„ธ๋กœ ์ด๋ฏธ์ง€๊ฐ€ ์•ˆ๋ณด์ธ๋‹ค๋ฉด Layout Group ์˜ Child Size ์š”์†Œ๋ฅผ ๋ณ€๊ฒฝํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

Card List ๊ฐ€๋กœ ๋ฐฐ๊ฒฝ์ด ์•ˆ๋‚˜์˜ค๊ณ  ๋ฐฐ์น˜๊ฐ€ ์ด์ƒํ–ˆ์—ˆ๋Š”๋ฐ Vertical Layout Group ์˜ Control Child Size, Child Force Expand ๋ฅผ ์ ์šฉํ•ด์ฃผ๋‹ˆ ์ž˜ ๋ณด์˜€๋‹ค.

 

๐Ÿ’› Unity Manual ์ฐธ๊ณ 

https://docs.unity3d.com/kr/2019.4/Manual/script-ScrollRect.html

 

์Šคํฌ๋กค ์‚ฌ๊ฐ ์˜์—ญ - Unity ๋งค๋‰ด์–ผ

๊ณต๊ฐ„์„ ๋งŽ์ด ์ฐจ์ง€ํ•˜๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ์ž‘์€ ์˜์—ญ์— ํ‘œ์‹œํ•ด์•ผ ํ•  ๋•Œ ์Šคํฌ๋กค ์‚ฌ๊ฐ ์˜์—ญ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋กค ์‚ฌ๊ฐ ์˜์—ญ(Scroll Rect)์€ ์ฝ˜ํ…์ธ ๋ฅผ ์Šคํฌ๋กคํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

docs.unity3d.com

 

728x90