コガネブログ

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

2021-08-01から1ヶ月間の記事一覧

【Unity】ReSharper のキーワードハイライトが正常に動作していない場合

概要 Visual Studio を閉じた状態で Unity プロジェクトのフォルダに存在する .vs フォルダ すべての .csproj ファイル .sln ファイル を削除してから Unity から Visual Studio を開くと キーワードハイライトが正常に動作するようになる

【Unity】Unity 起動時に「Enter Safe Mode?」と表示される場合

はじめに The project you are opening contains compilation errors. Entering Safe Mode allows you to resolve these errors without waiting for the rest of your project to import. If you select Ignore (not recommended), your project will conti…

【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…

【C#】glob のパターンマッチングを正規表現で使用する例

C#

概要 var globPattern = "Assets/Textures/*.png"; var pattern = Regex .Escape( globPattern ) .Replace( @"\*", ".*" ) .Replace( @"\?", "." ) ; var isMatch = Regex.IsMatch ( input: "Assets/Textures/example.png", pattern: pattern ); Console.Wri…