μ μλ νλ² μ§λ¬Ένμλλ° ν΄κ²°μ΄ μλΌμ....
ν΄λ¦¬μ»€κ²μμ λ§λ€κ³ μλλ°, κ°μ’λ₯Ό λ³΄κ³ κ²μμ λκ³ λμ€μ λ€μ μ μνλ©΄ λ§λ(λ)μ΄ λ μ¦κ°νκ² λ§λλ μ½λλ₯Ό μ§°μ΄.
using System;
using System.Text;
μ΄κ²λ€ μΆκ°νκ³ λμ μ½λλ₯Ό
//μκ°μ 체ν¬
DateTime GetLastPlayDate()
{
if(!PlayerPrefs.HasKey("Time"))
{
return DateTime.Now;
}
string timeBinaryInString = PlayerPrefs.GetString("Time");
long timeBinaryInLong = Convert.ToInt64(timeBinaryInString);
return DateTime.FromBinary(timeBinaryInLong);
}
void UpdateLastPlayDate()
{
PlayerPrefs.SetString("Time",DateTime.Now.ToBinary().ToString());
}
private void OnApplicationQuit()
{
UpdateLastPlayDate();
}
//κ²μμ λ§μ§λ§μΌλ‘ λμ§ μΌλ§λ λλμ§ κ³μ°
public int timeAfterLastPlay
{
get
{
DateTime currentTime = DateTime.Now;
DateTime lastPlayDate = GetLastPlayDate();
return (int)currentTime.Subtract(lastPlayDate).TotalSeconds;
}
}
void Start()
{
//κ²μμ λ ν μ μ₯λ λ§λλ κ³μ°νκ³ λνκΈ°
mana += GetManaPerSec() * timeAfterLastPlay;
InvokeRepeating("UpdateLastPlayDate", 0f, 5f);
}
μ΄λ κ² μ§°μ΄.
κ·Έλ¦¬κ³ μ¬κΈ° μλ manaλ GetManaPerSec κ°μ건 μ€λ₯ μλ¨. κ·Έλ¦¬κ³ λλ²κ·Έλ‘κ·Έλ‘ λμ보λκΉ OnApplicationQuitλ μλμ΄ μ λκ³ μμ΄.
κ·Όλ°λ κ²μ λκ³ νμ°Έ μ΄λ°κ° λ€μ΄κ°λ λ§λλ νλλ μ¬λΌμμ§κ° μλλΌ.... λ체 λκ° λ¬Έμ μΈκ±ΈκΉ? λ²μ μ΄ λ¬λΌμ λͺ
λ Ήμ΄κ° λ€λ₯Έκ±΄μ§ λ΄κ° λκ° μλν건μ§....
PlayerPref μ μ₯νλ μ½λλ 보μ΄λλ° λΆλ¬μ€λ μ½λλ μ보μ΄λλ°
μ½λ μ§€ λ λ€μ¬μ°κΈ° μνκ³ μ§¬?
μ½κΈ° λ무 λΆνΈνλΉ
μ 볡λΆνλκΉ μ΄λ κ² λλλΌ
λλ²κΉ νλκ² μ΅κ³ κΈ΄νλ°.. μ§κΈλ³΄λκΉ mana += GetManaPerSec() * timeAfterLastPlay; μμ λ§λ μ¬λ¦¬μμ? GetManaPerSec()μ΄λ timeAfterLastPlay λλ²κ·Έλ‘κ·Έ λμλ΄ νΉμ 0 * x μ΄λ°μμ΄λ©΄ 0μ΄λκΉ λ§λ μμ¬λΌκ° κ·Έκ±°μλλ©΄ μμμ μν΄λ΄
κ²λ§λλ μΌλ¨ 0μ΄ μλλ° λ€λ₯Έκ±Έ 체ν¬ν΄λ΄μΌκ² λ°... κ³ λ§μ
GetManaPerSec λ timeAfterLastPlay κ°λ λ‘κ·Έλ‘ μ°μ΄λ΄μΌ ν λ―