๊ธ€์“ฐ๋‹ค ๋‹ค ๋‚ ์•„๊ฐ€์„œ ๋‹ค์‹œ ์“ด๋‹ค... ๊ฐœ๋นก์น˜๋„ค ์‚ฌ์ง„ ๋ณต๋ถ™ํ•ด์„œ ์•ˆ๋˜๋Š”๊ฑฐ์˜€๋…ธ


๊ฐœ๋ฐœํ™˜๊ฒฝ: Unity 2021.3.16f (LTS), Visual Studio 2022, VS Code




์˜ค๋Š˜์€ ์–ด์ œ ๊ฐœ๋ฐœ ์™„๋ฃŒํ•œ ๋ชฌ์Šคํ„ฐ ํ”ผ๊ฒฉ ์ดํŽ™ํŠธ์— ๋Œ€ํ•ด์„œ ์จ๋ณด๊ฒ ์Œ

์œ„ ์˜์ƒ์ฒ˜๋Ÿผ ๋ชฌ์Šคํ„ฐ๊ฐ€ ์ณ๋งž์œผ๋ฉด ํฐ์ƒ‰์œผ๋กœ ๋ฒˆ์ฉ๋ฒˆ์ฉ ๋น›๋‚˜๋Š”๊ฑธ ๊ตฌํ˜„ํ–ˆ๋‹ค.

๊ตฌ๊ธ€๋งํ•ด์„œ ๋‚˜์˜ค๋Š” ๋‚ด์šฉ์ด๊ธด ํ•˜์ง€๋งŒ ์˜›๋‚  ๊ธ€์ด์–ด์„œ ์›๋ณธ๋Œ€๋กœ ๋”ฐ๋ผํ•ด๋„ ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋”๋ผ๊ณ ..

๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ๋‚˜์ค‘์— ๋‹ค์‹œ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ์ •๋ฆฌํ•  ๊ฒธ ๋‹ˆ๋“ค๋„ ๋„์›€์ด ๋˜๋ฉด ์ข‹์„๊ฑฐ๊ฐ™์•„์„œ ์ž์„ธํ•˜๊ฒŒ ์จ๋ณธ๋‹ค


1. SpriteRenderer ์ƒ์—์„œ๋Š” ํฐ์ƒ‰ ๋ฒˆ์ฉ๋ฒˆ์ฉ์ด ๊ตฌํ˜„๋˜์ง€ ์•Š๋Š”๋‹ค



๋จผ์ € ์ฒ˜์Œ ํ”ผ๊ฒฉ ์ดํŽ™ํŠธ๋Š” alpha๊ฐ’์„ ์กฐ์ ˆํ•ด์„œ ํ•˜๋ คํ–ˆ์Œ. ํ”ผ๊ฒฉ์‹œ ์•ŒํŒŒ๊ฐ’์„ ๋‚ฎ์ถ”๊ณ  0.1์ดˆ ๋’ค์— ๋‹ค์‹œ ๋ณต๊ตฌํ•˜๋Š” ๋ฐฉ์‹์„ ์ฑ„์šฉํ–ˆ๋Š”๋ฐ

์šฐ๋ฆฌ ์•„ํŠธ๊ฐ€ ์กด๋‚˜ ๋ง˜์— ์•ˆ๋“ ๋‹คํ•ด์„œ ํฐ์ƒ‰์œผ๋กœ ๋ฐ”๊พธ๊ธฐ๋กœ ํ•จ..

๊ทผ๋ฐ ๋‹ค๋“ค ์•Œ๋‹ค์‹œํ”ผ sprite์ƒ์—์„œ RGB๊ฐ’์„ ์กด๋‚˜๋ฐ”๊ฟ”๋ด์•ผ ์‹œ๊บผ๋งค์งˆ ์ˆœ ์žˆ์ง€๋งŒ ํ•˜์–—๊ฒŒ ๋ฐ”๋€”์ˆœ ์—†์Œ

๊ทธ๋ž˜์„œ ๊ตฌ๊ธ€๋ง ์กด๋‚˜ํ•ด์„œ ์ฐพ์€ ๊ฒฐ๊ณผ Material์„ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋œ๋‹ค๋Š” ๊ธ€์„ ๋ฐœ๊ฒฌํ•จ


https://steemit.com/unity/@sesangsokuro/2d-flash-white-unity

https://steemit.com/unity/@sesangsokuro/2d-flash-white-unity


