2021-01-01から1年間の記事一覧

【Unity】【エディタ拡張】キーボードショートカットを実装する

Unityのエディタ拡張でキーボードショートカットを実装する方法をまとめました。 はじめに グローバルなショートカットを作成する EditorWindowのショートカットを作成する EditorWindowのショートカットとグローバルなショートカットのコンフリクト ショー…

【Unity】エディタ拡張で「Manager」的なものに使えるScriptableSingleton

Unityのエディタ拡張で「Manager」的なクラスを作るときに使えるScriptableSingletonという機能についてまとめます。 エディタ拡張で「Manager」的なクラス? 再生したりスクリプトをコンパイルしたりしても値を保持しておけるインスタンスを作る Unityを再起…

被写界深度ポストエフェクト実装の前提知識 - カメラレンズとボケの仕組み

被写界深度のポストエフェクトを実装する際の前提知識として、レンズとボケの仕組みについてまとめます。 はじめに シンプルなカメラ - ピンホールカメラ たくさんの光を取り込むためにレンズを使う レンズの副作用 - 錯乱円 被写界深度 参考

【Unity】【Addressable】Addressableの絡むテストを書く方法と方針の一例

UnityでAddressableの絡むテストを書く方法と方針の一例です。 やりたいこと 方針 テストを書く 関連

チャンクを直接読み込んでPNG画像のファイルフォーマットを理解する

PNG画像のデータ構造を簡単にまとめて、Unityを使ってチャンクの読み込みを行う方法についてまとめます。 PNGファイルの構成 チャンクを読み込む チャンクを書き換える 参考

【Unity】【Rider】RiderでT4テキストテンプレートを使う

Unity x RiderでT4テンプレートを使う方法をまとめました。 T4テンプレートの基本的な使い方はこちら Visual Studioとの相性の悪さ~RiderのT4テンプレートサポート C# Project Generationにttを加える テンプレートファイルを作る テキストを生成する 実行…

【Visual Studio】【.NET】T4テキストテンプレートで文字列(ソースコード)を自動生成する方法まとめ

T4テキストテンプレートの基本的な使い方をまとめました。 T4テキストテンプレート? シンタックスハイライトとコード補間を有効にする テンプレートからコードを生成する デザイン時テキストテンプレートと実行時テキストテンプレート デザイン時テンプレー…

【Unity】【シェーダ】プロシージャルな髪の異方性ハイライト(天使の輪)表現を作る方法

Unityのシェーダでプロシージャルに髪のハイライトを作る方法です。 やりたいこと binormalを使ってハイライトを作る jitterテクスチャを使う 結果 関連

【C#】正規表現の使い方まとめ

C#

C#の正規表現の使い方をまとめます。 パターンの記述方法についてはよくまとまっている記事がいくらでもあるのでそれ以外の情報についてまとめます。 基本的な使い方 IsMatch, Match, Matches 最短マッチを表す「?」 オプションまとめ 置換 分割 グループ OR…

【Unity】IMGUIの変換行列をいじってどんな解像度でも見やすいGUIを描画する

UnityのIMGUIの変換行列をいじってどんな解像度でも見やすいGUIを描画する方法です。 やりたいこと 正攻法と問題点 変換行列をいじって解決する

【Lua】Luaの基礎文法メモ

Lua

Luaの基礎文法超ざっくりメモ。自分用です。随時追加。 Luaの特徴 Luaの型 変数とスコープ テーブル 配列のように使う 連想配列のように使う クラスのように使う 制御構文 if文 while文 for文 repeat文 関数 コルーチン コメント エラー

【Unity】JsonUtilityとEditorJsonUtilityの違いをちゃんと理解する

UnityのJsonUtilityとEditorJsonUtilityの違いについてまとめました。 JsonUtility? UnityEngine.Objectをシリアライズできるか バックグランドスレッドで使えるかどうか インターフェースの違い 参考

【Unity】Unity2020.2から使えるC#8の機能まとめ

