0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WebGL1にて スマホだと変数が初期化されない

Last updated at Posted at 2023-01-14




先日、上記記事を参考にUnityroomでスマホ用ゲームを作って遊んでいた。
https://unityroom.com/games/trafficknightneo

2Dなアクションゲームで、クリアしたらスコアランキングが呼び出されて、ハイスコアのアップロードなどできるようにした。
ちょいちょい遊んでくれた人がいたようで、うれしく思っていたのだが、一位のスコアがおかしな値になっていた。
自分の想定では、スコアは1000~2000程度であるはずが、1位の人のスコアは9960ほどだった。

検証してみると、スマホで遊んでいる状態でゲームオーバーになってもスコアが初期化されず次のゲームに引き継がれてしまっていた。
困った理由としては、Unity上のエミュレートでは問題ない。PCブラウザで遊んでみても問題ない。しかしスマホだと変数が初期化されなかった。
public staticな変数に0を再代入してリセットとする処理だったのだが、なーぜか0がはいらねえ。

なんでじゃぁ!!!

まあスマホブラウザで動かすのは非推奨だからね。しょうがないね。

環境

Macbook pro 2020 Ventura
Unity 2020.3.18f1
Microsoft Visual Studio Community 2019 Version 16.11.15
スマホ・・・LG V60 ThinQ

対応

ゲームオーバーになったら別のシーンを挟む。
真っ黒背景にNowLoading・・・とだけUIテキストを置いて、そいつに「1秒後元のシーンに飛ぶ処理」をStart()に記述したスクリプトをアタッチ。あとは空っぽ。

とりあえずこれで変数が初期化されるようになった。
理由は知らん。動けばOK。センキューUnity。センキューUnityroom。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?