๋ฉ”์ธ ์ฝ˜ํ…์ธ ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

๐Ÿš€ ๋น ๋ฅธ ์‹œ์ž‘

๐Ÿ”ˆ Hover for sound

๐Ÿ“‹ ๊ฐœ์š”โ€‹

์ด ์ž…๋ฌธ์šฉ ์”ฌ์€ ํ”„๋กœ์ ํŠธ์—์„œ Game Event System์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ผํšŒ์„ฑ ์„ค์ • ๊ณผ์ •์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. ๋ฐ๋ชจ๋ฅผ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์‚ดํŽด๋ณด๊ธฐ ์ „์— ํ•ต์‹ฌ ํ”„๋ ˆ์ž„์›Œํฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ดˆ๊ธฐํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก ๋ฐฐ์šธ ๋‚ด์šฉ
  • Game Event System ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์—ฌ๋Š” ๋ฐฉ๋ฒ•
  • ํด๋ฆญ ํ•œ ๋ฒˆ์œผ๋กœ ์‹œ์Šคํ…œ์„ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ์„ค์ • ๊ณผ์ •์—์„œ ์ƒ์„ฑ๋˜๋Š” ์ปดํฌ๋„ŒํŠธ ํ™•์ธ

๐ŸŽฌ ๋ฐ๋ชจ ์”ฌโ€‹

Assets/TinyGiants/GameEventSystem/Demo/00_QuickStart/00_QuickStart.unity

์ดˆ๊ธฐํ™” ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ์ด ์”ฌ์„ ์—ฌ์‹ญ์‹œ์˜ค.


๐Ÿค” ์™œ ์ดˆ๊ธฐํ™”๊ฐ€ ํ•„์š”ํ•œ๊ฐ€์š”?โ€‹

Game Event System์€ ๋ชจ๋“  ์ด๋ฒคํŠธ ์ž‘์—…์„ ์กฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด **์ƒ์ฃผ ๋งค๋‹ˆ์ €(persistent manager)**์ธ GameEventManager์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ์ด ๋งค๋‹ˆ์ €๊ฐ€ ์—†์œผ๋ฉด ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ฑฐ๋‚˜ ๋ฆฌ์Šค๋‹ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ดˆ๊ธฐํ™” ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค์Œ ํ•ญ๋ชฉ๋“ค์„ ์ž๋™์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค:

์ปดํฌ๋„ŒํŠธ์„ค๋ช…
๐ŸŽฎ GameEventManager์‹ฑ๊ธ€ํ†ค ๋งค๋‹ˆ์ € (DontDestroyOnLoad๋กœ ํ‘œ์‹œ๋จ)
๐Ÿ“š ์ด๋ฒคํŠธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฒคํŠธ ์ •์˜๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ์—์…‹
๐Ÿ”— ํ”Œ๋กœ์šฐ ์ปจํ…Œ์ด๋„ˆ์ด๋ฒคํŠธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์„ ์œ„ํ•œ ์‹œ๊ฐ์  ๋กœ์ง ๊ทธ๋ž˜ํ”„
โš™๏ธ ์ƒ์„ฑ๋œ ์ฝ”๋“œ๋‚ด์žฅ ์ด๋ฒคํŠธ ํƒ€์ž…(void, int, float ๋“ฑ)์„ ์œ„ํ•œ C# ํด๋ž˜์Šค

๐Ÿ“– ๋‹จ๊ณ„๋ณ„ ์„ค์ • ์ง€์นจโ€‹

1๏ธโƒฃ ๋Œ€์‹œ๋ณด๋“œ ์—ด๊ธฐโ€‹

์œ ๋‹ˆํ‹ฐ ์ƒ๋‹จ ๋ฉ”๋‰ด์—์„œ ๋‹ค์Œ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•˜์‹ญ์‹œ์˜ค:

Tools โ†’ TinyGiants โ†’ Game Event System

๊ทธ๋Ÿฌ๋ฉด ์ด๋ฒคํŠธ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ํ”Œ๋กœ์šฐ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ค‘์•™ ํ—ˆ๋ธŒ์ธ Game Event System ์ฐฝ์ด ์—ด๋ฆฝ๋‹ˆ๋‹ค.


2๏ธโƒฃ ์‹œ์Šคํ…œ ์ƒํƒœ ํ™•์ธโ€‹

์ฐฝ์—์„œ "Initialize System" ์„น์…˜์„ ์ฐพ์œผ์‹ญ์‹œ์˜ค:

๐Ÿ”ต ์ดˆ๊ธฐํ™” ์ „โ€‹

System Uninitialized

  • ํŒŒ๋ž€์ƒ‰ "Initialize Event System" ๋ฒ„ํŠผ์ด ๋ณด์ž…๋‹ˆ๋‹ค.
  • โš ๏ธ ๊ฒฝ๊ณ : "Please initialize the system first (์‹œ์Šคํ…œ์„ ๋จผ์ € ์ดˆ๊ธฐํ™”ํ•˜์‹ญ์‹œ์˜ค)"

