コガネブログ

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

2020-02-01から1ヶ月間の記事一覧

【Unity】同じコンポーネントがアタッチされているゲームオブジェクトを検索するエディタ拡張

ソースコード using UnityEditor; public class Example { [MenuItem( "CONTEXT/Component/Find Component" )] private static void FindComponent( MenuCommand command ) { var type = command.context.GetType(); SceneModeUtility.SearchForType( type )…

【Unity】現在 Inspector に表示しているオブジェクトを Hierarchy や Project ビューで選択するエディタ拡張

ソースコード 使用例 Hierarchy や Project ビューに大量のオブジェクトやアセットが存在し、 現在 Inspector に表示しているオブジェクト/アセットがどこにあるのか すぐに知りたい時があったため作成しました

【Unity】Unity 起動時に「An error occurred while resolving packages: No 'git' executable was found.」と表示される場合

はじめに Unity プロジェクトを開く時に Unity Package Manager Error An error occurred while resolving packages: Project has invalid dependencies: xxxx: No 'git' executable was found. Please install Git on your system and restart Unity and Un…

【Android】'lib\monitor-location' が見つかりません。名前を正しく入力したかどうかを確認してから、やり直してください。

概要 'lib\monitor-location' が見つかりません。 名前を正しく入力したかどうかを確認してから、やり直してください。 【Android SDK】\tools\monitor.bat を起動したところ 上記のメッセージが表示された こちらの対応を行ったら正常に起動できるようにな…

【Android】A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Monitor

概要 A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Monitor, No Java virtual machine was found after searching the following locations : XXXX javaw.exe in your current PATH 【Android SDK】\…

【Unity】プレハブモードを開始した、終了した、保存した時に呼び出されるイベント

概要 using UnityEditor; using UnityEditor.Experimental.SceneManagement; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { PrefabStage.prefabSaved += OnPrefabSaved; PrefabStage.prefabSaving += OnPrefabSa…

【Unity】Unity 2019.3 新機能 - プレハブモードの dirty フラグが立った時に呼び出されるコールバック

概要 using UnityEditor; using UnityEditor.Experimental.SceneManagement; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { PrefabStage.prefabStageDirtied += OnPrefabStageDirtied; } private static void On…

【Unity】Unity 2019.3 新機能 - シーンの dirty フラグが立った時に呼び出されるコールバック

概要 using UnityEditor; using UnityEditor.SceneManagement; using UnityEngine; using UnityEngine.SceneManagement; [InitializeOnLoad] public static class Example { static Example() { EditorSceneManager.sceneDirtied += OnSceneDirtied; } priva…

【Unity】Unity 2019.3 新機能 - Android SDK や NDK のパスを参照できるプロパティが追加された

概要 using UnityEditor; using UnityEditor.Android; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { Debug.Log( AndroidExternalToolsSettings.ndkRootPath ); Debug.Log( AndroidExternalTo…

【Rider】string.Format のように扱う必要があること明示する StringFormatMethod 属性

概要 例えば上記のようなコードで StringFormatMethod 属性を適用すると 正しく書式が指定されていない場合に警告が表示されるようになります このように、StringFormatMethod 属性を適用することで string.Format のように扱う必要があること明示できます …

【Rider】戻り値が使用されていない場合に警告を表示できる Pure 属性

概要 例えば上記のようなコードで Pure 属性を適用すると その関数で受け取った値を使用していない場合に警告が表示されるようになります 参考サイト様

【Rider】null になる可能性があることを明示する CanBeNull 属性

概要 例えば上記のようなコードで CanBeNull 属性を適用すると その関数で受け取った値を null チェックしていない場合に 警告が表示されるようになります このように、CanBeNull 属性を適用することで その関数は null を返す可能性があることを明示できま…

【Rider】null ではないことを保証する NotNull 属性

概要 例えば上記のような関数に NotNull 属性を適用すると その関数で null を返そうとしている場合に警告が表示されるようになります このように、NotNull 属性を適用することで その関数は null を返さない、ということを保証できるようになります 他にも…

【Rider】Inlay Hints を非表示にする方法

概要 Inlay Hints を非表示にしたい場合は Rider メニューの「File > Settings...」から 「Editor > Parameter Name Hints」の「Show Inlay Hints」をオフにすることで 非表示にできます 参考サイト様

【Rider】Code Vision を無効化する方法

概要 Rider の Code Vision を無効化したい場合は Rider メニューの「File > Settings...」から 「Editor > Code Vision」の「Enable Code Vision」をオフにします

【Unity】uGUI で円形のレイアウトを使用できる「UnityRadialLayoutGroup」紹介

はじめに 「UnityRadialLayoutGroup」を Uniy プロジェクトに導入することで uGUI で円形のレイアウトを使用できるようになります 使用例 使い方 HorizontalLayoutGroup や VerticalLayoutGroup と同様に RadialLayoutGroup を使用することで円形のレイアウ…

【Unity】プロジェクトのアップデート後にすべてのアセットをシリアライズし直す方法

概要 Unity のプロジェクトをアップデートした場合、 基本的にはすべてのアセットは古いバージョンの形式で保存されたままになります そして、アセットを変更して保存すると、 そのアセットのみが新しいバージョンの形式で保存されます そのため、Unity プロ…

【Unity】Unity 2018 のプロジェクトを Unity 2019 にアップデートした際に RawImage の Animation の UV Rect が Missing になる

概要 Unity 2018 のプロジェクトを Unity 2019 にアップデートした際に RawImage の Animation の UV Rect が Missing になることがある Unity 2018 から Unity 2019.2.9f1 にアップデートすると発生する Unity 2019.2.10f1 にアップデートすると発生しない

【Unity】Unity プロジェクトの初回起動時に指定したプラットフォームに自動で切り替えるエディタ拡張

概要 例えば上記のスクリプトを Unity プロジェクトの Editor フォルダに追加することで Unity プロジェクトの初回起動時に Android プラットフォームに自動で切り替えることができます 参考サイト様 関連記事

【Unity】Easy Touch 5 の Welcome To Easy Touch ウィンドウが表示されないようにする方法

概要 Easy Touch 5 の Welcome To Easy Touch ウィンドウが表示されないようにするには EasyTouchWelcomeScreen.cs を削除する

【Unity】Unity 2019.3 新機能 - InitializeOnEnterPlayMode 属性を指定した関数は Unity 再生時に呼び出される

概要 using UnityEditor; using UnityEngine; public static class Example { [InitializeOnEnterPlayMode] private static void Hoge() { Debug.Log( "ピカチュウ" ); } } InitializeOnEnterPlayMode 属性を指定した関数は Unity 再生時に呼び出される

【雑記】CSV に記載したシングルクォートがエクセルでそのまま表示される場合

概要 Date,2020/01/01 01:23:45 上記のように日時が記載された CSV をエクセルで開く場合、 こんな感じの表示になるので Date,'2020/01/01 01:23:45 日時の先頭にシングルクォートを付けてみたところ シングルクォートがそのまま表示されてしまった Date,="2…

【Visual Studio】同じ依存アセンブリの異なるバージョン間で競合が見つかりました。プロジェクト ファイルで "AutoGenerateBindingRedirects" プロパティを true に設定してください

概要 同じ依存アセンブリの異なるバージョン間で競合が見つかりました。 プロジェクト ファイルで "AutoGenerateBindingRedirects" プロパティを true に設定してください。 詳細については、http://go.microsoft.com/fwlink/?LinkId=294190 を参照してくだ…

【Unity】簡単にオブジェクトプールを使用できる「Master Object Pooler 2」紹介

はじめに 「Master Object Pooler 2」を Unity プロジェクトに導入することで 簡単にオブジェクトプールを使用できるようになります 使い方 Project ビューの「Create > Master Object Pooler 2 > Object Pool」を選択して オブジェクトプールを管理するアセ…

【Unity】BuildTarget を BuildTargetGroup に変換する方法

概要 BuildPipeline.GetBuildTargetGroup を使用する もしくは下記のような拡張メソッドを自作する using UnityEditor; public static class BuildTargetExt { public static BuildTargetGroup ToBuildTargetGroup( this BuildTarget self ) { switch ( self…

【Unity】エディタで使用するツール時が変更された時に呼び出されるイベント

概要 エディタで使用するツール時が変更されると using UnityEditor; using UnityEditor.EditorTools; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { EditorTools.activeToolChanged += () => Debug.Log( "chang…

【Unity】プレハブのインスタンスに変更があるかどうかエディタ拡張で確認する方法

概要 using UnityEditor; using UnityEngine; public class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var prefabInstance = GameObject.Find( "Cube" ); var hasOverrides = PrefabUtility.HasPrefabInstanceAnyOverrides ( inst…

【Unity】Unity 2019.3 で UIElements を使用して Inspector の余白を減らす

使用例 Before After 使い方 上記のような「common.uss」という名前のファイルを Unity 2019.3 のプロジェクトの 「Assets/Editor/StyleSheets/Extensions」フォルダに追加することで Inspector の余白を減らすことができます (正常に反映されない場合は Un…

【Unity】string.Format や StringBuilder、TextMesh Pro の割り当てを削減できる「ZString」紹介

はじめに 「ZString」を Uniy プロジェクトに導入することで string.Format や StringBuilder、TextMesh Pro の割り当てを削減できるようになります string.Format 通常 using UnityEngine; public class Example : MonoBehaviour { private void Update() {…

【Unity】Build Settings や Project Settings でアクティブではないプラットフォームが選択されている時はビルドをキャンセルするエディタ拡張

ソースコード using UnityEditor; [InitializeOnLoad] public static class Example { private const string TITLE = "ビルド キャンセル"; private const string MESSAGE = @"Build Settings や Project Settings で {0} プラットフォームが選択されていた…