新しいこと、枯れたこと問わずサムザップ大庭が興味を持ったものを調査、生活の効率を求める完全趣味の技術ブログ。基礎を大事にしています。上の記事内で書いたソースにローカルメソッドを使ったのですが、それがどういう動きをするのか、Actionと何が違うのかを本記事では調べます。パフォーマンスチューニングが必要なときしか不要なパフォーマンス検証結果を残しておきます。インスタンスをnewキーワードで生成する時、コンストラクタに引数を入れるパターンと入れ無いパターンがあります。エンジニア編」セッションを元にDOTS関連についてまとめます。CEDECCEDEC2019に聞き手として参加させて頂き「Unity2018/2019における最適化事情」セッションを元にパフォーマンス関連についてまとめます。既存機能アップデートに関するスライドですが、気になったものだけ取り上げて説明します。UnityRenderTextureのメモリ確保と解放タイミングを確認し、Release関数、Destroyどちらでも解放されることが分かりました。2種類どちらを使った方が良いかという考察をしています。XcodeRenderTextureを動的にスクリプトから生成して、Blitしてごにょにょするというフローの中で、どのタイミングでメモリが確保され、いつ解放されるのか確認したいと思います。メモリのプロファイルということでUnity製MemoryProfilerを使います。先日リリースされたUnity2018.3の新機能をなめている最中です。本記事ではDynamicResolutionについて検証します。ランタイム中にレンダーターゲットの解像度を変更することができる機能です。日曜日の夜って、日常の業務から開放されてUnityリファレンスをぼ〜っと眺めることがあると思うんですが、本記事はそういう時に起こる発見をメモするシリーズです。XcodeXcodeのバージョンと僕の所持するiPhone6SのOSバージョンの差異から、ここ最近手元PCでビルドしていませんでした。Sierraにし、Xcode10をインストールしました。最適化UnityEngine.Object.nameするだけで、ヒープ領域を毎回確保するようです。Unityのプロファイラを見てて気づきました。以下僕の環境における実績。最適化Unityで演出をスクリプトでタイミングの調整をしたいときにWaitForSecondsを使ったりすることがあります。刹那的に使うのは問題ないですが、以下のようにWaitForSecondsを高頻度で生成すると問題が出てきます。最近多い、ふと気になったシリーズです。最適化ふと気になったシリーズです。Unityを使っていると、ありがたいことに様々な便利関数がラップ、または拡張追加提供されています。最適化Unity2017.2までは、各ソースはディレクリ命名ルールから以下の4種類のAssemblyファイルが生成されていました。最適化UnityのAnimationClip再生方法には単純にPlayではなく、指定秒数の状態にするSampleAnimationメソッドがあります。AnimatorControllerは不要で、AnimationClipだけで動かせます。iOSネイティブプラグインのショートコードを書いてみます。今回はC++で書いたiOSのネイティブプラグインを想定します。最適化Unityは特殊なフォルダ名でコンパイルされるソースの順番と出来上がるDLLファイルが違います。まとめるとこんな感じです。Unity今回も小ネタです。時々以下のようなコードに出会います。ShaderUnity5.6からフレームデバッガに現在の描画と1つ前の描画が、ドローコールバッチングされない場合にヒントが表示されるようになりました。ちなみにドローコールバッチングとは、複数のメッシュまとめて、1回のドローコールで描画することを指します。最適化C#を使う上でLINQは非常に便利な機能なのは言うまでもありません。実際のプロダクトへ組み込む際の負荷は知っておくべきということで、改めて調べてみたという記事です。今回の検証対象は使用頻度が高いフィルタ系関数です。処理という文法でマクロを書くことが出来ます。マクロとはCやC++でよく出てくるインラインで展開されるアレです。UnityCG.cgincの中身を眺めているとよく出てきます。自分が書いたC#コードはdllにコンパイルされる前に変換処理が入ります。どのような形でDLLにされているのか気になると思いますので、MonoDevelopで確認してみます。SolutionからSolutionパネルを開きます。先日公開されたテラシュールブログさんのProfilerについての有用な記事。乗っかる形で私が知ってるProfilerについての小ネタを紹介します。ように、第一引数にプロパティ名をString型、第2引数に値を渡します。iOS実機で実行中、GPUにどんなアセットが乗っているかをチェックする時に便利なXcodeの機能、GPUフレームキャプチャというものがあります。とあるパフォーマンスを検証するために、CPU・GPU使用率と1フレームにかかる時間を計測するためにXcodeで実機プロファイリングした時に起きた問題です。スキンメッシュレンダラーはボーンアニメーションを使用する時に必要となるRendererです。その中にQualityという設定項目があり、各頂点が最大いくつのボーンから影響を受けるのかを設定できます。(@ohbashunsuke)株式会社サムザップでUnityエンジニアとしてスマホゲーム作っています。(1)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。