自分用メモ

プログラミングとかのメモを書きたいです

Unity(五目並べ)に勝敗表示をつけた&WebGL出力エラーを直した

やったこと
実際の手順
  • 勝敗数の保持
    • static変数で黒と白の勝数を保持。static変数なのでどこからでも読める。(マナー的には良くないのかもしれないけど)
  • UIのTextへの表示
    • スクリプトにText型の変数を用意する。コード内ではそのText型の変数に対して変更をかける。
    • GameContoller(GameObject)のInspecterで、Text型の変数がシーン内のUI(Text)であるマッピングをしておく
  • WebGLでハマったこと
    • Winアプリとしては表示できるけど、WebGLでは実行時にエラーが出たので、下記で解決した。
      • 音声ファイルが日本語ファイル名だったので、英語に変更した。(関係なかったかも)
      • UpdateやStartの中でText更新(勝数)する際、UI(Text)の変数がnull出ない場合のみとした。
        • 実は実行時のConsoleにエラーが出ており、nullに対して設定していることがわかった。Text型の変数に実態がセットされる前に、StartやUpdateが走るのかもしれない。
覚えておくこと
  • WebGLはエラーが発生しがちだし、エラーメッセージから原因は見つけにくい。
  • エラーが発生するシーンを特定するのが良い。
  • Consoleにエラーが出ていないかを確認する
  • 日本語ファイル名も避けるのが無難
スクショ

f:id:ebinafactory:20211110212040p:plain
キャンバスのText

f:id:ebinafactory:20211110212123p:plain
GameControllerで変数にTextをアサイ

f:id:ebinafactory:20211110212743p:plain
エラー解消したソース

f:id:ebinafactory:20211110214557p:plain
WebGLでの実行時エラー

f:id:ebinafactory:20211110212217p:plain
UI用変数の定義、勝敗数用変数