์ด๋Œ€๋กœ ๋”ฐ๋ผํ•˜๋ฉด ๋˜๋Š”๊ฑฐ ์•„๋‹˜? ์ด๋ผ๊ณ  ํ•  ์ˆœ ์žˆ๋Š”๋ฐ ์—ฌ๊ธฐ ๊ธ€์ด ์˜ค๋ž˜๋ผ์„œ ๊ทธ๋Ÿฐ์ง€ shader file ์ฝ”๋“œ๊ฐ€ ์—†์—ˆ๋‹ค.. ๊ทธ๋ž˜์„œ ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์ฐพ์•„์„œ ์ ์šฉํ–ˆ๋Š”๋ฐ

๊ทธ ์ฝ”๋“œ๊ฐ€

https://answers.unity.com/questions/709687/shader-to-flash-a-2d-sprite-to-white.html

https://answers.unity.com/questions/709687/shader-to-flash-a-2d-sprite-to-white.html


์—ฌ๊ธฐ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•œ ๊ฒƒ์ž„.

์ฝ”๋“œ ํ™œ์šฉ ๋ฐฉ๋ฒ•์€ ๋ฐ‘์— ์žˆ์œผ๋‹ˆ ์ด์ œ ์ง„์งœ ์‹œ์ž‘ํ•ด๋ณด๊ฒ ์Œ


2. Material๊ณผ Shader ์ƒ์„ฑ ๋ฐ ์ˆ˜์ •




๋จผ์ € Material ๊ต์ฒด์‹์œผ๋กœ ๋ฒˆ์ฉ๋ฒˆ์ฉ์„ ๊ตฌํ˜„ํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด Material์„ ๋งŒ๋“ค์–ด์คŒ. ๊ทธ๋ฆฌ๊ณ  Material์— ์ ์šฉํ•  Shader๋„ ๋งŒ๋“ค์–ด ์ค„๊ฑฐ์ž„

Shader๋Š” ์–ด์ฐจํ”ผ ์ฝ”๋“œ ๋‚ด์šฉ ๋‹ค ์ง€์šฐ๊ณ  ์ˆ˜์ •ํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด๊ฑฐ๋‚˜ ๋งŒ๋“ค์–ด์ค˜๋„ ๋˜๋Š”๋ฐ ๋‚˜๋Š” Standard๋กœ ๋งŒ๋“ค์–ด์คฌ์Œ

๋‘˜ ๋‹ค ๋งŒ๋“ค๊ณ  ์ด๋ฆ„์€ PaintWhite๋กœ ์ง€์ •ํ•ด์คฌ๋Š”๋ฐ ์ด๋ฆ„์€ ๋”ฑํžˆ ์ƒ๊ด€์—†์Œ

๋‘˜ ๋‹ค ๋งŒ๋“ค์—ˆ๋‹ค๋ฉด Shader ํŒŒ์ผ์„ VS code๋กœ ์—ด์–ด์„œ ์ˆ˜์ •ํ•ด์ค„๊ฑฐ์ž„


์•„๊นŒ ์›๋ž˜ ์ฝ”๋“œ๋ฅผ ์‹น๋‹ค ์ง€์šฐ๊ณ  ๋งํฌ์— ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณต๋ถ™ํ•ด์ค„๊ฑฐ์ž„

3๋ฒˆ์ค„์„ ๋ณด๋ฉด ์•Œ๋“ฏ์ด ์‰์ด๋”์˜ ์ด๋ฆ„์ด DefaultColorFlash๋กœ ์ง€์ •๋˜์–ด ์žˆ์Œ

์ด๊ฑธ ์ด์ œ Material์— ์ ์šฉํ•ด์ค„๊ฑด๋ฐ



๋™๊ทธ๋ผ๋ฏธ ์นœ ๋ถ€๋ถ„์„ ๋ˆŒ๋Ÿฌ์„œ DefaultColorFlash๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ฉด ๋‚˜์˜ค๋Š”๊ฑธ ์ ์šฉํ•ด์คŒ

๊ทธ๋ฆฌ๊ณ  Flash Amount๋ฅผ ์›ํ•˜๋Š”๋Œ€๋กœ ์ ์šฉํ•ด์ฃผ๋ฉด ๋˜๋Š”๋ฐ ๋‚˜๋Š” ์™„์ „ ํฐ์ƒ‰์œผ๋กœ ๋ฒˆ์ฉ์ด๋Š”๊ฑธ ์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— 1๋กœ ๋งž์ถฐ์คฌ์Œ

