コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

2019-09-01から1ヶ月間の記事一覧

【Unity】オーバードローを可視化するポストエフェクトを実装できる「Shaders」紹介

はじめに 「Shaders」を Unity プロジェクトに導入することで オーバードローを可視化するポストエフェクトを実装できるようになります 使用例 適用前 適用後 使い方 シーンのカメラに「ReplacementOverDraw」をアタッチすることで使用できます

【Unity】奥行きで色味が変わるポストエフェクトを実装できる「Shaders」紹介

はじめに 「Shaders」を Unity プロジェクトに導入することで 奥行きで色味が変わるポストエフェクトを実装できるようになります 使用例 適用前 適用後 使い方 シーンのカメラに「PP Depth」をアタッチして 「Effect Material」に「Depth」マテリアルを設定…

【Unity】ネガフィルムのポストエフェクトを実装できる「Shaders」紹介

はじめに 「Shaders」を Unity プロジェクトに導入することで ネガフィルムのポストエフェクトを実装できるようになります 使用例 適用前 適用後 使い方 シーンのカメラに「PP」をアタッチして 「Effect Material」に「NegativeColors」マテリアルを設定する…

【Unity】ブラーのポストエフェクトを実装できる「Shaders」紹介

はじめに 「Shaders」を Unity プロジェクトに導入することで ブラーのポストエフェクトを実装できるようになります 使用例 適用前 適用後 使い方 シーンのカメラに「PP Blur」をアタッチして 「Blur Material」に「Blur」マテリアルを設定することで使用で…

【C#】OLE が呼び出される前に、現在のスレッドが Single Thread Apartment (STA) モードに設定されていなければなりません。Main 関数に STAThreadAttribute が設定されていることを確認してく ださい。

C#

概要 ハンドルされていない例外: System.Threading.ThreadStateException: OLE が呼び出される前に、現在のスレッドが Single Thread Apartment (STA) モードに設定されていなければなりません。 Main 関数に STAThreadAttribute が設定されていることを確認…

【Unity】【C#】LINQ を拡張するオープンソース紹介

C#

一覧 FastLinq - 高速な LINQ LinqFaster - 高速な LINQ LinqToExcel - Excel からデータを抽出できる ExtraLINQ - 使用できる拡張メソッドが増える Linq.Extras - 使用できる拡張メソッドが増える smooth.foundations - GC Alloc の発生が少ない LINQ Searc…

【C#】高速な列挙型の API を使用できる「FastEnum」紹介

はじめに 「FastEnum」をプロジェクトに追加することで 高速な列挙型の API を使用できるようになります インストール Visual Studio メニューの「ツール>NuGet パッケージ マネージャー> ソリューションの NuGet パッケージの管理」を選択します 「参照」タ…

【C#】高速な LINQ を使用できる「FastLinq」紹介

はじめに 「FastLinq」をプロジェクトに追加することで 高速な LINQ を使用できるようになります インストール Visual Studio メニューの「ツール>NuGet パッケージ マネージャー> ソリューションの NuGet パッケージの管理」を選択します 「参照」タブを選…

【Unity】影にディザリングを適用できる「UnityDitheredShadows」紹介

はじめに 「UnityDitheredShadows」を Unity プロジェクトに導入することで 影にディザリングを適用できるようになります 使用例 適用前 適用後 使い方 シーンに配置されているカメラに「DitheredShadows」をアタッチして 各種パラメータを設定します

【Unity】疑似ボリュームライトを使用できる「FakeVolumetricLight」紹介

はじめに https://github.com/avseoul/FakeVolumetricLight 「FakeVolumetricLight」を Unity プロジェクトに導入することで 疑似ボリュームライトを使用できるようになります 使用例 使い方 マテリアルの Shader を「Custom/FakeVolumetricLightShader」に…

【Unity】Inspector で表示されていないマテリアルのパラメータを調整できる「Unity Material Instanced Properties Editor」紹介

はじめに 「Unity Material Instanced Properties Editor」を Unity プロジェクトに導入することで Inspector で表示されていないマテリアルのパラメータを調整できるようになります 使い方 「MaterialInstancedProperties」をゲームオブジェクトにアタッチ…

【Unity】C# のコードをインタープリタ方式で実行できる「UniScript」紹介

はじめに 「UniScript」を Unity プロジェクトに導入することで C# のコードをインタープリタ方式で実行できるようになります 使用例1 using Slowsharp; using UnityEngine; public class Example : MonoBehaviour { private void Start() { // C# のコード…

【C#】配列やリストの分解代入を可能にする Deconstruct

