スキップしてメイン コンテンツに移動

【Unity】ログインボーナスを作ってみる

こんにちは。ピンビットです。
心理的なテクニックとして良さそうなログインボーナスをUnityで作ってみました。


まず、ざっくり書いたコードを貼ります。(このままでは使えないので自分で修正してね♡)


public int intervalHour = 15;//何時間ごとに貰えるか。

void Start () {
 if (PlayerPrefs.GetString ("lastGiftTime") == "") {
  PlayerPrefs.SetString ("lastGiftTime", System.DateTime.Now.ToBinary().ToString() );
 }

 System.DateTime now = System.DateTime.Now;
 System.DateTime lastGiftTime = System.DateTime.FromBinary (System.Convert.ToInt64 ( PlayerPrefs.GetString("lastGiftTime") ));


 if ( System.DateTime.Compare (now, lastGiftTime.AddHours (intervalHour)) > 0) {
  //ギフト貰えるを
  PlayerPrefs.SetString ("lastGiftTime", System.DateTime.Now.ToBinary().ToString() );

  //
  //貰えるときのコード
  //
 }

 if ( System.DateTime.Compare (now, lastGiftTime.AddHours (intervalHour)) < 0) {
  //ギフト貰えないなり
  System.TimeSpan remainDateTime = lastGiftTime.AddHours (intervalHour).Subtract (now);

  //
  //貰えないときのコード
  //
 }
}

せつめい

public int intervalHour;
は、何時間ごとにギフトが貰えるかです。


PlayerPrefs.GetString ("lastGiftTime")
これは最後にギフトをもらった時間を記録しています。

if (PlayerPrefs.GetString ("lastGiftTime") == "") {
 PlayerPrefs.SetString ("lastGiftTime", System.DateTime.Now.ToBinary().ToString() );
}
ここでは、最後にギフトをもらった時間が存在しないとき、すなわちPlayerPrefs.GetString("lastGiftTime")が空のときに現在の時間を最後にギフトを貰った時間としてセットしています。


System.DateTime.Compare (now, lastGiftTime.AddHours (intervalHour))
これは、現在の時間と、最後にギフトを貰った時間にintervalHourを加算した値を比較して、現在の時間のほうが進んでいるなら0より上を返し、違うなら0以下になり、同じなら0です。



さいごに

おれは使えてるので、質問があるならツイッターの@pin_pinbitまでオナシャス!
あと、変数名とか、用語間違いとか、説明が変とかアドバイスとかも嬉しいです。

このブログの人気の投稿

日本で未配信の「権力と紛争」の始め方

この記事では権力と紛争というゲームの始め方について解説します。 公式には、まだ日本では配信されていませんが、日本でも利用できる方法があるのでその方法を紹介します。

UnityのMobile Notification Packageの使い方

ランタイムAPIは、 AndroidNotificationCenter と iOSNotificationCenter の二つに分割されています(コードのサンプルのための適切なセクションを参照してください)。それぞれのプラットフォームの通知をスケジュールや管理することができます。 同じAPIを使用してAndroidとiOSの両方に通知を送信できるようにする、高レベルのラッパーを実装したサンプルプロジェクトが、 GitHubページにあります 。 サポートされている機能: 繰り返し可能なローカル通知または1回限りの通知をスケジュールします。 スケジュールされた通知またはすでに表示されている通知をキャンセル アンドロイド: Android Oreo以上で通知チャンネル(カテゴリ)を作成および変更します。 通知は、デバイスの再起動時に保存することができます カスタム通知アイコンを設定します。 iOS: Apple Push Notification Service(APN)を使ってリモート通知を受信します。 アプリの実行中に通知を受信した場合は、リモート通知の内容を変更します。 通知をスレッドにグループ化する(iOS 12以降でのみサポート) 必要条件 Android 4.1(API 16)/ iOS 10以上をサポートしています。 Unity 2018.3以降と互換性があります。   アンドロイド 通知チャンネルを作成する。 すべてのローカル通知は通知チャンネルに属します。通知チャンネルは、Oreo(8.0)以降のAndroidでのみサポートされています。 古いバージョンでパッケージを使用すると、チャンネルの振る舞いはエミュレートされます。 そのため、8.0より前の各通知に対して個別に設定された設定(priority( Importance )など)は、8.0より前のバージョンでもチャンネルに設定される必要があります。 var c = new AndroidNotificationChannel() { Id = "channel_id" , Name = "Default Channel" , Importance = Impor