์ด์ œ Material ์ค€๋น„๋Š” ๋‹ค ๋๋‚ฌ๊ณ  ์ฝ”๋“œ์— ์ ์šฉ๋งŒ ํ•˜๋ฉด๋จ



3. ์ฝ”๋“œ์— ์ ์šฉํ•˜๊ธฐ


Enemy Prefab ํ•˜๋‚˜ํ•˜๋‚˜์— Material์„ SerializeField๋กœ ๋“ฑ๋กํ•ด์ฃผ๊ณ  ์“ฐ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ

๊ทธ๋Ÿฌ๊ธฐ์—” prefab์ด ๋„ˆ๋ฌด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋Š” EnemyManager์— ๋“ฑ๋กํ•ด์ฃผ๊ณ  ์Šคํฌ๋ฆฝํŠธ ์ƒ์—์„œ ๋ถˆ๋Ÿฌ์™€์„œ ์“ฐ๋Š” ๋ฐฉ์‹์„ ์ฑ„์šฉํ–ˆ์Œ




EnemyManager์— public์ด๋‚˜ SerializeField๋กœ ์„ ์–ธํ•œ Material์— ๋“ฑ๋กํ•ด์คฌ์Œ



private์œผ๋กœ ๋“ฑ๋กํ–ˆ๊ธฐ์— Getํ•จ์ˆ˜๋„ ๋งŒ๋“ฆ




EnemyHP์— ๋ชฌ์Šคํ„ฐ ํ”ผ๊ฒฉ ํ•จ์ˆ˜(Take Damage)๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— EnemyHPํ•จ์ˆ˜์—์„œ Material์„ ๊ต์ฒดํ•ด์ฃผ๊ฒ ์Œ

Material์„ ์„ ์–ธํ•˜๊ณ  enemy manger์— ์žˆ๋Š” GetWhiteFlash()ํ•จ์ˆ˜๋กœ ๋“ฑ๋ก๋œ๊ฑธ ๊ฐ€์ ธ์™”์Œ



์ด์ œ ์ ์šฉํ•ด์ค„๊ฑด๋ฐ origin์„ ๋ฏธ๋ฆฌ ์ €์žฅํ•ด์ฃผ๊ณ  material ๊ต์ฒด ํ›„ 0.1์ดˆ๊ฐ€ ์ง€๋‚˜๋ฉด ๋‹ค์‹œ ์›๋ž˜๋Œ€๋กœ ๋Œ์•„์˜ค๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์งฐ์Œ

๊ทผ๋ฐ ์ด๋ ‡๊ฒŒ๋งŒ ์งœ๋ฉด ๋น„๋™๊ธฐ์‹์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ํƒ€๊ฒฉ์ด ๋™์‹œ์— ๋“ค์–ด์˜ค๋ฉด material์ด ์›๋ž˜๋Œ€๋กœ ์•ˆ๋Œ์•„์˜ค๋Š” ๋ฒ„๊ทธ๊ฐ€ ์ƒ๊น€

๊ทธ ๋ฒ„๊ทธ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด isHitting Boolean์„ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ์ด๋ฏธ ํ”ผ๊ฒฉ ์ดํŽ™ํŠธ๊ฐ€ ๋ฐœ๋™ํ•˜๊ณ  ์žˆ์„ ๋•Œ๋Š” ์‹คํ–‰์ด ์•ˆ๋˜๋„๋ก ์„ค์ •ํ•ด์คŒ


์ด๋Ÿฌ๋ฉด ๋ชฌ์Šคํ„ฐ ํ”ผ๊ฒฉ ์ดํŽ™ํŠธ ๋งŒ๋“ค๊ธฐ ๋. ๊ผญ ๋ชฌ์Šคํ„ฐ๊ฐ€ ์•„๋‹ˆ์–ด๋„ alpha๊ฐ’์„ ๊ฐ™์ด ํ™œ์šฉํ•ด์„œ ๋ฉ”์ดํ”Œ์ฒ˜๋Ÿผ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ํ”ผ๊ฒฉ ๋‹นํ–ˆ์„ ๋•Œ๋„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์„๊ฑฐ์ž„


์˜ค๋Š˜๋„ ๋ด์ค˜์„œ ๊ณ ๋ง™๊ณ  ์œ ๋‹ˆํ‹ฐ 2D ๊ฐœ๋ฐœํ•˜๋Š” ๋™์ง€๋“ค ๋‹ค๋“ค ํ™”์ดํŒ…ํ•˜์ž




