์ ์
Unreal Engine ๋ด๋ถ์์ ์๋ก ๋ค๋ฅธ Type์ ๋ฐ์ดํฐ๋ฅผ ํ๋์ ๋
ผ๋ฆฌ์ ์ธ ๋จ์๋ก ๋ฌถ์ด ๊ด๋ฆฌํ๊ณ Memory ์ ๊ทผ ํจ์จ์ ๊ทน๋ํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ฌ์ฉ์ ์ ์ Data Type์ด๋ค.
์ค๋ช
C++ struct ๋ฌธ๋ฒ์ ๋ฐํ์ผ๋ก Epic Games๊ฐ ์์ง ๊ณ ์ ์ Reflection System๊ณผ ์ฐ๋๋๋๋ก ์ค๊ณํ๋ค.
Class์ธ UObject์ ๋ฌ๋ฆฌ Garbage Collection์ ์ถ์ ์ ๋ฐ์ง ์๊ณ ์ฃผ๋ก Stack Memory์ ํ ๋น๋๋ Value Type์ผ๋ก ์๋ํ์ฌ ์์ฑ๊ณผ ์๋ฉธ์ ๋ฐ๋ฅด๋ Overhead๊ฐ ๊ทน๋๋ก ์ ๋ค.
์๋ฆฌ
- Refleciton System ์ฐ๋
USTRUCT ๋งคํฌ๋ก๋ฅผ ์ ์ธํ์ฌ C++์ Data ํํ๋ฅผ ๊ฐ์ ๋จธ์ ์ ๋ฑ๋กํ๊ณ Blueprint Editor์์ ์๊ฐ์ ์ผ๋ก ์ ๊ทผํ๊ณ ์์ ํ ์ ์๊ฒ ๋ง๋ ๋ค.
- Value Type ์ฐ์ฐ
Reference ํํ๋ก Memory ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋ Class์ ๋ฌ๋ฆฌ ๋ณ์ ์ ์ธ ์ Data ์์ฒด๋ฅผ ๋ณต์ฌํ์ฌ ๋๊ฒจ์ฃผ๋ ๋ฐฉ์์ ์ฑํํ์ฌ Memory ํํธํ๋ฅผ ๋ฐฉ์งํ๋ค.
- Serialization ์ต์ ํ
Serialization ๊ธฐ๋ฅ์ ๊ธฐ๋ณธ ์ง์ํ์ฌ ๋ด๋ถ Data๋ฅผ Byte ๋ฐฐ์ด๋ก ๋ณํํ ๋ค Hard Disk์ ์ ์ฅํ๊ฑฐ๋ Server๋ก ์ก์ถํ๋ ๊ฐ๋ฒผ์ด ํต์ ๊ท๊ฒฉ์ผ๋ก ์๋ํ๋ค.
- Data Table ๊ท๊ฒฉํ
Excel์ด๋ CSV ํ์ผ์ Column ํญ๋ชฉ๋ค์ ์์ง์ผ๋ก ๊ฐ์ ธ์ฌ ๋ ๊ฐ Column์ Type์ 1๋1๋ก ๋งค์นญ ์ํค๋ ๊ธฐ์ค Row ํ๋งท ์ญํ ์ ์๋ฒฝํ ์ํํ๋ค.
๊ตฌ์กฐ
struct FAudioData { GENERATED_BODY() UPROPERTY() float Volume; };
- FAudioData: Epic Games ํ์ค ST ์ ๋์ฌ๊ฐ ๋ถ์ ๊ตฌ์กฐ์ฒด ์ด๋ฆ
- GENERATED_BODY: ์์ง์ด ์๋ ์์ฑ ์ฝ๋๋ฅผ ์ฝ์ ํ๋ ๋งคํฌ๋ก
- UPROPERTY: ์์ง๊ณผ Blueprint์ ๋ณ์๋ฅผ ๋ ธ์ถํ๋ ์ง์์ด
์์
Audio Parameter ์บก์ํ
Metasound๋ Wwise์ ์ ๋ฌํ ์์ญ ๊ฐ์ ๋ณ์๋ฅผ ๋ฑ๊ฐ๋ก ์ฐ๊ฒฐํ๋ฉด ์ฝ๋๊ฐ ์ํจ๋ค. ์ด๋ฅผ FAudioParameter๋ก ๋ฌถ์ด Audio Folder์ ๋ณด๊ดํ ๋ค Event์ ๋จ์ผ ํ์ผ๋ก ๋๊ฒจ ๋๋ฝ ์ฌ๊ณ ๋ฅผ ๋ฐฉ์งํ๋ Pipeline์ ๊ตฌ์ถํ๋ค.
Data. Table Inventory ์ฐ๋
์๋ฐฑ ๊ฐ์ Item์ด ๊ฐ์ง ์ด๋ฆ์ด๋ Icon ๊ฒฝ๋ก ๋ฑ์ ํ๋์ Structure๋ก ์ ์ํ๋ค. ์ด๋ฅผ ๋ฐํ์ผ๋ก Data Table Asset์ ๋ง๋ค์ด Excel ํ์ผ๊ณผ ์ฐ๋ํ๋ฉด ํ๋ก๊ทธ๋๋จธ ๊ฐ์
์์ด Data๋ง ๊ต์ฒด๋์ด ๋ฐธ๋ฐ์ค๋ฅผ ์ค์๊ฐ ์์ ํ ์ ์๋ค.
Save Game Data ์์ถ ๊ธฐ๋ก
ํ๋ ์ด์ด์ ์์น๋ Quest ์งํ๋ ๋ฑ ๋ค์ํ Type์ Data๋ฅผ Hard Disk์ ์ ์ฅํ ๋ ์ด๋ค. ๊ฐ๋ณ ๋ณ์ ๋์ ๊ฑฐ๋ํ FSaveDataStruct์ ๋ด์ Save Game Object์ ๋๊ธฐ๋ฉด ๋จ์ผ ํ์ผ๋ก ๋น ๋ฅด๊ณ ์์ ํ๊ฒ ์์ถ ์ ์ฅ๋๋ค.