๐ Unity์ DB ์ฐ๋ํ๊ธฐ
1. SQLite ๋ค์ด๋ก๋
๋ค์ ์ฌ์ดํธ์์ 3๋ฒ์งธ ์ค์ ์๋ ๊ฒ์ ๋ค์ด๋ฐ์ผ๋ฉด ๋๋ค.
https://sqlitebrowser.org/dl/
2. Unity ์์ฑ
Unity์์ ์ Project
๋ฅผ ์์ฑํ๋ค.
์๋ DDL์ ๋ค์ด ๋ฐ์ ํ Asset
ํด๋ ์์ Plugins
ํด๋๋ฅผ ๋ง๋ค์ด์ ๋ฃ๋๋ค.
์์ ์ ์ ๋ํฐ ํ๋ก์ ํธ Assets
ํด๋ ์์ StreamingAssets
ํด๋๋ฅผ ๋ง๋ ํ DB Browser for SQLite.exe
๋ฅผ ์คํ์์ผ์ MyDB
๋ก ์ ํ์ผ์ ๋ง๋ค์ด์ค๋ค.
3. ๊ธฐ๋ณธ์ฐฝ ๊ตฌ์ฑ
Hierarchy์ Canvas
๋ฐ์ผ๋ก Panel
์ ๋ง๋ ํ Input Field
2๊ฐ์ Button
์ ์ถ๊ฐํด์ค๋ค.
์ดํ ์ด๋ฆ์ ๋ฐ๊ฟ์ฃผ๊ณ , ID์ Password ๊ฐ์ฒด์ ์์ Placeholder
์์ text๋ฅผ ๊ฐ๊ฐ Id
์ Password
๋ก ๋ฐ๊ฟ์ค๋ค.
๋ create Empty
๋ก script
์ค๋ธ์ ํธ๋ฅผ ๋ง๋ค์ด์ค๋ค.
์ดํ Scripts
๋ผ๋ ํด๋๋ฅผ ๋ง๋ค์ด์ค ํ ์์ LogIn
Script๋ฅผ ์์ฑํด์ค๋ค.
4. DB ์ฝ๋ ์์ฑ
IEnumerator DBCreate()
{
string filepath = string.Empty;
filepath = Application.dataPath + "/MyDB.db";
if (!File.Exists(filepath))
{
File.Copy(Application.streamingAssetsPath + "/MyDB.db", filepath);
}
yield return new WaitForSeconds(0.1f);
print("DB ์์ฑ ์๋ฃ");
}
public string GetDBFilePath()
{
string str = string.Empty;
if (Application.platform == RuntimePlatform.Android)
{
str = "URI=file:" + Application.persistentDataPath + "/MyDB.db";
}
else
{
str = "URI=file:" + Application.streamingAssetsPath + "/MyDB.db";
}
return str;
}
public void DBConnectionCheck()
{
try
{
dbConnection = new SqliteConnection(GetDBFilePath());
dbConnection.Open();
if (dbConnection.State == ConnectionState.Open)
{
print("DB์ฐ๊ฒฐ ์ฑ๊ณต");
}
else
{
print("์ฐ๊ฒฐ์คํจ[ERROR]");
}
}
catch (Exception e)
{
print(e);
}
}
๊ฐ์ธ ๊ณต๋ถ ๊ธฐ๋ก์ฉ ๋ธ๋ก๊ทธ์
๋๋ค.
ํ๋ฆฌ๊ฑฐ๋ ์ค๋ฅ๊ฐ ์์ ๊ฒฝ์ฐ ์ ๋ณดํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.๐