Unity Weekly #012

ニューラルネットで何でもできちゃう!? Unity Barracudaで遊ぼう!

unity barracuda

ニューラルネットで何でもできちゃう!? Unity Barracudaで遊ぼう! - Unityステーション - YouTube

TypeCacheを使って指定したアトリビュートが付いている型を高速に取得する

【Unity】【エディタ】TypeCacheを使って指定したアトリビュートが付いている型を高速に取得する - LIGHT11

  • この記事ではUnityEditorが内部でキャッシュしている型情報を取得できるTypeCache APIについて紹介しています。
  • このAPIは「指定したアトリビュートがついているプロパティを取得する」、「指定したアトリビュートがついている型を取得する」などエディタ実装で必要そうなユースケースに特化した機能を提供します。
  • TypeCacheは上記の情報をキャッシュされた型情報を元に返却するため、リフレクションによる実装と比べると高速に取得することができます。

Unityで動かすOpenCVサンプル集 20選

20210422224515

Unityで動かすOpenCVサンプル集 20選 - おもちゃラボ

  • この記事ではUnityで利用できるOpenCVライブラリOpenCV plus Unityの紹介と、そのライブラリを活用したサンプルを20個紹介しています。
  • UnityのTexture2DをOpenCVのMat(OpenCVでは画像を扱う際にMat)の相互変換方法からグレースケールや2値化、ガウシアンブラーなどの基本的な画像変換、Sobelフィルターやハイパスフィルターなどの画像へのフィルターの適用方法、顔検出まで網羅的に紹介されています。

Hashing Space

hashing space tutorial image

Hashing Space

  • この記事はCatlike Codingさんの疑似ランダムノイズシリーズの第2弾です。
  • この記事では前回の記事でhashingにより算出したUV整数空間を任意のグリッドや形状に変換して利用できるようにします。(前回の記事についてはUnity Weekly #007で取り上げています。)
  • また上記の変換を手動でベクトル化することで、Brust CompilerによりジョブがSIMD命令を実行し、ハッシュ計算を4つ並列で計算するようにしています。

Unity Architecture Pattern: the Main loop

MainLoop

Unity Architecture Pattern: the Main loop – Bronson Zgeb

  • この記事ではUnityでメインループパターンを実装する方法と、そのメリットについて述べています。
  • 典型的なMonoBehaviourを複数個配置するパターンは、実行順序や初期化順の観点からシーンが複雑になるにつれてシステムの複雑さが増し、可読性の低下やメンテナンスコストの増加を招く傾向にあると説明しています。
  • GameManagerなどのシーンに単一のMonoBehaviourを配置し、そこからシーン上のオブジェクトを初期化・更新することで実行順を完全に制御下におくことができ、上記の問題を解決することができると述べています。また、UpdateおよびFixedUpdateも1つになることはパフォーマンス上メリットがあることにも触れられています。

Create a health bar that hovers over the player with UI Toolkit

Create a health bar that hovers over the player with UI Toolkit - GameDev Resources

  • この記事ではUI Toolkitを用いて3Dプレイヤー上にUIを配置する方法について紹介しています。
  • ワールドスペース内のプレイヤー位置からUI Toolkit上のUIスペースの変換は、RuntimePanelUtilを用いて行うことができます。この記事中ではCameraTransformWorldToPanelというメソッドを用いて、プレイヤー位置からUI位置を計算しています。

Facade

Facade

  • この記事ではFacadeパターンのUnityへの適用について説明しています。
  • インスタンスオブジェクトをstaticで定義してアクセスすると、将来そのインスタンスをサブクラスにしたり、そのインスタンスを別のインスタンスに置き換えることができなくなります。
  • Facadeパターンを用いることで、シングルトン化したいクラス自体はstaticで定義する必要がなくなります。これにより、クラスの拡張や置き換えが容易になります。また、using staticディレクティブを用いることでより簡素に記述することができます。