Saving & Loading Data
๊ฐ์
DataStore๋ฅผ ํ์ฉํ๋ฉด ํ๋ ์ด์ด์ ๋ ๋ฒจ, ๊ฒฝํ์น, ๋ณด์ ๊ณจ๋ ๋ฑ ํต์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ํ๋ ์ด์ด์ ์งํ ์ํ๋ฅผ ์ง์์ ์ผ๋ก ์ ์งํ๋ฉฐ, RPG์ ๊ฐ์ ์ก์ฑ ์์๊ฐ ํฌํจ๋ ๊ฒ์์ ์ ์ํ ์ ์์ต๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ
์ง์๋๋ ๋ฐ์ดํฐ ํ์
number
O
string
O
bool
O
table
๊ณง ์ง์๋ ์์ ์ ๋๋ค.
object
์ง์๋์ง ์์ต๋๋ค.
ํจ์
์ง์๋์ง ์์ต๋๋ค.
๊ธฐ๋ณธ ๊ตฌ์กฐ
DataStoreService์ GetDataStore์ ์ฌ์ฉํ์ฌ ์ง์ ๋ ์ด๋ฆ์ DataStore ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ผ๋ฉฐ, DataStore ๊ฐ์ฒด์ ํค-๊ฐ(Key-Value) ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค.
Key (ํค): ๋ฐ์ดํฐ๋ฅผ ์๋ณํ๋ ๊ณ ์ ํ ์ด๋ฆ (์: PlayerGold)
Value (๊ฐ): ์ ์ฅํ ๋ฐ์ดํฐ (์: 1000)
GetDataStore(name)
์ด๋ฆ์ ํด๋นํ๋ Datastore ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์ค๊ธฐ
GetAsync(key)
Datastore ๊ฐ์ฒด์์ ํค์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๊ธฐ
SetAsync(key, value)
Datastore ๊ฐ์ฒด์์ ํค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ (๋ฎ์ด์ฐ๊ธฐ)
๋ฐ์ดํฐ ์คํ ์ด ๊ฐ์ ธ์ค๊ธฐ
์ ์ฅํ๊ธฐ
๋ถ๋ฌ์ค๊ธฐ
์ ์ฒด ์ฝ๋ ์์
๋ค์ ์ฝ๋๋ ํ๋ ์ด์ด๊ฐ ๊ฒ์์ ์ ์ฅํ ๋, ์๋ฒ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๊ณ , ์ ์ฅ๋ ๊ฐ์ด ์์ผ๋ฉด ์ด๊ธฐ๊ฐ์ ์ค์ ํ ํ, ํด๋น ๊ฐ์ ํ๋ ์ด์ด์ Attribute๋ก ํ ๋นํฉ๋๋ค.
์ดํ, ์ ์ฅ ํจ์๊ฐ ํธ์ถ๋๋ฉด, Attribute์ ์ค์ ๋ ํ์ฌ ๊ฐ์ ์๋ฒ์ ์ ์ฅํฉ๋๋ค.
LoadPlayerDataWhenEnter(player)
ํ๋ ์ด์ด๊ฐ ๊ฒ์์ ์ ์ํ๋ฉด ํธ์ถ
DataManager:LoadPlayerData(player)
์๋ฒ์์ ์ ์ฅ๋ ํ๋ ์ด์ด ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ด(GetAsync)
์ ์ฅ๋ ๊ฐ์ด ์์ผ๋ฉด ์ด๊ธฐ๊ฐ(InitValue)์ ์ค์ ํ ์๋ฒ์ ์ ์ฅ
๋ถ๋ฌ์จ ๊ฐ์ ํ๋ ์ด์ด์ Attribute๋ก ์ค์
DataManager:SavePlayerData(player)
ํ๋ ์ด์ด์ Attribute ๊ฐ์ ์ฝ๊ณ ์๋ฒ์ ์ ์ฅ(SetAsync)
PlayerRemoving ์ด๋ฒคํธ๋ฅผ ํตํด ํ๋ ์ด์ด๊ฐ ๊ฒ์์ ๋ ๋ ๋ ์๋ ์ ์ฅ ์ฒ๋ฆฌ
ํ์ฉ ์์
DataStore์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ๋ถ๋ฌ์ฌ ๋ Key ๊ฐ์ ์ด๋ป๊ฒ ์ค์ ํ๋๋์ ๋ฐ๋ผ ๊ฐ๋ณ ์ ์ ๋ฐ์ดํฐ ๋ฟ๋ง ์๋๋ผ ๊ฒ์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ ์๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, Key ๊ฐ์ Player.Name ๋์ RaceGameLeaderBoard์ ๊ฐ์ ํ์์ผ๋ก ์ค์ ํ๋ฉด, ํน์ ํ๋ ์ด์ด์ ๋ฐ์ดํฐ๊ฐ ์๋ ์๋ฒ์ ์ ์ฅ๋ ๋ญํน ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
์ด๋ฌํ ๋ฐฉ์์ผ๋ก, ๋ฆฌ๋๋ณด๋, ์ด๋ฒคํธ ์งํ ์ํ, ์๋ฒ ์ค์ ๋ฑ๊ณผ ๊ฐ์ ๊ฒ์ ์ ์ญ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค.
ํผ๋ธ๋ฆฌ์ ๋ฐ ํ
์คํธ ํ๊ฒฝ์ ๋์ ์ฐจ์ด
ํผ๋ธ๋ฆฌ์ ํ ๋ชจ๋ฐ์ผ ํ๊ฒฝ์์๋ ์ค์ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋ถ๋ฌ์ต๋๋ค. ๋ฐ๋ฉด, ์คํ๋์ค ํ ์คํธ ํ๊ฒฝ์์๋ ๋ฐ์ดํฐ๋ฅผ ๋ก์ปฌ์ ์์ ์ ์ฅํ๋ฉฐ, ์คํ๋์ค ์ข ๋ฃ ์ ํด๋น ๋ฐ์ดํฐ๋ ์๋์ผ๋ก ์ญ์ ๋ฉ๋๋ค.
์ฃผ์ ์ฌํญ
๋ฐ์ดํฐ ๋ก๋ฉ์ด ์๋ฃ๋๊ธฐ ์ ์ ํ๋ ์ด์ด๊ฐ ๊ฒ์์ ์งํํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก, ๋ก๋ฉ์ด ์๋ฃ๋ ๋๊น์ง ๋ก๋ฉ UI๋ฅผ ํ์ํ์ธ์.
์ ์ฅํ ๋ฐ์ดํฐ๋ ๊ฐ๊ธ์ ์๊ณ ๋จ์ํ ๊ตฌ์กฐ๋ก ์ค๊ณํ์ธ์.
๊ณผ๋ํ ์์ฒญ์ ๋ฐ์ดํฐ ์ ์ฅ ์คํจ๋ฅผ ์ ๋ฐํ ์ ์์ผ๋ฏ๋ก, ์งง์ ์๊ฐ ๋ด ๋ฐ๋ณต ์ ์ฅ์ ๋ฐฉ์งํ์ธ์.
๊ฐ์์ค๋ฌ์ด ๊ฒ์ ์ข ๋ฃ๋ ์๋ฒ ์ถฉ๋๋ก ์ธํด ๋ฐ์ดํฐ๊ฐ ์์ค๋ ์ ์์ผ๋ฏ๋ก ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋๋ก ๊ตฌํํ์ธ์.
์ ์ฅ ๋๋ ๋ถ๋ฌ์ค๊ธฐ๊ฐ ์คํจํ ์ ์์ผ๋ฏ๋ก, pcall์ ์ฌ์ฉํ์ฌ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๊ณ ์ฌ์๋ ๋ก์ง์ ์ถ๊ฐํ์ธ์.
Last updated