コガネブログ

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

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

【Unity】アセットバンドルがキャッシュに存在するか確認する方法

概要 ProvideHandle provideHandle = ...; AssetBundleRequestOptions options = ...; var location = provideHandle.Location; var url = location.InternalId; var hash = Hash128.Parse( options.Hash ); var isExist = Caching.IsVersionCached( url, ha…

【Fork】Stage All ボタンの場所

概要 赤枠のアイコンで Stage All(もしくは Unstage All)できる

【Unity】Addressable Asset System の設定が変更された時に呼び出されるイベント

概要 using UnityEditor; using UnityEditor.AddressableAssets.Settings; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { AddressableAssetSettings.OnModificationGlobal += OnModificationGlobal; } private s…

【Unity】Addressable Asset System の AddressableAssetEntry.SetAddress はアドレスが変更された時のみ処理が実行されるようになっている

概要 public void SetAddress(string addr, bool postEvent = true) { if (m_Address != addr) { m_Address = addr; if (string.IsNullOrEmpty(m_Address)) m_Address = AssetPath; SetDirty(AddressableAssetSettings.ModificationEvent.EntryModified, thi…

【Unity】Addressable Asset System の Play Mode Script を変更するエディタ拡張

概要 使用例 using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { // デフォルトなら // 0: Use Asset Database (faster) // 1: Simulate Groups (advanced) // 2: Use Existing Build (requires bu…

【Unity】Addressable Asset System でデフォルト以外のすべてのグループを削除するエディタ拡張

概要 使用例 using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { AddressableUtils.RemoveAllGroupWithoutDefault(); } }

【Unity】Addressable Asset System でアセットやフォルダにラベルを割り当てる・解除するエディタ拡張

概要 使用例 using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { // アセットにラベルを割り当てます AddressableUtils.SetLabelToAssetOrFolder ( path:"Assets/New Material.mat", label: "hoge"…

【Unity】Addressable Asset System でアセットやフォルダにアドレスを割り当ててグループに追加するエディタ拡張

概要 使用例 using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { // アセットにアドレスを割り当ててグループに追加する AddressableUtils.SetAddressToAssetOrFolder ( path:"Assets/New Material…

【Unity】Addressable Asset System のグループを作成するエディタ拡張

概要 使用例 using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var group = AddressableUtils.GetOrCreateGroup( "test" ); } }

【Unity】エディタ拡張で Addressable Asset System のビルド・クリーンを実行する方法

概要 using UnityEditor; using UnityEditor.AddressableAssets.Settings; public static class Test { [MenuItem( "Tools/Build" )] private static void Build() { AddressableAssetSettings.BuildPlayerContent(); } [MenuItem( "Tools/Clean" )] private…

【Unity】すべてのアセットバンドル名を削除するエディタ拡張メモ

概要 using UnityEditor; public static class Example { [MenuItem( "Tools/アセットバンドル名全削除" )] private static void Hoge() { AssetDatabase.StartAssetEditing(); foreach ( var assetPath in AssetDatabase.GetAllAssetPaths() ) { var assetI…

【Unity】Addressable Asset System で詳細なログ出力を有効にする方法

概要 シンボル定義に「ADDRESSABLES_LOG_ALL」を追加する

【Unity】Addressable Asset System の実行時エラーログを無効化する方法

概要 AddressableAssetSettings の「Log Runtime Exceptions」をオフにする

【Unity】ローカルキャッシュサーバのデフォルトの保存先

概要 C:\Users\【ユーザー名】\AppData\Roaming\Unity\Caches\CacheServer

【Slack】Windows 10 で Slack のデスクトップ通知の表示時間を変更する方法

概要 Slack の設定ではなく Windows 10 の設定で変更できる Windows の設定から「簡単操作」を開いて 「ディスプレイ」の「通知を表示する長さ」を変更する

【雑記】Thunderbird のデスクトップ通知の表示時間を変更する方法

概要 Thunderbird メニューの「オプション」から 「オプション」を選択して 「一般」の「デスクトップ通知を表示する」の「設定」ボタンを押して 「新着メール通知の表示時間」を変更して保存する

【Git】GitHub で Personal access tokens を使用してリポジトリを Clone する時の URL

概要 https://【アカウント名】:【アクセストークン】@github.com/【アカウント名】/【リポジトリ名】.git 参考サイト様 https://qiita.com/tq_jappy/items/6e2f81f372e4abaa5139

【雑記】Thunderbird 起動時にようこそ画面を非表示にする方法

概要 Thunderbird メニューの「オプション」から 「オプション」を選択して 「一般」の「起動時にメッセージペインにスタートページを表示する」をオフにする

【雑記】UltraVNC Viewer で Windows から Mac にリモート接続した時に背景画像が表示されたままログイン画面に進まない現象の回避方法

概要 対象の Mac を再起動すれば正常にリモート接続できるようになる しばらくして再度リモート接続すると、再びログイン画面に進まなくなる Mac はスリープしない設定になっている 回避方法 UltraVNC Viewer ではなく RealVNC の VNC Viewer を使用する htt…

【Unity】ゲーム実行中に Texture2D を Sprite に変換して使用する方法

ソースコード using UnityEngine; public static class Texture2DExt { public static Sprite ToSprite( this Texture2D self ) { var rect = new Rect( 0, 0, self.width, self.height ); var pivot = Vector2.one * 0.5f; var newSprite = Sprite.Create( …

【Unity】AnimationClip のすべての AnimationCurve の TangentMode を変更するエディタ拡張

ソースコード

【Unity】UniRx でゲームオブジェクトやコンポーネントが破棄された時に IDisposable.Dispose を自動で呼び出す方法

概要 using System; using UniRx; using UnityEngine; public sealed class Hoge : IDisposable { public void Dispose() { Debug.Log( "ピカチュウ" ); } } public class Example : MonoBehaviour { private void Awake() { new Hoge().AddTo( gameObject )…

【Unity】ZString の Utf16ValueStringBuilder で ZString.Join を使いやすくする拡張メソッド

ソースコード using Cysharp.Text; using System; using System.Collections.Generic; public static class ZStringExt { public static void AppendLine<T> ( ref this Utf16ValueStringBuilder self, char separator, IEnumerable<T> values ) { self.AppendLine</t></t>…

【Unity】IDisposable の破棄漏れを見つけるクラス

ソースコード Dispose が呼び出されずにインスタンスが破棄されると デストラクタのタイミングでエラーログを出力する 使用例 using UnityEngine; // IDisposable を直接実装するのではなく、 // CheckDisposable を継承するようにする public sealed class …

【Unity】Addressable Asset System の ExceptionHandler で例外が出力されたキーと型をログ出力するサンプル

概要 using System; using System.Text.RegularExpressions; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.ResourceManagement; using UnityEngine.ResourceManagement.AsyncOperations; internal sealed class Example : Mo…

【Unity】Package Manager で追加したパッケージの .csproj を生成する方法

概要 Unity メニューの「Edit > Preferences」から 「External Tools」の「Generate all .csproj files.」をオンにして ソリューションファイルを再生成する

【Unity】Addressable Asset System で例外を検知する方法

概要 try~catch で例外を検知することはできない ResourceManager.ExceptionHandler で例外を検知することができる Application.LogCallback のようなもの 例外はただの Exception で飛んできてきているようなので、 ResourceManager.ExceptionHandler の引…

【C#】Excel のファイルを作成して折れ線グラフを挿入する方法

C#

はじめに 上記サイト様で詳細が記載されていますが、備忘録として自分のブログにも Excel のファイルを作成して折れ線グラフを挿入する方法を書き残しておきます インストール Visual Studio メニューの「ツール > NuGet パッケージ マネージャー > ソリュー…

【C#】.ini ファイルの読み込み・書き込みができる「INI File Parser」紹介

はじめに 「INI File Parser」をプロジェクトに追加することで .ini ファイルの読み込み・書き込みができる 入手方法 Install-Package ini-parser パッケージマネージャーコンソールで上記のコマンドを実行します 使い方 読み込み [Dialog] Width=512 Height…

【Unity】Unity プロジェクトの初回起動時かどうかを確認するクラス

ソースコード 使用例 using UnityEditor; using UnityEngine; [InitializeOnLoad] public static class Example { private static readonly EditorFirstBootChecker CHECKER = new EditorFirstBootChecker( "Hoge" ); static Example() { if ( CHECKER.IsFir…