コガネブログ

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

【Unity】EditorUtility.ClearProgressBar の呼び出し漏れを防ぐためのクラス

ソースコード 使用例 using System.Collections; using Unity.EditorCoroutines.Editor; using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { EditorCoroutineUtility.StartCoro…

【Unity】画面をランダムにクリックして UI をテストできるスクリプト

ソースコード 使い方 ゲームオブジェクトに上記のスクリプトをアタッチすると 毎フレーム画面をランダムにクリックします DontDestroyOnLoad が適用されたゲームオブジェクトにアタッチすると そのゲームオブジェクトが破棄されるまで画面をランダムにクリッ…

【Rider】「Save > This computer」で保存した設定ファイル(GlobalSettingsStorage.DotSettings)の保存場所

概要 C:\Users\【ユーザー名】\.RiderXXXX.X\config\resharper-host 参考サイト様

【ReSharper】「Save To > This computer」で保存した設定ファイル(GlobalSettingsStorage.DotSettings)の保存場所

概要 C:\Users\【ユーザー名】\AppData\Roaming\JetBrains\Shared\vAny 参考サイト様

【ReSharper】Unity で Color 構造体を記述する時に System.Drawing.Color のコード補完を非表示にする方法

概要 Unity で Color 構造体を記述する時にコード補完に System.Drawing.Color が表示されることが煩わしい場合は Visual Studio メニューの「RESHARPER > Options...」から 「Code Inspection > Settings > Auto Import」を選択し、リストに 「System.Drawi…

【ReSharper】Unity で Debug クラスを記述する時に System.Diagnostics.Debug のコード補完を非表示にする方法

概要 Unity で Debug クラスを記述する時にコード補完に System.Diagnostics.Debug が表示されることが煩わしい場合は Visual Studio メニューの「RESHARPER > Options...」から 「Code Inspection > Settings > Auto Import」を選択し、リストに 「System.D…

【ReSharper】Unity で Image クラスを記述する時に System.Net.Mime.MediaTypeNames.Image と UnityEngine.UIElements.Image のコード補完を非表示にする方法

概要 Unity で Image クラスを記述する時にコード補完に System.Net.Mime.MediaTypeNames.Image UnityEngine.UIElements.Image が表示されることが煩わしい場合は Visual Studio メニューの「RESHARPER > Options...」から 「Code Inspection > Settings > A…

【Unity】Unity 2019.3 新機能 - 描画間隔を設定できる「OnDemandRendering.renderFrameInterval」

概要 例えば、このように描画されるシーンで OnDemandRendering.renderFrameInterval = 30; 上記のコードを記述すると 30 フレームごとにゲーム画面の描画が更新されるようになります これまでも Application.targetFrameRate を使用すれば同じようなことが…

【Unity】Image の Use Sprite Mesh をデフォルトでオンにする方法

概要 Image の Use Sprite Mesh をオンにした状態で 赤枠のアイコンを押して Select Preset ウィンドウで「Save current to...」ボタンを押して ダイアログが表示されたらプリセットを保存するフォルダと ファイル名を設定して「保存」を押して Project ビュ…

【Unity】Canvas Scaler のデフォルト値をプリセットで統一する

概要 Canvas Scaler の UI Scale Mode や Reference Resolution を設定した状態で 赤枠のアイコンを押して Select Preset ウィンドウで「Save current to...」ボタンを押して ダイアログが表示されたらプリセットを保存するフォルダと ファイル名を設定して…

【Unity】Canvas Renderer の Cull Transparent Mesh をデフォルトでオンにする方法

概要 Canvas Renderer の赤枠のアイコンを押して Select Preset ウィンドウで「Save current to...」ボタンを押して ダイアログが表示されたらプリセットを保存するフォルダと ファイル名を設定して「保存」を押して Project ビューで作成されたプリセットを…

【Unity】uGUI のオブジェクト作成時に Raycast Target をデフォルトでオフにする方法

概要 例えば uGUI の Image の Raycast Target をデフォルトでオフにしたい場合は Image コンポーネントの赤枠のアイコンを押して Select Preset ウィンドウで「Save current to...」ボタンを押して New Preset ダイアログで保存するフォルダとファイル名を…

【C#】Conditional 属性でシンボルが定義されている場合に関数を無効化する方法

概要 using UnityEngine; public class Example : MonoBehaviour { private void Update() { Log( "ピカチュウ" ); } #if DISABLE_DEBUG_LOG [System.Diagnostics.Conditional( "DUMMY" )] #endif private void Log( string message ) { Debug.Log( message …

【Unity】ログ出力にタグを付与できる独自クラス

スクリプト 使用例 using UnityEngine; public class Example : MonoBehaviour { private readonly CustomLogger m_logger = CustomLogger.Create( "タイトル" ); private void Awake() { m_logger.Log( "Log" ); m_logger.Log( "Log", gameObject ); m_logg…

【Unity】Unityプロ向けの情報がまとめられているサイト「Unity for Pro」

リンク

【Unity】物理演算を無効化する方法

概要 using UnityEngine; public class Example : MonoBehaviour { private void Update() { Physics.autoSimulation = false; Physics2D.autoSimulation = false; } } 物理演算を無効化する場合は 3D の場合は Physics.autoSimulation に false を、 2D の…

【Unity】Unity プロジェクトの初回起動時にのみ何かをするエディタ拡張

概要 using System.IO; using UnityEditor; using UnityEngine; [InitializeOnLoad] public static class Example { private const string PATH = "Library/Example"; static Example() { if ( File.Exists( PATH ) ) { Debug.Log( "2回目以降の起動" ); ret…

【Unity】テスト用のシーンは Scenes In Build のリストの末尾に追加されるようにするエディタ拡張

概要 using System.Linq; using UnityEditor; [InitializeOnLoad] public static class Example { static Example() { EditorBuildSettings.sceneListChanged += OnChanged; } private static void OnChanged() { var scenes = EditorBuildSettings.scenes; …

【Fork】git クライアントの Fork でコミット履歴にプロフィール画像を表示する方法

概要 Fork メニューの「File > Preferences...」から 「Git」タブの「Change the avatar at gravatar.com」のリンクを選択して 表示された上記のサイトでアカウントを作成して アカウント設定の画面にプロフィール画像をアップロードする そして Fork を再起…

【Unity】DOTween で 対象のゲームオブジェクトが破棄されたら Tween も破棄する方法

概要 MissingReferenceException: The object of type 'XXXX' has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object. DOTween を使っているシーンで他のシーン…

【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 を返さない、ということを保証できるようになります 他にも…

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

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

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

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

【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】特定のフォルダ内のアセットを編集して保存できないようにするエディタ拡張

概要 例えば上記のスクリプトを Unity プロジェクトの Editor フォルダに追加すると Assets/Folder1 Assets/Folder2 これらのフォルダ以下に存在するアセットは編集して保存できないようになります

【Unity】特定のフォルダ内のアセットが他のフォルダに移動しないようにするエディタ拡張

概要 例えば上記のスクリプトを Unity プロジェクトの Editor フォルダに追加すると 「@Project」フォルダ内のアセットを「@Project」フォルダ外に移動したり、 「@Project」フォルダ外のアセットを「@Project」フォルダ内に移動したりできなくなります

【Unity】Hierarchy を右クリックした時に表示されるメニューをカスタマイズできるエディタ拡張「Unity Hierarchy Menu Customizer」を GitHub に公開しました

はじめに Hierarchy を右クリックした時に表示されるメニューをカスタマイズできるエディタ拡張 「Unity Hierarchy Menu Customizer」を GitHub に公開しました 使用例 インストール "com.baba_s.unity-hierarchy-menu-customizer": "https://github.com/bab…