Unity Weekly 152
Unity Officials
New OpenUSD packages now available
Official - New OpenUSD packages now available - Unity Forum
UnityEditorでのUSD(Universal Scene Description)シーンのインポートとエクスポート、C#コードからOpenUSD SDKにアクセスするためのパッケージがリリースされました。
現段階で実験的リリースで、Unity 2023.1以降で利用できます。サポートするOpenUSDのバージョンはv23.02です。
Articles
Hex Map 3.1.0
UnityでHex Mapを扱う連載で、前回のHex Map 3.0.0と比べてHexCell
クラスのリファクタリングと、単一の整数に7つの値を格納する方法を紹介しています。
Intro to Shader Graph in Unity 2022 (Part 3 - Transparency & Alpha)
Intro to Shader Graph in Unity 2022 (Part 3 - Transparency & Alpha)
Shader GraphのチュートリアルとしてShader Graphで半透明やアルファクリッピングを扱う方法や、ピクセル上では半透明を用いずに半透明を実現するテクニックとしてディザーリング(Dithering)を実現する方法をそれぞれ紹介しています。
ランタイムで読み込んだHumanoidモデルに読み込んだモーションを適用する
ランタイムで読み込んだHumanoidモデルに読み込んだモーションを適用する - Activ8 Tech Blog
Humanoidモデルに対して、ランタイムで読み込んだモーションを、Playable API経由で適用する方法について解説しています。
Unity Muse Textureを使う
Unity Museでテクスチャを生成する方法を紹介しています。
Advent Calendar 2023
Unity Searchを拡張する(QueryEngine編)
Unity Searchを拡張する(QueryEngine編) #Unity - Qiita
Unity Searchのクエリ式を拡張するための QueryEngine<T>
を用いた独自のフィルター処理を実装する方法について、実例を交えつつ紹介しています。
BurstLinq – Burst Compilerを用いたLINQ高速化ライブラリ
【Unity】BurstLinq – Burst Compilerを用いたLINQ高速化ライブラリ - Annulus Games
著者の開発するBurstLinqについて、このライブラリの概要や使い方、LINQとの互換性について紹介しています。
モバイルアプリ上で GPU 負荷を計測する
【Unity】モバイルアプリ上で GPU 負荷を計測する #iOS - Qiita
Unityで実装したモバイルアプリ(iOS/Android)のGPU負荷を計測するための方法として FrameTimingManager
を用いる方法や、iOS向けに「Metal Performance HUD」を用いる方法などをそれぞれ解説しています。
UnityでGizmos(ギズモ)を使ってみよう
【アドカレ】UnityでGizmos(ギズモ)を使ってみよう - YAMADA TAISHI’s diary
UnityのGizmosの各種メソッドの使用方法と実際にどのような描画が行われるのかについて紹介しています。
Unityのツールバーにボタンを追加する方法(Unity 2021.2以降)
Unityのツールバーにボタンを追加する方法(Unity 2021.2以降) #Unity - Qiita
UI Toolkitがエディターに本格的に導入された2021.2以降のエディター環境上で、ツールバーに任意のボタンを追加する方法を紹介しています。
In-Place Merge Sort を実装してみた
【C#】In-Place Merge Sort を実装してみた
In-Place Merge Sortの実装方法と、実行速度とメモリ消費量をLINQのOrderByやInsertion Sortと比較しています。
MagicTweenとPrimeTweenを触ってみた
【Unity】MagicTweenとPrimeTweenを触ってみた #Unity - Qiita
PrimeTweenとMagicTweenについて、それぞれのライブラリの特徴や基本的なアニメーションをどのように記述するのかについて紹介しています。
ShaderGraphのシステムを使ってShaderGeneraterを作る
ShaderGraphのシステムを使ってShaderGeneraterを作る #C# - Qiita
ShaderGraphのシステムに内蔵されている ShaderUtils.CreateShaderAsset
と ScriptedImporter
を用いて、独自のシェーダーファイルからシェーダーアセットを生成する方法を紹介しています。
Debug.Logはもう古い!? Unity公式のLoggingパッケージ「Unity Logging」の使い方まとめ
【Unity】Debug.Logはもう古い!? Unity公式のLoggingパッケージ「Unity Logging」の使い方まとめ - はなちるのマイノート
Unity公式のロギングパッケージ「Unity Logging」について、その概要から基本的な利用方法をまとめています。
Source Generatorでプロパティを自動実装してみた
Source Generatorでプロパティを自動実装してみた #C# - Qiita
記事の著者の開発するUnity向けのプロパティの自動実装をSourceGeneratorで行うAutoGeneratePropertyについて各種機能を紹介しています。
Unity の Hair System(デモ版)を試す
Unity の Hair System(デモ版)を試す #Unity - Qiita
Unity公式が提供するHair Systemについて、デモを開く際のUnityバージョンの注意点やHair Assetや各種パラメーターが挙動にどのような影響を与えるのか、について紹介しています。
TextMesh Proで絵文字を出す
TextMesh Proで絵文字を出す - KAYAC engineers' blog
標準の機能で表示できない絵文字も含め、TextMesh Proですべての絵文字を表示するための方法を紹介しています。
MonoBehaviourアンチが採用する技術
MonoBehaviourアンチが採用する技術 #C# - Qiita
UnityのMonoBehaviour
を極力利用しないアプリケーション実装のメリットやデメリットの紹介と、VContainerを用いた MonoBehaviour
を極力用いないエントリーポイントや状態遷移の実装を紹介しています。
サンプルプロジェクトは naninunenoy/AntiMonoBehaviour にて公開されています。
Unityのインスペクタに力技で適当なボタンをねじ込む
Unityのインスペクタに力技で適当なボタンをねじ込む #Unity - Qiita
EditorGUIUtility.PropertyCallbackScope
を用いて、特定のプロパティーのインスペクターに対して、外からボタンを差し込む方法を紹介しています。
gree/unity-webviewを用いてUnityでWebViewを実装する
【Unity】gree/unity-webviewを用いてUnityでWebViewを実装する | はなちるのマイノート
gree/unity-webviewを用いたUnityアプリ上でのWebView呼び出し実装について、インストールから基本的な使い方を紹介しています。
UIブラー対応事例紹介
画面全体のブラー(記事中では「BackgroundBlur」)やUIパーツ後ろのブラー(記事中では「グラスモーフィズム」)のUnityでの実装方法を紹介しています。
Shader の GUI を実装する
Shader の GUI を実装する #Unity - Qiita
ShaderGUI
と MaterialPropertyDrawer
を用いて、シェーダーのGUI(インスペクター上の表示)を調整する方法を紹介しています。
UniTaskの cancelImmediately フラグについて
UniTaskの cancelImmediately フラグについて #C# - Qiita
UniTask v2.5.0で追加されたcancelImmediately
についてその挙動とメリットやデメリットを紹介しています。
Unity Build Server のライセンスサーバーの Docker イメージを作る
Unity Build Server のライセンスサーバーの Docker イメージを作る | by BBQ All Stars | Dec, 2023 | MIXI DEVELOPERS
Unity Build Serverのライセンスサーバー用のDockerイメージの作成方法を解説しています。
uGUI の Image に BaseMeshEffect でグラデーションをかけてみる。
uGUI の Image に BaseMeshEffect でグラデーションをかけてみる。
uGUIのBaseMeshEffectを用いて、Imageにグラデーションを掛ける方法を解説しています。
よく使うディレクトリ構成を一発で生成するEditor拡張
【Unity】よく使うディレクトリ構成を一発で生成するEditor拡張 #Unity - Qiita
特定のディレクトリ構成を自動で生成するエディター拡張の実装を紹介しています。
ContentSizeFitterとLayoutGroupを利用してScrollViewの縦(横)スクロールを実装する
【Unity】ContentSizeFitterとLayoutGroupを利用してScrollViewの縦(横)スクロールを実装する - はなちるのマイノート
ContentSizeFitter
とVerticalLayoutGroup
を使用してスクロールビューを実現するためのそれぞれのコンポーネントの設定を紹介しています。
はじめての C# 大統一理論
クライアントとサーバー実装をC#で統一する方法について、主にクライアント・サーバー間でのコード共有するための csproj
の設定やDLLコピーによるC#コードの共有方法を紹介しています。
PLATEAUの都市モデルとGPSログの軌跡を重ねてみる
【Unity】PLATEAUの都市モデルとGPSログの軌跡を重ねてみる - ろうでんのブログ
PLATEAUの都市モデルとGoogleマップのタイムラインからエクスポートしたKMLファイル形式のGPSログをUnity上で重ねて表示する方法を紹介しています。
Meta Questでシステムのバーチャルキーボードを呼び出す方法
Meta Questでシステムのバーチャルキーボードを呼び出す方法 #C# - Qiita
Meta Quest向けの自作アプリケーションでシステムのバーチャルキーボードを利用するための設定方法や任意のタイミングでキーボードを呼び出す方法を紹介しています。
MethodImplOptions(インライン展開など)によるIL2CPPのふるまい
MethodImplOptions(インライン展開など)によるIL2CPPのふるまい #C# - Qiita
MethodImpl
属性によってIL2CPP上のコードがどのように変化するか、実際に生成されたコードを参照しつつ紹介しています。
Unity WebGL で WebSocket を使う
UnityのWebGLビルドでWebSocketを利用する際の問題点(System.Net.WebSockets
が利用できない点)と、解決方法としてJavaScriptでプラグインを書いて、それをC#から呼び出すこと解決する方法を紹介しています。
URP環境で3Dの描画解像度だけ下げる
URP環境で3Dの描画解像度だけ下げる(UIはそのまま) #C# - Qiita
UIの解像度はそのままに3Dの描画解像度のみを下げる方法について4つの方法とメリットや問題点をそれぞれ紹介しています。
UniTaskでUIイベントを直感的に扱ってみる ボタンのグループ化
ボタンの連打対応(そのボタンに紐づく処理が終わるまで、次の処理を実行しないようにする対応)やグループ化したボタンの排他制御(グループ内のボタンに紐づく処理が終わるまで、グループ内のボタンの処理を実行しないようにする対応)を行う方法について紹介しています。
MediaPipeのポーズトラッキングでゲームを作ろう
【Unity】MediaPipeのポーズトラッキングでゲームを作ろう #Unity - Qiita
MediaPipeを用いてUnityアプリでポーズトラッキングを実装する方法を紹介しています。
UnityのProfilerの簡単な使い方
https://qiita.com/zisup/items/84a5a63241d56d13473c
UnityのProfilerの簡単な使い方 #Unity - Qiita
UnityのProfilerの基本的な使い方として、処理負荷が高い箇所の特定方法や、Profilerを用いて実際にパフォーマンスを改善する方法を紹介しています。
UnityEditor とVisionPro Simulatorをリアルタイムに接続して動作チェックする方法
【VisionPro】UnityEditor とVisionPro Simulatorをリアルタイムに接続して動作チェックする方法【Unity】 #Unity - Qiita
UnityEditorとVisionOS Simulatorを接続してリアルタイムに動作確認を行うための各種設定方法を紹介しています。
Materialの正体
UnityにおけるMaterialの役割について、内部でどのような処理を行っているのかを説明しつつ紹介しています。
GameCIとGitHub Actionsを使ってクラウドビルド環境を構築する
【Unity】GameCIとGithubActionsを使ってクラウドビルド環境を構築する #Unity - Qiita
GameCIの提供するビルドイメージを用いてGitHub Actions上でUnityアプリのビルド環境を構築する方法を紹介しています。
VYamlでUnityYamlと和解せよ
UnityのYAMLフォーマットとの互換性があるVYamlの使い方を紹介しています。
ビルド完了後に自動でZipファイルを作成する方法
【Unity】ビルド完了後に自動でZipファイルを作成する方法 #Unity - Qiita
IPostprocessBuildWithReport
を用いて、ビルド完了後に成果物を含めたZipファイルを生成するエディター拡張の実装を紹介しています。
Unityではしごの昇り降りを実装する
Unityではしごの昇り降りを実装する #Unity - Qiita
はしごの上り下りをアニメーションベースに実装する方法を紹介しています。
ShaderGraphで画像をお手軽にスクロール
ShaderGraphで画像をお手軽にスクロール #Unity - Qiita
ShaderGraphを用いてUnityの画像をUVスクロールする方法を紹介しています。
SystemSampleRateとDSPBufferSizeの調整
【Unity】SystemSampleRateとDSPBufferSizeの調整 #Unity - Qiita
Unityのノイズとレイテンシーを改善するための SystemSampleRate
と DSPBufferSize
について、その概要から調整方法を紹介しています。
frameBufferFetchとCoLoRという謎のセマンティクス
frameBufferFetchとCoLoRという謎のセマンティクス #Unity - Qiita
RenderTarget側のピクセルカラーを取得するFrameBufferFetchとCoLoRについて紹介しています。
Unityを使った開発にC#以外のスクリプト言語を組み込んでみた。
Unityを使った開発にC#以外のスクリプト言語を組み込んでみた。 #Unity - Qiita
Miniscriptというスクリプト言語をUnityに組み込んだ際の
ざっくりコンポジション
ざっくりコンポジション【Unity/C#】 #C# - Qiita
コンポジションの継承と比べたメリットを実際のコードを交えつつ紹介しています。
最近のUnity Tweenライブラリの紹介と速度検証
最近のUnity Tweenライブラリの紹介と速度検証|Colorful Palette
Unityで利用できるTweenライブラリを実機上でのパフォーマンス比較を紹介しています。
Newtonsoft.Jsonの基本的な使い方
[Unity]Newtonsoft.Jsonの基本的な使い方 #Unity - Qiita
Unity上でNewtonsoft.Jsonを扱う方法について紹介しています。