๊ฐœ๋ฐœ์ผ์ง€ ๋‹ค์‹œ๋ณด๊ธฐ

#1

https://gall.dcinside.com/m/game_dev/116598

[์— ์—์Šค๊ฒŒ์ž„์ฆˆ] ํ”ฝ์…€ ํฌ์ปค ๋””ํŽœ์Šค ๊ฐœ๋ฐœ์ผ์ง€ #1 - ๊ฒŒ์ž„ ๊ฐœ์š”2022๋…„ 7์›”๋ถ€ํ„ฐ ๊ฐœ๋ฐœ ์‹œ์ž‘ํ•œ ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„์ธ๋ฐ ์จ์•ผ์ง€ ์จ์•ผ์ง€ ํ•˜๋‹ค๊ฐ€ ๊ณ„์† ๋ฏธ๋ฃจ๊ณ  ์˜ฌํ•ด ์”๋‹ˆ๋‹ค์‹ค์ œ ๊ฐœ๋ฐœ ์‹œ์ž‘ํ•œ๊ฑด 9์›”๋ถ€ํ„ฐ๋ผ ์ฒ˜์Œ ์˜ฌ๋ฆฌ๋Š”๊ฑฐ์น˜๊ณ  ์–‘์ด ๋งŽ์œผ๋‹ˆ ์ดํ•ดํ•ด์ฃผ์‹ญ์‡ผ์šฐ์„  ํ”ฝํฌ๋””๋Š” ์Šคํƒ€ ์œ ์ฆˆ๋งต "ํ—ฌ ํฌ์ปค ๋””ํŽœ์Šคgall.dcinside.com



#2

https://gall.dcinside.com/m/game_dev/116609

[์— ์—์Šค๊ฒŒ์ž„์ฆˆ] ํ”ฝํฌ๋”” ๊ฐœ๋ฐœ์ผ์ง€ #2 ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ชจ๋“ˆ ๊ฐœ๋ฐœ์›๋ž˜ 2๋กœ ํ•ต์‹ฌ ํƒ€์›Œ ๊ธฐ๋ฌผ๋“ค ์„ค๋ช… ๊ฒธ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ณด์—ฌ์ค„๋ผํ–ˆ๋Š”๋ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ชจ๋“ˆ ๋งŒ๋“ ๊ฑฐ๋ถ€ํ„ฐ ์จ๋ณด๋ คํ•จ์• ๋‹ˆ๋ฉ”์ดํ„ฐ ์•ˆ์“ฐ๊ณ  ์Šคํฌ๋ฆฝํŠธ๋กœ ๊ตฌํ˜„ํ•˜์‹œ๋Š” ๋Šฅ๋ ฅ์ž๋ถ„๋“ค์€ ์ด๋ฏธ ๋งŽ๊ฒ ์ง€๋งŒ, ๋‚˜๋ฅผ ๋น„๋กฏํ•œ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๋“ค์€ ์ด๋Ÿฐ๊ฑธ ์ž˜ ๋ชจ๋ฅผ ์ˆ˜ ์žˆ๊ธฐgall.dcinside.com


#3

https://gall.dcinside.com/m/game_dev/116665

[MS๊ฒŒ์ž„์ฆˆ] ํ”ฝํฌ๋”” ๊ฐœ๋ฐœ์ผ์ง€ #3 ์„ธ์ด๋ธŒ๋กœ๋“œ ๊ฐœ๋ฐœ์˜ค๋Š˜ ์ถ”๊ฐ€ํ•œ ์„ธ์ด๋ธŒ๋กœ๋“œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์–˜๊ธฐํ•ด๋ณด๋ คํ•จ์ผ๋‹จ ๊ฒŒ์ž„ํ•˜๋‹ค ์ค‘๊ฐ„์— ๊บผ์ง€๋ฉด ๋นก์น˜๊ธฐ๋„ํ•˜๊ณ  ๋ถ„๊ธฐ์  ๋งŒ๋“ค๋ฉด ๋ถ„๊ธฐ์  ๋งŒ๋“ค์–ด์„œ ์›ํ•˜๋Š” ์นด๋“œ ๋‚˜์˜ฌ๋•Œ๊นŒ์ง€ ๋‹ค์‹œ ์‹œ์ž‘ํ• ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ ์ž๋™์ €์žฅ ๋ฐฉ์‹์„ ์ฑ„์šฉํ•จ.์ „์ฒด์ ์ธ ํ๋ฆ„์€(ํ”Œ๋กœ์šฐ ์ฐจํŠธgall.dcinside.com