ソースコード using System.Collections.Generic; using System.Linq; public static class IListExt { public static void Deconstruct<T> ( this IList<T> self, out T first, out IList<T> rest ) { first = self.Count > 0 ? self[ 0 ] : default; rest = self.Sk</t></t></t>…

【C#】ValueTuple を使用して配列やリストの foreach で簡単にインデックスを取得できる拡張メソッド

ソースコード using System; using System.Collections.Generic; public static class IEnumerableExt { public static IEnumerable<(int index, T value)> WithIndex<T> ( this IEnumerable<T> source ) { if ( source == null ) { throw new ArgumentNullExcepti</t></t>…

【Unity】非同期処理を簡単に記述できる「UniTask」の使い方をいくつか紹介

はじめに 「UniTask」を Unity プロジェクトに導入することで 非同期処理を簡単に記述できるようになります この記事では「UniTask」の使い方をいくつか紹介していきます 目次 はじめに 目次 検証環境 導入方法 使用例 Resources.Load を非同期で待つ シーン…

【Unity】Rider の無料版をインストールして Unity と連携する方法

はじめに Unity プロジェクトで Rider を使用することで、下記のようなことができるようになります Unity において問題のあるコード(30パターン以上)には下線で警告が表示される Unity においてパフォーマンスがあまり良くないコードを削除したり書き換え…

【Rider】Unity においてパフォーマンスがあまり良くないコードを削除したり書き換えたりする

はじめに Rider で Unity 連携を有効化すると、 Unity においてパフォーマンスがあまり良くないコードを 削除したり書き換えたりしてくれるようになります 使用例 Awake や Start、Update などは、定義しているだけで Unity から自動で呼び出されるため これ…

【Rider】Unity においてパフォーマンスがあまり良くないコードをマークする

はじめに Rider で Unity 連携を有効化すると、 Unity においてパフォーマンスがあまり良くないコードを ハイライト表示やマークして教えてくれるようになります ハイライト表示やマークの種類 例えば、Update、LateUpdate、FixedUpdate などの関数や コルー…

【Rider】Unity の MonoBehaviour を継承したクラスがどのシーンやプレハブで使用されているか検索できる

概要 MonoBehaviour を継承したクラスを右クリックして「Find Unity Usages」を押すと どのシーンやプレハブで使用されているかを Rider 上で確認できます Unity 上にも結果が表示されるため、Unity からも確認できます クラス名の上に表示されている「XXXX …

【Rider】Unity で関数をどのゲームオブジェクトのイベントに設定したか確認できる

概要 関数を右クリックして「Find Unity Usages」を押すと どのゲームオブジェクトのイベントに設定したかを Rider 上で確認できます Unity 上にも結果が表示されるため、Unity からも確認できます 関数名の上に表示されている「XXXX asset usages」を押すこ…

【Rider】Unity の Inspector で値を変更できる変数にどんな値が設定されているか確認できる

概要 public 変数や SerializeField が適用された変数の右に表示されている 「Changed in XXXX asset」を選択すると どのシーンやプレハブでどんな値が設定されているか確認できます

【Rider】コードを生成した時に NotImplementedException を付与しないようにする方法

概要 Rider ではデフォルトではコードを生成した時に throw new NotImplementedException (); が付与されますが、 Rider メニューの「File > Settings」から 「Editor > Members Generation」を選択して 「Generated member default body style」を「Return …

【Rider】Ctrl + Alt + Enter でコードをフォーマットする

概要 Rider では Ctrl + Alt + Enter でコードをフォーマットできます

【Rider】Ctrl + Shift + T でファイルやクラスを検索できる

概要 Rider では Ctrl + Shift + T でファイルやクラスを検索できます 参考サイト様

【Rider】改行コードを設定する方法

概要 Rider メニューの「File > Settings」を選択して 「Editor > Code Style」の「Line separator」で改行コードを設定できます

【Rider】クラスの定義に飛ぶと逆コンパイルされたソースコードを閲覧できる

概要 Rider では F12 を押したり Ctrl を押しながらクラスをクリックして定義に飛ぶと 逆コンパイルされたソースコードを閲覧できます そのため、Unity を使用している場合は、 UnityEngine などのアセンブリに含まれているクラスの中身が どのようになって…

【Rider】ファイル保存時に行末の空白文字を削除する方法

概要 Rider メニューの「File > Settings」を選択して 「Editor > General」から「Strip trailling spaces on Save」を 「All」か「Modified Lines」に変更して「Save」を押すことで ファイル保存時に行末の空白文字が削除されるようになります All すべての…

【Rider】インデントをタブにする方法

概要 Rider メニューの「File > Settings」を選択して 「Editor > Code Style C#」から「Tabs, Indents, Alignment」タブを選び、 「Indent Style」を「Tab」に変更して「Save」を押します

【Rider】スクリプトを保存した時に Unity のコンパイルが自動で走らないようにする方法

概要 Rider はデフォルトで、スクリプトを保存した時に Unity のコンパイルが自動で走るようになっています Rider メニューの「File > Settings」から 「Unity Engine」を選択して「Automatically refresh assets in Unity」をオフにして 保存することで、ス…

【Rider】Explorer の表示を Unity に合わせる方法

概要 Rider の Explorer はデフォルトでは上記のような表示ですが 赤枠の項目から「Unity」を選択すると Unity の Assets や Packages などのフォルダに合わせた表示になります