【Unity】テクスチャの数を減らしてメモリを節約する
オブジェクトの間でマテリアルやテクスチャを共用すると、使うテクスチャの数が減ってメモリの節約になるはずです。Unityのサンプルシーンでもマテリアルやテクスチャが共用されていることがあります。 マテリアルを共用する 例え… 続きを読む »
オブジェクトの間でマテリアルやテクスチャを共用すると、使うテクスチャの数が減ってメモリの節約になるはずです。Unityのサンプルシーンでもマテリアルやテクスチャが共用されていることがあります。 マテリアルを共用する 例え… 続きを読む »
弾の種類を切り替えるで作った銃弾のオブジェクトを配列に入れて、順番に再利用してみました。 まずマガジンのクラスに銃弾のオブジェクトの配列を作りました。そして、銃を撃つとき、配列に空きがあれば銃弾をインスタンス化し、空きが… 続きを読む »
シーンに2つの壁があります、手前の壁には穴が開いています。両方の壁は、インスペクタの右上のStaticのチェックが入っています。 Window > Rendering > Occlusion Culling … 続きを読む »
参照型の場合、変数の寿命ではなくガベージコレクタによってメモリが回収されます。このガベージコレクションのために一瞬動作が遅くなることがあります。 そこで、このメモリの確保のときに発生するGC Allocをプロファイラーで… 続きを読む »
ビルドしたゲームをプロファイラーに接続してパフォーマンスを計測してみました。 まずEdit > Project Settings… > Resolution and PresentationのRun In B… 続きを読む »
How to profile and optimize a game | Unite Now 2020を参考にプロファイラーを使ってパフォーマンスをチェックしてみました。 まず、パフォーマンスに影響を与えるのは、FPSと… 続きを読む »
ゲームビューのヘッダーの右の方にあるStatsをオンにすると、シーンで描画されるポリゴン数を含む統計情報が表示されます。これらは変動します。 また、FBXファイルの中にあるメッシュを選択すると、インスペクタにそのメッシュ… 続きを読む »
Blenderで3つのCubeを作って、名前の後ろに_LOD0~2を付けました。LOD0が最も頂点数が多くて、LOD2が最少です。 これをFBXファイルでエクスポートしてUnityでインポートします。 FBXファイルをシ… 続きを読む »
Edit -> Project Settings… -> Qualityで品質の設定ができます。 ここで、品質のレベルごとにテクスチャ解像度などを設定して、スクリプトを使ってレベルを切り替えること… 続きを読む »
建物などは頂点数の多いものと少ないもの、中間のものの三種類を作って、多い順にLODグループコンポーネントにLOD0、LOD1、LOD2の順に割り当てることで、遠くのものは詳細に表示しないようにしています。 それでも建物を… 続きを読む »
リアルタイムのディレクショナルライトによる影の解像度を距離によって変えてみました。HDRPではScene Settingsをヒエラルキーに新規作成してインスペクタで設定できます。 これは、一つの画像を斜めから見た時に、画… 続きを読む »
シーンの開始と共にメインのゲームのシーンを非同期で読み込んで、スタートボタンが押されたら遷移し、キャンセルが押されるとスタートメニューなどの別のシーンに遷移してみました。 using System.Collections… 続きを読む »
複数の敵の全てからレイを飛ばすとき、敵のリストを持つクラスのUpdate()で、1フレームにつき数体ずつ実行してみます。 [SerializeField] int cap = 3; // 一度に処理する敵の数 // –… 続きを読む »
Rigidbodyとジョイントを付けた机の引き出しや扉にLODグループコンポーネントを設定してみました。 頂点数の違う机を用意して、LODグループで近くでは詳細な机を、遠くでは二段階でシンプルな机を表示し、最後は机が表示… 続きを読む »
パフォーマンス向上のために、LODグループコンポーネントを使って、オブジェクトが遠くに見えるときは頂点数の少ないものに置き換えてみます。 まずBlenderで、頂点数の違う3つのスザンヌを作ってUnityに持ってきました… 続きを読む »
メモリ消費を抑えるために、アセットのインポート設定を最適化するといいそうです。 参考:https://docs.unity3d.com/ja/2018.3/Manual/BestPracticeUnderstanding… 続きを読む »