Unity2020.2から使えるC#8の機能をまとめました。 Unity2020.2からC#8の機能が使えるようになりました 使えない機能 readonly members Switchが式として使えるように パターンマッチングの強化 プロパティパターン タプルパターン 位置指定パターン(Positio…

【C#】独自の型にDeconstructメソッドで分解宣言・分解代入できるようにする

C#

C#で独自の型にDeconstructメソッドを追加して分解宣言・分解代入できるようにする方法です。 分解宣言・分解代入? タプル型の分解宣言 分解代入 独自の型にDeconstructメソッドで分解宣言・分解代入できるようにする 関連

【Unity】Addressable用ライフタイム管理ライブラリAddlerをリリースしました

Addressableのライフタイム管理ライブラリAddlerをリリースしました。 github.com 注意: 1.0.0をリリースしました。この記事は古いかも Addlerとは? インストール ライフタイムをバインドする プリロード プリローダの使い方 プリローダのライフタイムをバ…

【Unity】【Input System】Control Schemeでそのデバイスに適した入力の設定を使用する

UnityのInput SystemのControl Schemeを使ったそのデバイスに適した入力の設定を使用する方法をまとめました。 はじめに Control Scheme? 基本的にPlayer Inputと一緒に使う 使いどころは?全部Globalでいいのでは? 関連 参考

DIコンテナの非推奨な使い方・サービスロケーターパターン

DIコンテナの非推奨な使い方であるサービスロケーターパターンについてまとめました。 はじめに 良い例 良くない例 - サービスロケーターパターン Microsoft.Extensions.DependencyInjectionとしても非推奨 関連 参考

【Unity】MicrosoftによるDIの基礎実装Microsoft.Extensions.DependencyInjectionをUnityで使う

UnityにMicrosoft.Extensions.DependencyInjectionを導入する方法と、ServiceCollectionの基本的な使い方についてまとめました。

【Unity】DIコンテナVContainerの使い方まとめ

UnityでDIコンテナVContainerの使う方法についてまとめました。

【C#】【Unity】マルチスレッドによる並列処理を排他制御する方法まとめ

C#における並列処理の排他制御についてまとめました。 特にUnityに依存する内容ではないですが、Unityで動作確認を行っています。

【Unity】Addressableのアドレス設定を自動化するツール「EZAddresser」を公開しました

Addressableアセットシステムのアドレス設定を自動化するツール「EZAddresser」を公開しました。

【Unity】【エディタ拡張】AssetPostProcessorで他のアセットを削除する際の注意点

エディタ拡張でAssetPostProcessorで他のアセットを削除する際の注意点です。

【C#】implicit / explicitキーワードで型変換演算子を定義する

C#

C#でimplicit / explicitキーワードを使って型変換演算子を定義する方法についてまとめました。

【Unity】Addressableアセットシステムで同期的にリソースをロードする(追記あり)

UnityのAddressableアセットシステムで同期的にリソースをロードする方法をまとめました。

【C#】【Unity】Taskによる非同期処理をWait()したときにデッドロックする原因と対策

C#で非同期処理におけるスレッドの仕組みとWait()によるデッドロックについてまとめました。

【Unity】GPU上のRenderTextureのピクセル情報を非同期的に取得するAsyncGPUReadback

UnityでGPU上のRenderTextureのピクセル情報を非同期的に取得するAsyncGPUReadbackについてまとめました。

【Unity】【Addressable】Addressableアセットシステムにおけるコンテンツ更新ワークフローまとめ

UnityのAddressableアセットシステムにおけるコンテンツの更新フローまとめについてまとめました。

【Unity】【Addressable】ダウンロードコンテンツを更新するときにはメモリを綺麗にするかUnique Bundle IDを使う

UnityのAddressableアセットシステムでダウンロードコンテンツを更新するときに気を付けるべきこととUnique Bundle IDという機能についてまとめます。

【Unity】【UniTask】マルチスレッドとしてのTaskからUniTaskを眺める

Taskのマルチスレッドを実現するための機能という側面からUniTaskについて考えてみます。