Hệ thống Phần thưởng Hàng ngày (Daily Reward)
C# Code
using UnityEngine;
using System;
public class DailyRewardSystem : MonoBehaviour
{
private const string LastRewardTimeKey = "LastRewardTime";
public int rewardAmount = 100; // Số tiền thưởng
void Start()
{
CheckForDailyReward();
}
public void CheckForDailyReward()
{
DateTime lastRewardTime;
if (PlayerPrefs.HasKey(LastRewardTimeKey))
{
long temp = Convert.ToInt64(PlayerPrefs.GetString(LastRewardTimeKey));
lastRewardTime = DateTime.FromBinary(temp);
}
else
{
// Nếu chưa nhận thưởng lần nào, cho phép nhận ngay
GrantReward();
return;
}
// Kiểm tra xem đã qua 24 giờ chưa
TimeSpan timeDifference = DateTime.UtcNow - lastRewardTime;
if (timeDifference.TotalHours >= 24)
{
GrantReward();
}
else
{
Debug.Log($"Vui lòng quay lại sau {24 - timeDifference.TotalHours:F1} giờ để nhận thưởng.");
}
}
private void GrantReward()
{
Debug.Log($"Bạn nhận được {rewardAmount} vàng!");
// Thêm logic cộng tiền cho người chơi ở đây
// Ví dụ: PlayerWallet.Instance.AddGold(rewardAmount);
// Lưu lại thời gian nhận thưởng hiện tại
PlayerPrefs.SetString(LastRewardTimeKey, DateTime.UtcNow.ToBinary().ToString());
PlayerPrefs.Save();
}
}Một hệ thống để tặng quà cho người chơi khi họ đăng nhập mỗi ngày, sử dụng PlayerPrefs để theo dõi thời gian đăng nhập cuối cùng.