前提
NCMBを用いてタイムアタックのオンライン上のランキングを作りたいです。
https://blog.naichilab.com/entry/webgl-simple-ranking
↑こちらのサイトを参考にしてタイムアタックのオンライン上でのランキングを作っています。
発生している問題
記録がランキングに反映されません。
下の画像の今回のスコアという部分に記録を反映させたいです。
###教えてほしいこと
ランキングが反映できるようなソースコードの改善案を教えてほしいです。
該当のソースコード
タイムアタックの記録を表示するソースコード
c#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5using UnityEngine.SceneManagement; 6 7public class RaceSystem : MonoBehaviour 8{ 9 10 public Text timeText; 11 12 private int count; 13 private bool cangoal, goalnow = false, StartGoalLine = false; 14 private float seconds, minutes; 15 private float step_time; // 経過時間カウント用 16 17 void Update() 18 { 19 timer(); 20 } 21 22 private void OnTriggerEnter(Collider other) 23 { 24 if (other.gameObject.tag == "CheckPoint")//チェックポイントに触れた 25 { 26 Destroy(other.gameObject); 27 count += 1; 28 } 29 if (other.gameObject.tag == "Line")//スタートラインに触れた 30 { 31 if (count == 6)//チェックポイントをすべて通ったか 32 { 33 Debug.Log("GOAL!"); 34 StartGoalLine = false; 35 goalnow = true; 36 } 37 else 38 { 39 StartGoalLine = true; 40 } 41 } 42 } 43 44 void timer() 45 { 46 if (StartGoalLine) 47 { 48 seconds += Time.deltaTime; 49 } 50 51 if (seconds >= 60) 52 { 53 minutes++; 54 seconds -= 60; 55 } 56 57 if (!goalnow) 58 { 59 //ゴールしてない 60 timeText.text += Time.deltaTime; 61 timeText.text = "Time " + minutes.ToString("00") + " : " + seconds.ToString("00.00"); 62 } 63 else 64 { 65 //ゴールした 66 timeText.text += Time.deltaTime; 67 timeText.text = "記録 " + minutes.ToString("00") + " : " + seconds.ToString("00.00"); 68 // 経過時間をカウント 69 step_time += Time.deltaTime; 70 71 // 3秒後に画面遷移(scene2へ移動) 72 if (step_time >= 3.0f) 73 74 SceneManager.LoadScene("Goal"); 75 76 } 77 } 78}
ランキング画面を呼び出すためのコード
c#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using NCMB; 5 6public class RankingSystem : MonoBehaviour 7{ 8 public int step_time { get; internal set; } 9 10 // Use this for initialization 11 void Start() 12 { 13 // ↓ ここにサンプルコードを実装 ↓ 14 var millsec = 123456; 15 var timeScore = new System.TimeSpan(0, 0, 0, 0, millsec); 16 naichilab.RankingLoader.Instance.SendScoreAndShowRanking(timeScore); 17 } 18}
###自分で試したこと
// ↓ ここにサンプルコードを実装 ↓ var millsec = 123456; var timeScore = new System.TimeSpan(0, 0, 0, 0, millsec); naichilab.RankingLoader.Instance.SendScoreAndShowRanking(timeScore);
ここのコードの123456という部分が原因だと思っていろいろ変えて試してみました。
・Time ・timer ・Text ・Time.deltaTime ・timeText
・minutes.ToString("00") + " : " + seconds.ToString("00.00"); など
全て「引数5:は'float'から'int'に変換できません。」 や 「~という名前は存在しません。」などと出ます。
###補足情報(FW/ツールのバージョンなど)
Windowsのunityでバージョンは2018.4.29f1です。
回答よろしくお願いします。
あなたの回答
tips
プレビュー