在一定数量的时间通过时给予用户奖励

时间:2016-01-19 04:01:06

标签: c# unity3d

在我的游戏中,用户每10分钟获得一次奖励。

即使他们离开应用程序/游戏,当他们回来时,如果过了10分钟,他们仍然会获得奖励。

所以,举个例子说:用户正在玩游戏并离开游戏5分钟,直到下一个奖励。

然后用户离开游戏并在一小时后返回。

我怎样才能看到自上次开放以来已经过了5分钟?

有谁知道怎么做?我正在使用团结。

2 个答案:

答案 0 :(得分:1)

您可能希望使用DateTime struct,尤其是DateTime.Now

  1. 当您的玩家离开游戏时保存日期时间:

    DateTime leaveDateTime = DateTime.Now;
    //Store leaveDateTime value
    
  2. 当您的播放器恢复时,

    //load leaveDateTime value
    TimeSpan diff = DateTime.Now - leaveDateTime;
    
  3. 然后使用您的TimeSpan值(检查TimeSpan.TotalMinutes)为您的播放器提供奖励。

    if (TimeSpan.TotalMinutes >= 5){
        //Give rewards for your players
    }
    

答案 1 :(得分:1)

Ian的答案还可以,但它有一个问题,如果用户更改系统(PC,手机......)的日期和时间,让我们说添加一年的日期,当他回到游戏时,他会得到zillion奖励不公平!我认为当前的dateTime必须从ntp server代替DateTime.Now

看一下这个答案:How to Query an NTP Server using C#?