0 支持
61 閲覧

unity初心者です。
こちらのHP
https://blog.naichilab.com/entry/webgl-simple-ranking
を参照し、指示通りに設定し、単独での使用は問題ありませんでした。

また、複数ランキング使用の説明通り↓
//1つ目のランキングを呼び出す場合
naichilab.RankingLoader.Instance.SendScoreAndShowRanking (100, 0);
//2つ目のランキングを呼び出す場合
naichilab.RankingLoader.Instance.SendScoreAndShowRanking (100, 1);

こちらも各々の使用は問題ありませんでした。
困っているのは、この2つを1つのメソッド内で使用する時、上記の通り連続で呼び出すと2つ目しか表示されず、また、×を押しても閉じない状態になる事です。
consoleログにはエラーは出ていませんでした。×は押せない状態でもハイスコア時は問題なくデータ送信は行なえました。

やりたい形は
1つ目のランキングを表示、×を押せば2つ目のランキングが表示される。

呼び出し側だけの処理でなんとか出来るものなのか、unity-simple-rankingのスクリプトを変更しないといけないものでしょうか?
ご教授戴けると助かります。

閉鎖
初心者 (260 ポイント)
閉鎖 | 61 閲覧

回答 1

0 支持
ベストアンサー

こんにちは、そのアセットの作者です。
ご利用ありがとうございます。

結論から申しますと1つずつ呼び出すことを想定して作ってありますので、
そのように2つ連続で呼び出して表示は順番に行うということはできないです。


もし実現できたとしてもユーザー視点で考えてみると、「閉じたはずのランキングがまた表示される(実際は別々のランキングだとしても。)」という挙動は混乱を招くのであまり歓迎されないかもしれません。
可能でしたら「ランキングA」「ランキングB」のような独立したボタンを用意し、ユーザーが選択した1つのランキングのみ表示するように変更されるのがよいかと思いました。(両方見たい人は閉じた後にもう片方も押してくれるはず)


どうしても2連続で表示したい場合は以下の変更が必要ですが、ある程度のUnityとC#の知識が必要です。(unity-simple-rankingのスクリプトに手を加える必要があります)

  1. SendScoreAndShowRankingを非同期メソッドに変えて、呼び出し側にてランキングが閉じられたことを検知できるようにする。(またはコールバックメソッドの追加など)
  2. 上記非同期メソッドを使い、「ランキング1呼び出し -> 閉じられたらランキング2呼び出し」というような呼び出し方に書き換える。
達人回答者 (7.7k ポイント)
選択
0
作者様自らのご回答ありがとうございます。
言われてみれば連続表示は混乱の要因にもなりますので別途呼び出し方法を考えようと思います。
また、連続表示の方法もご提示戴きありがとうございます。
非同期化の方法も出来れば試してみたいと思います。ありがとうございました。
2021-02-08 質問・回答をMarkdownで入力できるようにしました。
2020-09-03 新たなスパム対策を導入しました。

160 質問

154 回答

160 コメント

193 ユーザー