【Unity】処理時間の計測

ランダムにピースを生成する所まではできました。 後はピース停止後に呼び出せばいいだけなのですが… 問題はピース毎に動きの早さが違う事です。 停止後、ポジションの更新を行う為、 移動中のピースのポジションは反映されません。 早いピースが生成を呼び出しても、移動中のピースがあれば、 ピース生成後に移動完了となってしまいます。 ピースの生成処理にウェイトを掛けるにしても、 どれくらいの秒数必要なのか考えないと行けません(_ _ ??)/◇ ワカラン・・・ そこで、今回は処理毎にどれくらいの時間が掛かるのか計測してみます。 まず、移動メソッドの内容を確認します。 ・フリック判定を検知 Moveをtrue にする ・FixedUpdateで Move=trueなら移動メソッドを呼び続ける ・移動先に到着 Moveをfalse にする こんな感じで成り立っています。 実はUpdateを使わず、FixedUpdateにしたのは、 違いがあるからなんです。 Update:毎フレーム呼び出し FixedUpdate:定期的に呼び出し Unityのフレームは60fpsだそうです。 しかし、フレームっていい加減ですよね~ 機種や性能に左右される… スマホなら30fpsに落ちるとかなんとか… なので、定期呼び出しのFixedUpdateで処理しました。 では、FixedUpdateの定期って、どれくらいでしょう。 調…

続きを読む

【Unity】2048空きマスをランダムに選ぶ

2019/11/15修正・追記 ここまで、手探りでコードを作ってきた為、 ブログに挙げたコードの修正が多くて申し訳ないです。 (_ _(--;(_ _(--; pekopeko 今日も前記事の修正を入れました。 出来たと思って、即ブログはやはり危険なようですね~(;^_^A アセアセ さて、本題に戻ります。 ピース移動は完成したので、いよいよピースの生成と行きたいのですが… 2048ではピースを二つ生成しないといけません。 空きマスからランダムに2カ所を選択する必要があります。 まず、空きマスを調べる所から始めます。 List<int> list = new List<int>(); for(int i = 0; i < 16; i++) { if (ポジションi==空きマス) { list.Add(i); } } こんな感じでList変数に取り出してみます。 以前、ピースの有無をFlag変数で保存しようと思っていましたが、 2次元配列なので、配列に変更します。 それに伴って修正箇所があるので、全て修正します。 GameManager private bool[] Flag = new boo…

続きを読む