Sunday 1 March 2020

フラッシュ暗算②


フラッシュ暗算の2桁、3桁です。
フラッシュ暗算①のゲームをコピーするのに時間が掛かりましたが、コードも
ステージclass を5,6行書き加えるだけだったので2日で作れました。
フラッシュ暗算①で作った1~9の数字が付いたオブジェクトを入れた配列をそのまま
使って、ゲームシーン場に1の位のダイスの横に10の位と100の位のダイスを
instantiate(ダイスのクローンを生成)するだけだったので、さほど難しくなかった
のですが、ダイスクローンをシーンから消す時に暗算①のコードだと1の位のダイス
クローンしか消えない(当然ですね)のでダイスオブジェクトにTagを付けてそのTagの
付いたオブジェクトを全て消すようにコードを書き換えました。
ダイスの回転も同様にTagの付いたオブジェクトを見つけて回転するように書き換えて
あります。(そのままだと当然1の位のダイスだけが回転してしまいます)
実はこのダイスを回転させるコードが暗算①を作る時にフリーズの原因になりました。
UnityではダイスをDestory(ゲームオブジェクトを消す)時に消す時間を指定出来る
機能が付いています。
この機能のおかげで3問、6問、10問のフラッシュの時間を変えることが出来て
いるのです。
ここにダイスを回転するコードを書くと、シーン場にないオブジェくとを回転させようと
するのでフリーズ状態になってしまいます。
そこでUpdateメソッド(マイフレーム呼ばれて処理ができる)の中にFlag(ダイスが存在するか判断させる)を付けてダイスを回転させるようにしました。
この動画はマスタ∸ゲームから録画してあるので、スムーズに動いていますが、
Build settings(Unityをダウンロードしていないパソコンでゲームを行える)した方で
ゲームをすると、ダイスの生成と消滅の時間の流れとダイスが存在する判断の時間にずれが生じるのか、ダイスの動きにむらが出るときがあります。






No comments: