コガネブログ

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

2022-01-01から1年間の記事一覧

【Unity】ShaderGraph のスクリーンショットを保存できる「Shader Graph to PNG」紹介

概要 「Shader Graph to PNG」を Unity プロジェクトに導入することで ShaderGraph のスクリーンショットを保存できるようになります 使い方 ShaderGraph のウィンドウを右クリックして「Graph To PNG」を押すと 「Assets/ShaderGraphScreenshots」にスクリ…

【Unity】UI.Image の透明部分をクリックできないようにする方法

概要 テクスチャの「Read/Write」をオンにして「Apply」した状態で using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class Example : MonoBehaviour, IPointerClickHandler { private void Awake() { var image = GetComp…

【Unity】Ease を AnimationCurve で使用できる「Unity - Easing Library Visualisation」紹介

概要 「Unity - Easing Library Visualisation」を Unity プロジェクトに導入することで Ease を AnimationCurve で使用できるようになります 使い方 GitHub リポジトリに含まれている「NoiseCrimeStudiosEaseEquations.curves」を Unity プロジェクトの Edi…

【Unity】Package Manager ですべてのバージョンを見られるようにする「FixPackageManagerSeeAllVersions」紹介

概要 「FixPackageManagerSeeAllVersions」を Unity プロジェクトに導入することで Package Manager ですべてのバージョンを見られるようになります 導入前 導入後 Project Settings の「Player > See All Versions」をオンにすると Package Manager に「See…

【Unity】iOS の Launch Screen に設定した Image が黒く表示される場合

概要 画像の Texture Type を「Editor GUI and Legacy GUI」から 「Sprite (2D and UI)」に変更したら直った

【Unity】iOS の Launch Screen の設定内容が Xcode に反映されない場合

概要 Build Settings で「Symlink Sources」を有効にしているか スクリプトからビルドする時に BuildOptions.SymlinkSources を使用していると Project Settings で設定した iOS の Launch Screen の内容が Xcode に反映されない

【Unity】DOTween で IndexOutOfRangeException: Index was outside the bounds of the array.

概要 using Cysharp.Threading.Tasks; using DG.Tweening; using UnityEngine; public class Example : MonoBehaviour { private Tween m_tween; private async UniTaskVoid Update() { if ( Input.GetMouseButtonDown( 0 ) ) { Debug.Log( "開始" ); m_twee…

【Unity】EventSystem.current.IsPointerOverGameObject が検出したゲームオブジェクトを取得できる StandaloneInputModule

リポジトリ 使用例 using Kogane; using UnityEngine; using UnityEngine.EventSystems; public class Example : MonoBehaviour { [SerializeField] private CustomStandaloneInputModule m_module; private void Update() { if ( EventSystem.current.IsPoi…

【Unity】ANDROID_HOME を環境変数に設定するクラス

リポジトリ 使用例 using System; using Kogane; using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] public static void Hoge() { SetAndroidHomeToEnvironmentVariable.Set( EnvironmentVariableTarget.Process ); } }

【Unity】BuildOptions.DetailedBuildReport を使用するとビルド時に Unity エディタが強制終了するようになった

概要 BuildOptions.DetailedBuildReport を使用すると ビルド時に Unity エディタが強制終了するようになった Editor.log を見ると以下のログが出力されていた Calling OnPostBuildPlayerScriptDLLs callbacks. For faster build speeds, consider not using…

【Unity】BuildOptions.CleanBuildCache を使うと Clean Build できる

概要 var options = new BuildPlayerOptions { scenes = EditorBuildSettings.scenes.Select( x => x.path ).ToArray(), locationPathName = "app.apk", target = BuildTarget.Android, options = BuildOptions.CleanBuildCache }; var buildReport = BuildP…

【Unity】BuildOptions.ShowBuiltPlayer を使うとビルド後に成果物が保存されているフォルダが開く

概要 var options = new BuildPlayerOptions { scenes = EditorBuildSettings.scenes.Select( x => x.path ).ToArray(), locationPathName = "app.apk", target = BuildTarget.Android, options = BuildOptions.ShowBuiltPlayer }; var buildReport = BuildP…

【Python】ffmpeg で No such file or directory

概要 ffmpeg -y -i "${waveFile}" -vn -ac 2 -ar 44100 -ab 128k -acodec libvorbis -f ogg "${oggFile}" ffmpeg で .wav を .ogg に変換しようとしたら No such file or directory 上記のエラーが発生する現象に遭遇した ファイルは正常に存在する状態だっ…

【Python】soundfile.write で Format not recognised.

概要 y, sr = librosa.load(file, sr=None, mono=False) soundfile.write(file=file, data=y, samplerate=sr) mono=False で読み込んだ音声ファイルを soundfile.write で保存しようとしたら Format not recognised. 上記のエラーが発生して 0 バイトのファ…

【Unity】アプリケーションを再起動できるパッケージ

リポジトリ 使用例 using Kogane; using UnityEngine; public sealed class Example : MonoBehaviour { private void Start() { ApplicationRestarter.Restart(); } } 対応しているプラットフォーム Unity Editor Android

【Python】.ogg の最初と最後の無音部分を削除する方法

概要 import librosa import soundfile as sf path = "input.ogg" y, sr = librosa.load(path, sr=None, mono=False) yt, index = librosa.effects.trim(y, top_db=60) sf.write("output.ogg", yt.T, sr) pip install librosa で librosa を入手しておく pip…

【Unity】PointerEventData 型の拡張メソッド

リポジトリ 使用例 using Kogane; using UnityEngine; using UnityEngine.EventSystems; public sealed class Example : MonoBehaviour, IPointerClickHandler { void IPointerClickHandler.OnPointerClick( PointerEventData eventData ) { // シングルタッ…

【Unity】Unity 製の iOS アプリで SFSafariView を使用できるようにするパッケージ

リポジトリ 使用例 #if UNITY_IOS using Kogane; using UnityEngine; public sealed class Example : MonoBehaviour { private void Start() { SFSafariView.OpenURL( "https://www.google.co.jp/" ); } } #endif #if UNITY_IOS using Cysharp.Threading.Tas…

【Unity】iOS ビルド完了時に Xcode プロジェクトのプッシュ通知を有効化するエディタ拡張

リポジトリ 使用例 using Kogane; using UnityEditor; [InitializeOnLoad] public static class Example { static Example() { // 開発ビルドかリリースビルドか設定します SetXcodePushNotificationOnPostProcessBuild.OnIsProduction = () => false; } }

【Git】git patch trailing whitespace

概要 git patch trailing whitespace patch 適用時に上記のエラーが発生する現象に遭遇した git apply --reject --whitespace=fix "【patch のファイルパス】" 上記のコマンドならエラーが発生せず正常に patch を適用できた 参考サイト様

【Unity】文字列の配列やリストから最も類似している文字列を検索できる拡張子メソッド

リポジトリ 使用例 using Kogane; using UnityEngine; public sealed class Example : MonoBehaviour { private void Start() { var texts = new[] { "Awake", "Start", "Update", "FixedUpdate", "LateUpdate", }; // Update Debug.Log( texts.GetMostSimil…

【Unity】アプリケーションがバックグラウンドに移動したか、バックグラウンドから復帰したかを検知できるクラス

リポジトリ 使用例 ApplicationBackgroundChecker.OnChanged = isBackground => Debug.Log( isBackground );

【Unity】データを保存できるディレクトリのパスを管理するクラス

リポジトリ 使用例 using Kogane; using System.IO; using UnityEngine; public class Example : MonoBehaviour { private string m_text = string.Empty; private void OnGUI() { GUILayout.Label( ApplicationPath.PersistentDataPath ); GUILayout.Label(…

【Unity】アプリケーションを実行している Android 端末の API Level を取得できるパッケージ

リポジトリ 使用例 // アプリケーションを実行している Android 端末の API Level Debug.Log( AndroidApiLevel.Value ); // アプリケーションを実行している Android 端末のバージョンが 13 以上なら true Debug.Log( AndroidApiLevel.IsAndroidVersion13OrH…

【Unity】error: No profiles for 'XXXX' were found:

概要 error: No profiles for 'XXXX' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'XXXX'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvi…

【Unity】TextMesh Pro のトグルの Editor GUI を使えるようにするクラス

リポジトリ 使用例 using System; using UnityEngine; [Flags] public enum Attribute { FIRE = 1 << 1, AQUA = 1 << 2, GRASS = 1 << 3, } public sealed class Example : MonoBehaviour { [SerializeField] private Attribute m_attribute; } using Kogane…

【Unity】Android で通知許可ダイアログを表示するクラス

リポジトリ 使用例 using Cysharp.Threading.Tasks; using Kogane; using UnityEngine; public sealed class Example : MonoBehaviour { private async UniTaskVoid Start() { var result = await NotificationPermissionRequest.RequestAsync( this ); Debu…

【Unity】iOS / Android でストアページを開く構造体

リポジトリ 使用例 using Kogane; using UnityEngine; public sealed class Example : MonoBehaviour { // Pokémon GO のストアページを開く private readonly OpenStorePage m_openStorePage = new ( iosId: "1094591345", androidId: "com.nianticlabs.pok…

【Rider】折り返し(ソフトラップ)を無効化する方法

概要 Rider メニューの「View > Active Editor > Soft-Wrap」をオフにする

【Unity】Play Asset Delivery を使用している Android App Bundle を Android 端末にインストールできるクラス

リポジトリ 使用例 using Kogane; using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] public static void Hoge() { var data = new InstallPlayAssetDeliveryAndroidAppBundleData ( androidAppBundlePath: …