์ฟ ํค๋ฐ ํน๋ค์ด๋ ๊ธฐํ ๋ค๋ฅธ ๋ฐฉ์นํ ๊ฒ์๋ค์์ ๋ณดํต ์ ์ํ๋ ์ผ์ ์๊ฐ์ด ์ง๋๋ฉด ๋ณด์์ ๋ฐ์ ์ ์๋ ์์คํ
์ ๊ฐ๋ฐํ๊ณ ์ถ์๋ค.
๋ฌผ๋ก ์๋ฒ ์๊ฐ์ ๊ฐ์ ธ์ค๋๊ฒ ๋ฒ ์คํธ๊ฒ ์ง๋ง ์ผ๋จ์ ๋ด์ฅ๋ ์๊ฐ์ผ๋ก ๊ตฌํํด๋ณด๋ ค๊ณ ํ๋ค.
๋์ค์๋ ์ด๋ ์๋ฒ ์๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์๋๋ก ๋ณ๊ฒฝํ ๊ฒ์ด๋ค.
๋ง์ฝ ํธ๋ํฐ ์๊ฐ์ ๊ฐ์ ธ์ฌ ๊ฒฝ์ฐ ์ฌ๋๋ค์ด ์์๋ก ํธ๋ํฐ ์๊ฐ์ ๋ณ๊ฒฝํ์ฌ์ ์ด๋์ ์ทจํ๋ ํํ๊ฐ ๋ ๊ฒ์ด๋ค - ์๋ฅผ ๋ค์๋ฉด ๋ํ
๋ ๋์ฒ์ ๋ฌด ์์คํ
๊ฐ์ ๊ฒฝ์ฐ
๋์ถฉ ํํ ์์คํ
์ด ์๊ณ ํํ ๋ฒํผ์ ๋๋ฅด๋ฉด ๋ด๊ฐ ํํ์ ์์ํ ์ค์ ์๊ฐ์ด ์ ์ฅ๋๋๋ก ํ๋ ค๊ณ ํ๋ค.
public void SaveExplore(float exploreHour, float exploreMinutes)
{
PlayerPrefs.SetFloat("exploreHour", exploreHour);
PlayerPrefs.SetFloat("exoloreMinutes", exploreMinutes);
}
ํํ ๋ฒํผ์ด ํด๋ฆญ๋๋ฉด ์ด๋ฌํ ๋๋์ผ๋ก ์ ๋ํฐ์ Player Preference์ ์ ์ฅ์ ํด์ค๋ค.
PlayerPrefs๋ผ๊ณ ๋ถ๋ฅด๋๋ฐ ์์ธํ ๋ด์ฉ์ docs๋ฅผ ์ฐธ๊ณ ํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
https://docs.unity3d.com/ScriptReference/PlayerPrefs.html
Unity - Scripting API: PlayerPrefs
Unity stores `PlayerPrefs` data differently based on which operating system the application runs on. In the file paths given on this page, the company name and product name are the names you set in Unity’s Player Settings. Standalone Player storage locat
docs.unity3d.com
์ผ๋จ UNITY EDITOR์์์ ํ์ฌ ์๊ฐ์ ๋ถ๋ฌ์๋ณด๋ ค๊ณ ํ๋ค.
Debug.Log(DateTime.Now.ToString()); //๋
,์,์ผ,์,๋ถ,์ด ํ์
Debug.Log(DateTime.Now.Year.ToString()); //๋
ํ์
Debug.Log(DateTime.Now.Month.ToString()); //์ ํ์
Debug.Log(DateTime.Now.Day.ToString()); //์ผ ํ์
Debug.Log(DateTime.Now.Hour.ToString()); //์ ํ์
Debug.Log(DateTime.Now.Minute.ToString()); //๋ถ ํ์
DateTime ํด๋์ค๋ฅผ ์ด์ฉํด์ ๋ถ๋ฌ์ค๋๋ก ํ๊ณ ๋งคํ๋ ์๋ง๋ค ์ฐ๋ํ๋๊ฑด ์๋๊ฒ ๊ฐ์๋ฐ..
์ผ๋จ์ ๋งคํ๋ ์ ๋ง๋ค ์๊ฐ์ ๋ฐ์์์ ๊ณ์ฐ์ ํด๋ณด๋๋ก ํ๊ฒ ๋ค.
๋ง์ฝ ๋์ค์ ํ๋ ์ ์ ํ๊ฐ ์ผ์ด๋๋ค๋ฉด ๋ค์ ์์ ํด์ผํ ๊ฒ๊ฐ๋ค.
//ํํ ์์ ํจ์๋ฅผ call ํ ์ ํด๋น๋๋ ํจ์ call ํํ์ ๋ณด๋ฅผ ๋ฐํํจ
//exploreKindNum : ํํ ์ข
๋ฅ ๋ฒํธ
public exploreInfo exploreStart(int exploreKindNum)
{
explInfo = new exploreInfo(DateTime.Now.Hour, DateTime.Now.Minute, costExplore[exploreKindNum]);
return explInfo;
}
//ํํ ์์
public void exploreStart(int exploreKindNum)
{
explInfo = exploreM.exploreStart(exploreKindNum);
//ํํ ์์ ์๊ฐ ์ ์ฅ(์ถ ํ ๋
๋ ์์ผ๊น์ง ์ ์ฅํด์ค์ผํจ)
saveM.SaveExplore(explInfo.hour, explInfo.minute, explInfo.costMinute, 1);
//UI ๋งค๋์ ์๊ฒ ExploreGuage ์
๋ฐ์ดํธ ํ ์ ์๋๋ก ์ด๊ธฐ๊ฐ ๋ฃ์ด์ค
uiM.updateExploreGuage(explInfo);
}
๊ทธ๋ฆฌ๊ณ ๋ง์ฝ ํํ์ค์ด๋ผ๋ฉด UI๋ฅผ ํํ ์ ๋ณด ๊ธฐ๋ฐ์ผ๋ก ๊ณ์ ์
๋ฐ์ดํธ ํด์ค์ผํ๋ค.
//๋ง์ฝ ํํ์ด ์์๋์๋ค๋ฉด
if (explInfo.isExplore==1)
{
uiM.updateExploreGuage(explInfo);
}
public void updateExploreGuage(exploreInfo explInfo)
{
//๋จ์ ์๊ฐ ๊ณ์ฐ
//์ด ์๊ฐ(๋ถ)
float exploreTime = explInfo.hour * 60.0f + explInfo.minute;
float remainTime = (DateTime.Now.Hour - explInfo.hour) * 60.0f + (DateTime.Now.Minute - explInfo.minute);
explRemainTimeTxt.text = (explInfo.costMinute-remainTime).ToString()+"๋ถ";
imgExploreGuage.fillAmount = remainTime / explInfo.costMinute;
}
์ด๋ ๊ฒ ํ๋ฉด ์์คํ
๋ถ๋ง๋ค ํํ ๊ฒ์ด์ง๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ง๊ธ์ 5๋ถ ๊ธฐ์ค์ธ๋ฐ ์ง๊ธ์ ์ฝ๋๋ ๋ถ๋จ์๋ก ์ถ๋ ฅ๋๊ฒ ๋์ด์์ด์ ~์~๋ถ์ผ๋ก ์ถ๋ ฅ๋ ์ ์๋๋ก ๋ณ๊ฒฝํด์ผ๊ฒ ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ถ๋ง๋ค ์
๋ฐ์ดํธ ๋๋๊ฒ ๋ณด์ด๋๋ฐ ๋๋ฌด ์ง๋ฃจํด์ ๋ค๋ฅธ ์์คํ
๋ค ์ฒ๋ผ ์ด๋ง๋ค ๋ณด์ด๋ ๊ฒ์ผ๋ก ๋ณ๊ฒฝํด์ผ๊ฒ ๋ค.
๋ํ ์ง๊ธ์ ์๋์ฐ ์์คํ
์๊ฐ์ ๊ฐ์ ธ์ค๋๋ฐ ๋ง์ฝ ์๋๋ก์ด๋์ ๋ค์ด๊ฐ์ ์๊ฐ์ ์ฌ๋ ๊ฒฝ์ฐ ๋ค๋ฅด๊ฒ ์ฌ์ผํ ์๋ ์๊ธฐ ๋๋ฌธ์(์๋ฒ ์๊ฐ์ ๋ถ๋ฌ์ค๋๊ฒ ์ ์ผ ์ข์ ๋ฏ ํ๋ค) ์ข ๋ ์์ ์ด ํ์ํ ๊ฒ ๊ฐ๋ค.
๋ง์ฝ ๋ ์ถ๊ฐํ๊ฒ ๋๋ค๋ฉด ์ถ ํ ๋ธ๋ก๊ทธ ๊ธ์ ์์ ๋ณด์ํ๋ ค๊ณ ํ๋ค.