Unityのエディタ上で
File → Build Settings → Player Settings と行って
出てきたインスペクタの「Product Name」のところを変更しました。
その後、ビルドすると、ビルドしたものがエディタ上と違う動きになってしまいます。
周りの動きがやたら早くなり、自機だけが動きが遅い感じです。
多分、自機だけFixedUpdate() で他はUpdate() で動かしているので、Update()だけすごく動きが早くなっているようです。
疑問なのは、Product Nameを変更するまでは全く正常(エディタとビルド後で挙動に違いがない)だった点です。
Product Name のみを変更し、他は全く変えていないので、原因はこれしか考えられません。なぜ名前の変更でおかしくなるのでしょうか?
一度、Product Nameを変更してしまうと、もう、元の名前に戻しても直りません。
gitでProduct Name変更前の状態に戻せば直ります。
プロジェクトセッティングの Quality の 「V sync count」 はevery V Blank にしています。
これ自体の原因は分かりませんが、
> 多分、自機だけFixedUpdate() で他はUpdate() で動かしているので、Update()だけすごく動きが早くなっているようです。
という設計はまずいのではないかと思います。
Update()は一定時間ごとに呼ばれるわけではないので、Update()の回数が半分になろうが倍になろうが、動作が変わらないようにしなければなりません。
「物理や当たり判定に影響する箇所はFixedUpdate()を使う」「そうでない(例えばカメラなど)場合はTime.deltaTimeを掛ける」といういった具合になります。
もしそうしなかった場合、仮に今回の問題が解消されたとしても「他の環境で実行すると動作速度が変わってしまう」などの問題が発生することになります。
>Update()は一定時間ごとに呼ばれるわけではないので、Update()の回数が半分になろうが倍になろうが、動作が変わらないようにしなければなりません。
そのあたり気にはなっていたのですが、やはり問題ありますか。
参考にして修正していこうと思います。
ただ、Update関係をいじるとゲームの調整を根本からやり直さないといけなくなりそうで、ちょっととりいそぎ発表にむけて現在あるものをそのままビルドしたいのです。
あと、Product Nameの謎を放置したまま先に進むのがなんとなく気持ち悪く。
ただ、ありがとうございます。
以後、update関係を修正しようと思います。
回答1件
あなたの回答
tips
プレビュー