コガネブログ

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

【Unity】Visual Studio で MonoBehaviour などの Unity の機能を認識しない場合

はじめに Visual Studio で MonoBehaviour などの Unity の機能を認識せず ソリューションエクスプローラーでも 「このプロジェクトは移行する必要があります」 と表示されて正しく認識されない場合は Visual Studio に Unity 向けの機能がインストールされ…

【Unity】Visual Studio で MonoBehaviour などの Unity の機能が認識されなくなった場合

はじめに Visual Studio で MonoBehaviour などの Unity の機能が認識されなくなった場合 Visual Studio のプロジェクトファイルやソリューションファイルが 破損している可能性があります 対処方法 Visual Studio を終了した状態で Unity プロジェクトのフ…

【C#】値をスワップする拡張メソッドを自作する

C#

ソースコード public static class GenericExtensions { public static void Swap<T>( ref this T a, ref T b ) where T : struct { var tmp = a; a = b; b = tmp; } } 使用例 using UnityEngine; public class Example : MonoBehaviour { private void Awake()</t>…

【Unity】UniRx の MessageBroker で Pub / Sub を実装する方法

通知用のクラスや構造体を用意 // スコアが加算されたことを通知するクラス public class ScoreAddSignal { public int Score { get; set; } } イベント発行側の実装 public class Example : MonoBehaviour { private void Update() { // スペースキーが押さ…

【Unity】Uncaught undefined - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.

概要 Uncaught undefined - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch. WebGL ビルドしたゲームで例外が発生した時に ブラウザの Console…

【Unity】Unity プロジェクトに存在する Assembly Definitions を検索する方法

概要 Project ウィンドウの検索欄に t:AssemblyDefinitionAsset と入力する

【Unity】Hierarchy にツリー構造の線を表示するエディタ拡張

ソースコード 使用例

【C#】値をスワップする関数を自作する

C#

ソースコード public static class GenericUtils { public static void Swap<T>( ref T a, ref T b ) { var tmp = a; a = b; b = tmp; } } 使用例 using UnityEngine; public class Example : MonoBehaviour { private void Awake() { int a = 1; int b = 2; Ge</t>…

【C#】タプルで値をスワップする方法

C#

概要 using UnityEngine; public class Example : MonoBehaviour { private void Awake() { int a = 1; int b = 2; ( a, b ) = ( b, a ); } }

【Unity】Unity 再生時に Variables Saver というゲームオブジェクトが生成されてしまう現象の対処方法

概要 Unity 再生時に Variables Saver というゲームオブジェクトが生成されてしまう場合、 Unity メニューの「Window > Package Manager」を選択して 赤枠の箇所を「In Project」に変更して 「Visual Scripting」を選択して「Remove」を押して 確認ダイアロ…

【Unity】Unity 初心者向けの技術書「Unityで作る2Dアクションゲーム Unity 2021対応版 全69章」を Zenn で販売開始しました(8/15 まで半額の500円で販売中!)

はじめに Unity 初心者向けの技術書「Unityで作る2Dアクションゲーム Unity 2021対応版 全69章」を Zenn で販売開始しました 商品ページ:https://zenn.dev/baba_s/books/unity-2d-action-game-2021 完成プロジェクト:https://github.com/baba-s/unity-2d-a…

【Mac】シェルスクリプトでファイルサーバにファイルをコピーする方法

概要 cp -v XXXX /Volumes/YYYY マウントしているファイルサーバにファイルをコピーしたい場合は /Volumes/YYYY でコピー先のパスを指定すれば良い Finder でコピー先にしたいファイルサーバのフォルダを右クリックして 「"YYYY"のパス名をコピー」を選択す…

【Unity】LineRender と同じメッシュを持つゲームオブジェクトを作成するサンプル

ソースコード public static GameObject Clone( LineRenderer lineRenderer ) { var clone = new GameObject(); var cloneTransform = clone.transform; var lineRendererTransform = lineRenderer.transform; cloneTransform.position = lineRendererTransf…

【Unity】LineRender の頂点のワールド座標を取得する方法

ソースコード public static IEnumerable<Vector3> GetPositionInWorldSpace( LineRenderer lineRenderer ) { var transform = lineRenderer.transform; for ( var i = 0; i < lineRenderer.positionCount; i++ ) { yield return transform.TransformPoint( lineRende</vector3>…

【C#】glob によるパターンマッチングを行う方法

はじめに GitHub で公開されている上記のライブラリを使用すると C# で glob によるパターンマッチングができるようになる 使用例 static クラスを使用する方法 var isMatch = Glob.IsMatch ( input: "Assets/Textures/example.png", pattern: "Assets/Textu…