๐ŸŸข ์ดˆ๊ธฐํ™” ํ›„โ€‹

System Initialized

  • ์ƒํƒœ ๋ฐ”๊ฐ€ ๋…น์ƒ‰์œผ๋กœ ๋ณ€ํ•˜๋ฉฐ "โœ“ System Initialized"๋ผ๊ณ  ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • โœ… ํ™•์ธ: "Core managers, database and codes are ready (ํ•ต์‹ฌ ๋งค๋‹ˆ์ €, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ์ฝ”๋“œ๊ฐ€ ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค)"

3๏ธโƒฃ ์ดˆ๊ธฐํ™” ํด๋ฆญโ€‹

"Initialize Event System" ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์‹ญ์‹œ์˜ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ž๋™์œผ๋กœ ๋‹ค์Œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค:

์ž‘์—…๊ฒฐ๊ณผ
๋งค๋‹ˆ์ € ์ƒ์„ฑ์”ฌ์— GameEventManager ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ ์ถ”๊ฐ€ (์ƒ์ฃผํ˜•)
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑํ”„๋กœ์ ํŠธ์— DefaultEventDatabase.asset ์ƒ์„ฑ
ํ”Œ๋กœ์šฐ ๊ทธ๋ž˜ํ”„ ์„ค์ •์‹œ๊ฐ์  ๋กœ์ง์„ ์œ„ํ•œ DefaultFlowContainer.asset ์ƒ์„ฑ
์ฝ”๋“œ ์ปดํŒŒ์ผํƒ€์ž… ์•ˆ์ •์„ฑ์ด ๋ณด์žฅ๋œ C# ์ด๋ฒคํŠธ ํด๋ž˜์Šค ์ƒ์„ฑ

์ฝ˜์†”์— ๐ŸŽ‰ GameEvent initialization complete ๋ฌธ๊ตฌ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.


โœ… ์„ค์ • ํ™•์ธโ€‹

์ดˆ๊ธฐํ™”๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์„ค์ •์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค:

  1. ํ•˜์ด์–ด๋ผํ‚ค ํ™•์ธ ๐Ÿ”

    ๋ฃจํŠธ ๋ ˆ๋ฒจ์— GameEventManager ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๋‚˜ํƒ€๋‚˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  2. ์ธ์ŠคํŽ™ํ„ฐ ํ™•์ธ ๐Ÿ‘€

    ๋งค๋‹ˆ์ €๋ฅผ ์„ ํƒํ•˜์—ฌ ํ• ๋‹น๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Database)์™€ ํ”Œ๋กœ์šฐ ์ปจํ…Œ์ด๋„ˆ(Flow Container) ์ฐธ์กฐ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

  3. ์ฝ˜์†” ํ™•์ธ ๐Ÿ“

    ์ดˆ๊ธฐํ™” ์„ฑ๊ณต์„ ํ™•์ธํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ฐพ์œผ์‹ญ์‹œ์˜ค.

GameEventManager in Hierarchy

๐Ÿ”” ์”ฌ ๋ ˆ๋ฒจ ์„ค์ •

๊ฐ ์”ฌ์ด ์ •์ƒ ์ž‘๋™ํ•˜๋ ค๋ฉด ์ž์ฒด์ ์ธ GameEventManager๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋งค๋‹ˆ์ €๋Š” ํ•ด๋‹น ์”ฌ์—์„œ ์–ด๋–ค ์ด๋ฒคํŠธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ”Œ๋กœ์šฐ ๊ทธ๋ž˜ํ”„๊ฐ€ ํ™œ์„ฑํ™”๋ ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž์ฒด(ScriptableObject ์—์…‹)๋Š” ์˜๊ตฌ์ ์ด๋ฉฐ ์—ฌ๋Ÿฌ ์”ฌ์—์„œ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐ ์”ฌ์€ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ• ์ง€ ๋ช…์‹œ์ ์œผ๋กœ ๋ฐ”์ธ๋”ฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


๐ŸŽฏ ๋‹ค์Œ ๋‹จ๊ณ„๋Š”?โ€‹

ํ™˜๊ฒฝ์ด ์ค€๋น„๋˜์—ˆ์œผ๋ฏ€๋กœ ์ด์ œ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ์žฅ: **01 Void ์ด๋ฒคํŠธ**์—์„œ ์ฒซ ๋ฒˆ์งธ ์ด๋ฒคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›Œ๋ณด์‹ญ์‹œ์˜ค.

๐Ÿ“š ์‹ฌํ™” ํ•™์Šต

์ดˆ๊ธฐํ™” ํ”„๋กœ์„ธ์Šค ๋ฐ ์ˆ˜๋™ ์„ค์ • ์˜ต์…˜์— ๋Œ€ํ•œ ๊ธฐ์ˆ ์  ์ƒ์„ธ ๋‚ด์šฉ์€ **์„ค์น˜ ๊ฐ€์ด๋“œ**๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.