コガネブログ

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

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

【ReSharper】特定のコードで命名規則を無視する方法

目次 目次 特定のフィールドで命名規則を無視 特定のファイルで命名規則を無視 特定の範囲で命名規則を無視 特定のフィールドで命名規則を無視(属性版) 特定のクラスで命名規則を無視(属性版) 特定のファイルですべてのルールを無視する 補足 特定のフィ…

【Unity】Unity のインストール先のフォルダを開くエディタ拡張

ソースコード using UnityEditor; public class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var path = EditorApplication.applicationPath; EditorUtility.RevealInFinder( path ); } }

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

リポジトリ 使用例 通常 using System.Linq; using UnityEditor; using UnityEngine; public class Example : ScriptableObject { [MenuItem( "Tools/Hoge" )] private static void Hoge() { // Unity プロジェクトに存在する Example アセットを取得する { …

【Unity】エディタのレイアウトファイル(.wlt)の Inspector に読み込みボタンを追加するエディタ拡張「UniLayoutAssetInspector」を GitHub に公開しました

リポジトリ 使用例

【Unity】EditorPrefs に関するコードを記述しやすくするクラス「UniEditorPrefsValue」を GitHub に公開しました

リポジトリ 使用例 通常 using UnityEditor; using UnityEngine; public class Example { private const string KEY = "Hoge"; [MenuItem( "Tools/Load" )] private static void Load() { Debug.Log( EditorPrefs.GetString( KEY ) ); } [MenuItem( "Tools/S…

【Unity】特殊なフォルダを作成するメニューを追加するエディタ拡張「UniSpecialFolderCreator」を GitHub に公開しました

リポジトリ 使用例

【Unity】Caching の内容を JSON で出力できるようにするクラス

ソースコード

【Unity】ビルド時に EditorUserBuildSettings.activeScriptCompilationDefines を TextAsset に書き込むエディタ拡張

ソースコード

【Unity】UnityEngine.iOS.Device の内容を JSON で出力できるようにするクラス

ソースコード

【Unity】QualitySettings の内容を JSON で出力できるようにするクラス

ソースコード

【Unity】アプリを実行している端末の Android バージョンを取得する方法

ソースコード using UnityEngine; public static class AndroidUtils { public static int GetSdkInt() { #if UNITY_ANDROID if ( Application.isEditor ) return -1; using ( var version = new AndroidJavaClass( "android.os.Build$VERSION" ) ) { return…

【Unity】Your project path contains non-ASCII characters

概要 Your project path contains non-ASCII characters. This will most likely cause the build to fail on Windows. Please move your project to a different directory. See http://b.android.com/95744 for details. This warning can be disabled by …

【Unity】UnityWebRequestAsyncOperation の内容を JSON で出力できるようにするクラス

ソースコード 使用例 using Kogane; using System.Collections; using UnityEngine; using UnityEngine.Networking; public class Example : MonoBehaviour { private IEnumerator Start() { var request = UnityWebRequest.Get( "https://www.google.com/" …

【C#】文字列に含まれている改行やタブ文字などのエスケープ文字を変換する方法

C#

概要 var str = "{\n\t\\\"id\\\":25,\n\t\\\"name\\\":\\\"\\u30d4\\u30ab\\u30c1\\u30e5\\u30a6\\\"\n}"; Debug.Log( Regex.Unescape( str ) ); { "id":25, "name":"ピカチュウ" } Regex.Unescape を使用する

【Unity】Addressable Asset System ですべての Missing Reference なグループを削除するエディタ拡張

概要 using System.Reflection; using UnityEditor; using UnityEditor.AddressableAssets; using UnityEditor.AddressableAssets.Settings; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var settings = Addres…

【Unity】using を使用して OnDemandRendering.renderFrameInterval を設定するクラス

ソースコード 使用例 using Kogane; using System.Collections; using UnityEngine; using UnityEngine.Rendering; public class Example : MonoBehaviour { private void Update() { if ( Input.GetKeyDown( KeyCode.Space ) ) { StartCoroutine( Hoge() );…

【Unity】using を使用して Application.targetFrameRate を設定するクラス

ソースコード 使用例 using Kogane; using System.Collections; using UnityEngine; public class Example : MonoBehaviour { private void Update() { if ( Input.GetKeyDown( KeyCode.Space ) ) { StartCoroutine( Hoge() ); } } private IEnumerator Hoge…

【Unity】サスペンド・レジュームのイベントを管理するクラスを自作する

ソースコード 使用例 using Kogane; using UnityEngine; public sealed class Example : MonoBehaviour { private void Awake() { GlobalApplicationEvent.OnPause += OnGlobalApplicationEventOnOnPause; } private void OnDestroy() { GlobalApplicationEv…

【Unity】iOS で SFSafariViewController を使用する方法

はじめに 上記のフォーラムで公開されているスクリプトを使用することで iOS で SFSafariViewController を使用できるようになります この記事では上記のスクリプトを参考に iOS で SFSafariViewController を使用できるようにする方法を紹介していきます 検…

【Unity】Android で Chrome Custom Tabs を使用する方法

はじめに 基本的には上記サイト様が紹介してくださっている手順を踏めば Android で Chrome Custom Tabs を使用できるようになりますが、 いくつか躓いた箇所があったため、備忘録として自分が踏んだ手順をまとめておきます 検証環境 Unity 2020.1.6f1 手順 …

【Unity】UnityWebRequest で JSON を POST 通信するサンプル

概要 using System; using System.Text; using UnityEngine; using UnityEngine.Networking; public class Example : MonoBehaviour { [Serializable] private sealed class Data { public int id = 25; public string name = "ピカチュウ"; } private void …

【Unity】Project ビューでアセットのフルパスをコピーできるようにするエディタ拡張「UniAssetFullPathMultipleCopyer」を GitHub に公開しました

リポジトリ 使用例 Project ビューでアセットのフルパスをコピーできるようにするエディタ拡張 複数のアセットを選択している場合は、選択中のすべてのアセットのフルパスをコピーします

【Unity】BuildPlayerWindow の internal な機能を使用できるようにするパッケージ「UniBuildPlayerWindowInternal」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEditor; public class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { // WebGL のモジュールをインストールする Unity Hub のページを開く var url = BuildPlayerWindowInternal.GetUnity…

【Unity】エディタがフォーカスされた、フォーカスが外れた時に呼び出されるコールバック「UniEditorFocusWatcher」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEditor; using UnityEngine; [InitializeOnLoad] public class Example { static Example() { EditorFocusWatcher.OnFocused += () => Debug.Log( "フォーカスされた" ); EditorFocusWatcher.OnUnfocused += () …

【Unity】Project Settings に簡単にメニューを追加できるエディタ拡張「UniScriptableObjectForProjectSettings」を GitHub に公開しました

リポジトリ 使い方 using Kogane; using UnityEditor; using UnityEngine; public class MySettings : ScriptableObjectForProjectSettings<MySettings> { [SerializeField] private int m_id = 25; [SerializeField] private string m_name = "ピカチュウ"; public int </mysettings>…

【Unity】Preferences に簡単にメニューを追加できるエディタ拡張「UniScriptableObjectForPreferences」を GitHub に公開しました

リポジトリ 使い方 using Kogane; using UnityEditor; using UnityEngine; public class MySettings : ScriptableObjectForPreferences<MySettings> { [SerializeField] private int m_id = 25; [SerializeField] private string m_name = "ピカチュウ"; public int Id =</mysettings>…

【Unity】コンポーネントがシーンに1つだけ存在することを保証する Attribute「UniOnlyOneInSceneAttribute」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEngine; [OnlyOneInScene] public class Example : MonoBehaviour { } OnlyOneInScene 属性を適用したコンポーネントが シーンに複数存在する状態で Unity を再生しようとすると エラーログが出力されて Unity …

【Unity】Raycast Target が true なゲームオブジェクトの描画範囲を Scene ビューに表示するエディタ拡張「UniSceneViewRaycastTargetVisualizer」を GitHub に公開しました

リポジトリ 使用例 使い方 Unity の Preferences から Enabled を変更することで表示の ON / OFF を切り替えられます

【Unity】シーン保存時に RectTransform の AnchoredPosition3D や SizeDelta を整数に四捨五入するエディタ拡張「UniRectTransformAutoRounder」を GitHub に公開しました

リポジトリ 依存しているパッケージ https://github.com/baba-s/UniScriptableObjectForPreferences.git 使い方 RectTransform の AnchoredPosition3D や SizeDelta を整数に四捨五入したいゲームオブジェクトに 「RectTransformAutoRounderTarget」をアタッ…

【Unity】コンポーネントの実行順をスクリプトから指定できる「DefaultExecutionOrder」

概要 using UnityEngine; [DefaultExecutionOrder( -100 )] public class Example1 : MonoBehaviour { private void Awake() { Debug.Log( nameof( Example1 ) ); } } using UnityEngine; [DefaultExecutionOrder( -200 )] public class Example2 : MonoBeha…