【Unity】Profilerで処理落ちの原因がメインスレッドなのかレンダースレッドなのかGPUなのか切り分ける手順

UnityのProfilerで処理落ちの原因がメインスレッドなのかレンダースレッドなのかGPUなのか切り分ける手順についてまとめます。

  • パフォーマンスチューニングの一番最初にやるべきこと
  • メインスレッド vs レンダースレッド・GPU
  • レンダースレッド vs GPU
  • 関連
  • 参考
続きを読む

【Unity】xLuaの基本的な使い方まとめ

xLuaの基本的な使い方についてまとめました。

  • xLua?
  • インストール
  • xLuaスクリプトを実行する
  • スクリプトの読み込み方法いろいろ
    • 文字列を読み込む
    • Resourcesフォルダからファイルを読み込む
    • ファイルの読み込み方法をカスタムする
    • 推奨される実行方法
  • C#からLuaにアクセスする
    • グローバルな値を取得する
    • グローバルなテーブルを取得する
    • グローバルな関数を取得する
      • 引数なし戻り値なしであればAction型で取得できる
      • 引数や戻り値がある場合はデリゲートにマッピング
      • 関数を返す関数の場合
      • 複数の戻り値に対応する
      • LuaFunctionにマッピングする
    • 注意点
      • パフォーマンス
      • xLuaへの依存
  • LuaからC#にアクセスする
    • C#インスタンスを生成
    • 型を変数に入れておく
    • static変数、staticメソッド
    • メンバにアクセス
    • ref引数の受け渡し
    • out引数の受け渡し
    • enum
    • Delegateを操作する
    • Eventを操作する
    • 複雑な型を直接引数に渡す
    • 型を取得
    • その他
  • アトリビュートについて
    • CSharpCallLua
    • LuaCallCSharp
    • ReflectionUse
    • staticメソッドで指定することもできる
    • DoNotGen
    • BlackList
    • リフレクションによるアクセスについて
  • 参考
続きを読む

【Unity】Lerpを用いたスムージングの問題点とMathf.SmoothDampによる解決策

UnityでLerpを用いてスムージングする際の問題点とMathf.SmoothDampによる解決策についてまとめました。

  • Lerpでスムージング
    • Lerpによるスムージングの問題点
  • SmoothDampを使う
    • パラメータを変える
    • Lerpとの比較
    • SmoothDamp系メソッド
  • SmoothDampって何者なのか?
  • 参考
続きを読む

【Unity】Unityでマルチスレッド処理する方法が多すぎてわけわかんないのでまとめた

Unityでマルチスレッド処理する方法が多すぎて混乱したのでざっくりまとめました。

  • C#におけるマルチスレッドの基本:Task
  • 簡単な同期的並列処理ならParallelで
  • Linqの処理をマルチスレッドで行うAsParallel
  • UniTaskでもマルチスレッド処理できる
  • UniRxでもマルチスレッド処理できる
  • 大量のデータを高速に処理するUnityのJobSystem
  • 関連
  • 参考
続きを読む

【Unity】プロジェクト内の色を一元管理&一括変更する「uPalette」を公開しました

Unityプロジェクト内の色を一元管理&一括変更する「uPalette」を公開しました。

github.com

  • 概要
    • 特徴
  • セットアップ
    • バージョン要件
    • インストール
    • ライセンス
  • 使い方
    • 色を作成する
    • 色を反映する
    • 色を適用しているGameObjectをハイライトする
    • 独自のコンポーネントに色を反映する
    • スクリプトから操作する
  • 技術的詳細
    • 変更した色を反映するタイミングについて
  • デモ
  • リポジトリ
続きを読む