"自作ゲーム"カテゴリーの記事一覧
-
という荒療治を思いついた。
と言うよりはという助言を頂いた。
いや、方法の1つとして
知ってはいたけどもと言うべきか。
結果から言うとカクカクとした動作は
直った。しかしとても重要な問題が。
FixedUpdate()に書いてしまうと固定
FPSになるということ。変更すれば
物理演算も加わるので目に見える
パフォーマンスの低下に繋がると
言う事。
Unityは物理演算を謳っている様に比較的
簡単に扱える仕組みになっている。この
物理演算の処理を軽くするためにUnityは
物理演算用の関数を用意している。
簡単なようで面倒な仕組み。
このままだとFPSの変更をオプションで
変えられない。どうやらスクリプトから
FixedUpdate()の呼ばれる頻度を変えられない
からだ。
う~ん参ったものだ。
PR -
皆さんご存知Getcomponent()関数って重いですよね。
で、それと同じくtransformも重いんだそうです。
じゃあ予めキャッシュしておけば良いのかといったら
私の場合なぜか改善しなかった。使っている間FPS
は著しく落ち始め、使うのを辞めるとまた元に戻る。
皆さんは一体どう対策をされているんだろうか? -
移動中にカクカクする場面に遭遇。
しかしながらコード的には問題がない様子。
調べてみるとUpdate()のタイミングで描画
しているらしい。しかしPhysic系の計算は
FixedUpdate()周期で計算されてるらしく
update()に書いても意味がない。
ので私はFixedUpdate()に書いているが、
そこで問題。FixedUpdate()はUpdate()
よりも呼ばれる回数が遅い。
と言うことは、Update()で描画している
にもかかわらず、FixedUpdateで物理の
計算をしている訳だから描画に嘘が生じる。
処理よりも描画される回数が多い。
これでは計算する前に描画されてしまう。
私が取った方法はEdit > ProjectSettings >
Time にある、
「FixedTimestep」をUpdateよりも早く
設定する事だった。ただし、これがユーザー
によってFPSを変えられる使用ならそれに
応じてスクリプトから変える必要が出てくる。
とりあえず、様子見である。