質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

0回答

1101閲覧

ランキングに記録が反映されません

mafumafu

総合スコア1

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2021/01/03 15:50

編集2021/01/10 03:08

前提

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です。

回答よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問