Advent Calendar 2021特集 その1 - Unity Weekly #043
Unity 2021におけるパッケージ関連の変更について
Unity 2021におけるパッケージ関連の変更について - Qiita
Unity 2021.1で行われた、パッケージのライフサイクルに関する変更について紹介しています。
async/awaitを理解する
(C#) async/await を理解する - ネコのために鐘は鳴る
C#で利用できるasync/awaitについて、C#における非同期処理の歴史に触れつつその動作原理について詳細に解説しています。
「非同期処理」と「バックグラウンド処理(別スレッドで処理を行う)」の違いから、Unityで頻繁に利用される非同期処理のPlayerLoop上での動作、awaitによるスレッド間移動や同期コンテキスト、asyncメソッドの戻り値についても触れています。
Unity 2021.2で強化されたインスペクターの数式機能や、複数要素選択時の線形配置機能について
Unity 2021.2で強化されたインスペクターの数式機能や、複数要素選択時の線形配置機能について - Qiita
2021.2から利用できるようになった、インスペクターでの数式機能や複数要素選択時の配置機能の強化について紹介しています。
インタラクティブな水面の表現をやってみる
[Unity]インタラクティブな水面の表現をやってみる - Qiita
Unity上でキャラクターの移動に合わせたインタラクティブな水面を、「映り込みや水面の凹凸、フルネル反射を用いた透け感」と「波動方程式を用いたインタラクティブな波の表現」で表現する方法を紹介しています。
Unity 2021.2からProject Windowでもコピー・カット・ペーストができるようになった
Unity 2021.2からProject Windowでもコピー・カット・ペーストができるようになった - Qiita
2021.2からProject Windowで複製だけでなくコピー・カット・ペーストが行えるようになった件について紹介しています。
C#向けJSONデシリアライザ Hurisake.JsonDeserializer を作った
C#向けJSONデシリアライザ Hurisake.JsonDeserializer を作った
Unityでも動作するC#向けデシリアライザのHurisake.JsonSeserializer についての紹介。string の生成を極力避けるためにbyte[]配列で処理を進める、Dictionaryインスタンスの生成を極力避ける、JSONのobject のkeyはハッシュで比較するなどの工夫を施すことで、MiniJSONと比較して約4倍ほど高速にデシリアライズできるとのことです。
Riderで開発するなら知っておきたい2つのデバッグ機能
Riderで開発するなら知っておきたい2つのデバッグ機能 - うどんてっくメモ
Riderで利用できる「Evaluate expressions」と「Immediate window」を用いて、デバッグ実行中にブレークポイントで止めて、そこで式を評価したり、変数の中身を変更できる。これらを組み合わせることでデバッグ効率を上げる方法について紹介しています。
Unityでのマルチプレイアプリ開発を便利にしてくれるEditor拡張-ParrelSyncを深ぼってみる
Unityでのマルチプレイアプリ開発を便利にしてくれるEditor拡張-ParrelSyncを深ぼってみる - Synamon’s Engineer blog
マルチゲーム開発の確認のためのエディタ拡張である「ParrelSync」について、その実装を読みながら、ParrelSyncでの「クローン側でのアセット変更の禁止方法」や「ファイル操作」についてどのようなAPIが利用されているのかについて調査しています。
NotNullAttributeで設定したオブジェクトをHierarchy上で確認できる機能拡張の作成
NotNullAttributeで設定したオブジェクトをHierarchy上で確認できる機能拡張の作成 - Qiita
自作した NotNullAttribute
を設定することで、インスペクター上でオブジェクトの参照が空である場合にエラーを通知する PropertyDrawer
の実装方法の紹介、同属性を EditorApplication.hierarchyWindowItemOnGUI
を用いてヒエラルキー上でもエラーの通知する方法について紹介しています。
TimeLineにMarkerを打ち込んでオブジェクトにパラメータを送信する
#unity TimeLineにMarkerを打ち込んでオブジェクトにパラメータを送信する - 土屋つかさの技術ブログは今か無しか
Timelineで利用できるMarkerを用いて、任意のタイミングで特定のオブジェクトに対して処理を実行する方法について、その実装方法とPlay/Editモードでの挙動の注意点や RetroActive
について解説しています。
UnityのProfilerの情報を取得する(UnityEditorInternal使用)
UnityのProfilerの情報を取得する(UnityEditorInternal使用) - Qiita
UnityEditorInternal内のProfilerDriver経由で、Profiler のヒエラルキービュー内の情報を取得するための方法を紹介しています。
周辺の定義がunity2018から変更されていて、列挙の定義位置の変更や、フレーム一覧の取得方法の変更が行われている点についても触れています。
Netcode for GameObjectsの機能紹介 NetworkTransformコンポーネントについて
Netcode for GameObjectsの機能紹介 NetworkTransformコンポーネントについて - Synamon’s Engineer blog
Netcode for GameObjectsにあるPlayerのTransformを同期するための NetworkTransform
コンポーネントについて、その設定方法や補完設定、 In Local Space
について紹介しています。
また、クライアント側からTransformの更新を行える ClientNetworkTransform
の紹介と利用方法、課題についてそれぞれ触れています。
UnityのGC AllocateとWaitForSeconds
UnityのGC AllocateとWaitForSeconds - Qiita
WaitForSeconds
や WaitForEndOfFrame
はクラスのインスタンスを生成するため、 yield new WaitForSeconds()
を行うごとにGCAllocが発生し、スパイクの原因となります。その問題のProfilerでの確認と、 WaitForSeconds
で生成されるインスタンスを再利用することで、この問題を回避する方法について紹介しています。
OpenCVforUnityを使った、カメラ映像から手の向き認識
OpenCVforUnityのインポートとサンプル実行 - Qiita
OpenCVforUnityを使った、カメラ映像から手の向き認識 - Qiita
OpenCV for Unity のインストール方法からサンプル実行方法、WebCam上の画像からオブジェクトの矩形を抽出し、矩形の形状ベースで手の向きを認識する方法について紹介しています。
SystemInfo.operatingSystemからバージョンを取得するときの注意(iPadOS15.1以降のiPad端末の挙動について)
SystemInfo.operatingSystemからバージョンを取得するときの注意(iPadOS15.1以降のiPad端末の挙動について) - Qiita
UnityでOSの情報を返すSystemInfo.operatingSystem
の紹介と、iPadOS 15.1以降で返す文字列が iPadOS *
になった件について解説しています。
Debug.Log()の全文をファイル出力し、で省略された内容をすぐに確認できるようにする
Debug.Log()の全文をファイル出力し、
Consoleログでは長い文字列がトランケートしてしまう問題についての紹介と、 Application.logMessageReceived
を用いて独自にログを保存することで、ログ全文を確認する方法について解説しています。
Unity TextMeshProにおけるダイナミックフォントの扱い
Unity TextMeshProにおけるダイナミックフォントの扱い
TextMeshProのダイナミックフォントについて、ビットマップフォントとの違いと、ダイナミックフォントの設定方法、ダイナミックフォントでフォントキャッシュとして利用しているFontTextureよりも多い文字を描画しようとしたときに発生する問題と、フォントキャッシュのクリア方法について解説しています。
Unity - 2021年に使ってみた16のオススメツール系アセットを紹介!
Unity - 2021年に使ってみた16のオススメツール系アセットを紹介! - Qiita
記事の著者の自作ゲームにて利用して便利だったアセットやツールを16個紹介しています。
スプライト(Transparent)にもDoF(被写界深度)を効かせたい
スプライト(Transparent)にもDoF(被写界深度)を効かせたい【Unity】【URP】 - Qiita
スプライト(Transparent)に対して被写体深度(DoF)が効かない問題について、その原因と対応のために深度値を書き込んだときに発生するZファイティングと、回避するためにスプライト専用のパスを用意してUniversal Render Pipeline(URP)のRendererFeatureを用いて用意したパスを呼び出す方法、URPのポストエフェクト用の深度テクスチャである _CameraDepthTexture
に深度を書き込むことでスプライトにDoFを効かせる方法を解説しています。
Unity Profilerの表示情報をReflectionで取得してみる
Unity Profilerの表示情報をReflectionで取得してみる - Qiita
UnityのProfilerの項目のうち、internalやprivateな領域をリフレクションで取得する方法について紹介。
[Unity] UniversalRenderPipelineについて調べた覚え書き
[Unity] UniversalRenderPipelineについて調べた覚え書き - Qiita
URPについて、その概要から特徴やクラスの設計、実際にRendererFeatureを触って描画をカスタマイズする方法について紹介しています。
Beta版のUnity Gaming Servicesを導入して軽く触ってみる
Beta版のUnity Gaming Servicesを導入して軽く触ってみる - Qiita
Unity Gaming Servicesの導入方法から、Gaming Servicesダッシュボード上での準備、Unity Authenticationの利用によるサインインとLobbyをもちいたロビー作成から入室方法について紹介しています。
Unityで神になれる最強おすすめアセット集
Unityで神になれる最強おすすめアセット集 - Qiita
UnityでおすすめなアセットをシステムからUI、モデルやエフェクトアセットなど幅広く紹介しています。
Unity uGUIで使える無料/OSSなカラーピッカー
Unity uGUIで使える無料/OSSなカラーピッカー - Qiita
UnityでOSSとして公開されているカラーピッカーを5つ紹介しています。
STYLY VRでフェードイン・フェードアウトをつくる
【Unity】STYLY VRでフェードイン・フェードアウトをつくる【STYLY】 - Qiita
フェードイン・アウトするQuadの実現方法について紹介しています。
Unityプロジェクトで使えるちょっと便利なGit aliasたち
Unityプロジェクトで使えるちょっと便利なGit aliasたち | 白黒羊
Unityで使えるGit aliasについて「.gitignore自動生成」と「Packages/manifest.jsonのソート」、「UnitTestの実行」、「Unity Cloud Buildと連携したPR作成」をそれぞれ紹介しています。
同じシーンの中で状態遷移を実装するベストプラクティス
同じシーンの中で状態遷移を実装するベストプラクティス - Qiita
同一シーンでのオブジェクトの状態管理について、管理方法からUniRxの購読停止・再購読、ポーズ実装についてのプラクティスを紹介しています。
Unityで自力描画。
Unityで利用できる Graphics.DrawMesh
を用いて、自前でメッシュを描画する方法について紹介しています。
Unity の Automated QA を使ってローカルの実機でスモークテストを実行してみた
Unity の Automated QA を使ってローカルの実機でスモークテストを実行してみた - Qiita
Automated QAの導入方法から操作の記録方法、記録した捜査を再生してテストを行う方法、コマンドライン経由でテストを実行する方法について解説しています。
【Unity】HaritoraX+OculusQuestで6点トラッキング
【Unity】HaritoraX+OculusQuestで6点トラッキング - Qiita
OculusQuestとSteamVR Plugin を用いて両手と頭、HaritoraX を用いて腰と両足の6点トラッキングを行うためのツールの導入やコンポーネントなどの各種設定について紹介しています。
おさえておきたいUI開発3つのポイント
【Unit】おさえておきたいUI開発3つのポイント - 渋谷ほととぎす通信
UI開発において重要になるポイントとして「直接遷移」と「手前の画面に戻る仕組み」、「各画面の拡張可能性」の3つのポイントを、具体例を交えながら紹介されています。
図解で分かる!アニメ調シェーダ基礎
【Unity】図解で分かる!アニメ調シェーダ基礎 - Qiita
アニメ調なシェーディングで重要なアウトラインの描画を法線方向へのモデル拡大によって実装する方法と、モデルの法線を修正することでこの問題に対応する方法について紹介しています。
OculusQuestのハンドトラッキングでライトの色を変えよう
OculusQuestのハンドトラッキングでライトの色を変えよう - Qiita
OculusQuestでハンドトラッキングを行なって、特定のジェスチャーを行ったら、それをUDP経由でRasberry Piへ送信し、受け取ったら赤外線でライトを操作する方法について解説しています。
Hinge Jointでなんとかしてみた話
VCIで利用できるunity標準のHinge Jointを利用して、銃が窓に当たった時の物理的な挙動を再現する方法について、ジョイントの設定方法について解説しています。