コガネブログ

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

【Unity】Image 型に関係する汎用的な関数を管理するクラス「UniImageUtils」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEngine; using UnityEngine.UI; public class Example : MonoBehaviour { public Image m_image; private void Awake() { // Inspector で「It looks like~」が表示されている場合 true Debug.Log( ImageUtils.I…

【Unity】UI の Image で Sliced と Filled を同時に使用できる「SlicedFilledImage.cs」紹介

ソースコード(引用)

【Unity】Inspector で参照を設定されている ScriptableObject の情報をインラインで表示できる「ExtendedScriptableObjectDrawer.cs」紹介

ソースコード(引用) 使用例 前述のソースコードを Unity プロジェクトに追加すると Inspector の ScriptableObject の欄に、設定されている ScriptableObject の情報がインラインで表示されるようになります ScriptableObject が設定されていない場合は「C…

【Unity】クリップボードにコピーされているパスを含むアセットを Project ビューでハイライトするエディタ拡張

概要 using UnityEditor; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { EditorApplication.projectWindowItemOnGUI += OnGUI; } private static void OnGUI( string guid, Rect selectionRect ) { var path = A…

【Unity】エディタ拡張で Inspector の最大化を切り替える方法

ソースコード using System; using UnityEditor; using UnityEngine; public sealed class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var windows = Resources.FindObjectsOfTypeAll<EditorWindow>(); var inspectorWindow = Array.Find( window</editorwindow>…

【Unity】Mathf.Clamp、Mathf.Max、Mathf.Min を拡張メソッドで呼び出せるようにするパッケージ「UniClampExtensionMethods」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEngine; public class Example : MonoBehaviour { private void Awake() { int i = 25; Debug.Log( i.Clamp( 0, 100 ) ); Debug.Log( i.Max( 100 ) ); Debug.Log( i.Min( 0 ) ); float f = 25f; Debug.Log( f.Cl…

【Unity】IL2CPP ビルドした環境で Odin のシリアライズ周りでエラーが発生する場合の対応方法

はじめに 例えば上記のように JobType という列挙型が存在し、 その列挙型を Dictionary で使用している CharacterData という SerializedScriptableObject が存在する場合に Example.Awake で Resources.Load を使用して CharacterData を読み込もうすると …

【Unity】Debug.Log する時に Application.logMessageReceivedThreaded を無視する方法

ソースコード using System; using System.Collections.Generic; using System.Reflection; using UnityEngine; public class Example : MonoBehaviour { private readonly List<string> m_conditions = new List<string>(); private void Awake() { Application.logMessageR</string></string>…

【Unity】StreamingAssets 内のファイルの一覧を取得できる「Better Streaming Assets」紹介

はじめに 「Better Streaming Assets」を Unity プロジェクトに導入することで StreamingAssets 内のファイルの一覧を取得できるようになります 使用例 using System.IO; using UnityEngine; public class Example : MonoBehaviour { private void Awake() {…

【Unity】CS0169 と CS0649 の警告を無効化する方法

概要 Unity プロジェクトに「csc.rsp」という名前のファイルを作成して -nowarn:0169 -nowarn:0649 「csc.rsp」ファイルに上記の記述を入力して保存することで CS0169 と CS0649 の警告を無効化できます using UnityEngine; public class Example : MonoBeha…

【Unity】Unity 2020.1 新機能 - CS0169 と CS0649 の警告を無効化できるようになった

概要 Unity メニューの「Edit > Project Settings...」から Project Settings ウィンドウを開いて 左メニューから「Player」を選択して「Suppress Common Warnings」をオンにすることで CS0169 と CS0649 の警告を無効化できます using UnityEngine; public …

【Unity】エディタ拡張で Add Component のようなドロップダウンメニューを実装できる「AdvancedDropdown」

使用例 using System; using UnityEditor; using UnityEditor.IMGUI.Controls; using UnityEngine; class WeekdaysDropdown : AdvancedDropdown { public event Action<AdvancedDropdownItem> OnSelect; public WeekdaysDropdown( AdvancedDropdownState state ) : base( state ) {</advanceddropdownitem>…

【Unity】エディタ拡張でプロジェクト外のスクリプトをコンパイルできる「AssemblyBuilder」

ソースコード using System.IO; using System.Linq; using UnityEditor; using UnityEditor.Compilation; using UnityEngine; public static class AssembyBuilderExample { [MenuItem( "AssemblyBuilder Example/Build Assembly Async" )] public static vo…

【Unity】プレハブ編集中に「Hold On...」が頻繁に表示される場合

概要 Scene ビュー右上の「Auto Save」がオンになっていないかどうか確認する オンになっているとプレハブを編集するたびに保存処理が走る

【ReSharper】クラスや関数の Full Name をコピーする方法

概要 Visual Studio メニューの「RESHARPER > Edit > Copy Fully-qualified name/Source browser URI to Clipboard」を選択して コピーしたい書式を選択することで、クラスや関数の Full Bane をコピーできます 参考サイト様