コガネブログ

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

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

【Unity】executeMethod class 'XXXX' could not be found.

概要 executeMethod class 'XXXX' could not be found. コマンドライン引数で -executeMethod を使用したところ 指定したクラスが見つからないというエラーに遭遇した コマンドライン引数で -projectPath を省略した場合、 作業スペース直下の Unity プロジ…

【Unity】There are X event systems in the scene. Please ensure there is always exactly one event system in the scene

概要 There are X event systems in the scene. Please ensure there is always exactly one event system in the scene 上記の警告が表示される場合 Hierarchy に EventSystem が複数存在している可能性があります Hierarchy に同時に存在する EventSystem …

【Unity】Windows で Visual Studio 関連のファイルを削除するバッチ

概要 del \s "*.csproj" del \s "*.sln" set VS_FOLDER=".vs" if exist %VS_FOLDER% rd /s /q %VS_FOLDER%

【Unity】Windows で Unity プロジェクトを起動するバッチのサンプル

概要 set UNITY_EXE="【Unity.exe のパス】" set UNITY_PROJECT="【Unity プロジェクトのパス】" %UNITY_EXE% -projectPath %UNITY_PROJECT% -buildTarget Android

【Unity】Windows で Unity プロジェクトの不要なファイルを削除するバッチのサンプル

概要 set LOGS_FOLDER="Logs" set TEMP_FOLDER="Temp" if exist %LOGS_FOLDER% rd /s /q %LOGS_FOLDER% if exist %TEMP_FOLDER% rd /s /q %TEMP_FOLDER%

【Unity】Windows で Unity を強制終了するコマンド

概要 taskkill /f /im Unity.exe

【Unity】Addressable Asset System の2回目以降の InitializeAsync で進行不能になった場合

概要 Addressable Asset System 1.8.4 を使用しているプロジェクトで カタログがキャッシュに存在する状態で InitializeAsync を実行すると 進行不能になる現象に遭遇した 1.8.5 にアップデートしても直らなかった 1.9.2 にアップデートしたら直った

【Unity】Addressable Asset System で PercentComplete が正常な値を返してくれない場合

概要 自分の環境だと 1.9.2 以降、PercentComplete が正常な値を返してくれず プログレスバーの表示がおかしくなる現象に遭遇したが PercentComplete 周りの処理のみ 1.8.5 以前のものに戻したら 正常に動作するようになった ChainOperation.cs protected ov…

【Unity】Console ウィンドウのタイムスタンプの文字幅を統一したい場合

概要 Console ウィンドウでタイムスタンプを表示する場合、 デフォルトだとタイムスタンプの文字幅が微妙に違っており 文字がズレて見えるため個人的にはあまり好きではなかったが Preferences の「General > Editor Font」を「Verdana」にしたところ タイム…

【Unity】フォルダの Inspector にボタンを追加するエディタ拡張「UniFolderInspector」を GitHub に公開しました

リポジトリ 使用例 選択中のフォルダにフォルダや C# スクリプトを作成できるボタンが使用できるようになります

【Unity】Inspector でゲームオブジェクトの編集を不可能にできるエディタ拡張「UniGameObjectLocker」を GitHub に公開しました

リポジトリ 使い方 Inspector で Transform コンポーネントを右クリックして「Switch Lock - Unlock」を押すと そのゲームオブジェクトを編集不可にできます 編集可能に戻したい場合はもう一度同じメニューを選択します

【Unity】Unity 2020.2b 新機能 - デフォルトの親オブジェクトを指定できるようになった

概要 Hierarchy でゲームオブジェクトを選択した状態で 「右クリック > Set as Default Parent」を選択すると そのゲームオブジェクトが太字で表示されるようになり その状態でゲームオブジェクトを作成すると 指定したゲームオブジェクトが自動で親に設定さ…

【Unity】Unity 2020.2b 新機能 - Hierarchy で空の親オブジェクトを作成できるようになった

概要 Hierarchy でゲームオブジェクトを選択した状態で 「右クリック > Create Empty Parent」を選択すると 選択したゲームオブジェクトを子に持つ親オブジェクトを作成できます

【Unity】Unity 2020.2b 新機能 - プレハブがインポートされた時に呼び出される「AssetPostprocessor.OnPostprocessPrefab」

概要 using UnityEditor; using UnityEngine; public class Example : AssetPostprocessor { private void OnPostprocessPrefab( GameObject root ) { root.AddComponent<BoxCollider>(); } } プレハブがインポートされた時に呼び出される関数 「AssetPostprocessor.OnPos</boxcollider>…

【Unity】Unity 2020.2b 新機能 - デフォルトで配列やリストを Inspector で並べ替えられるようになった

概要 Unity 2020.2a では「Reorderable」属性を変数に適用すれば 配列やリストを Inspector で並べ替えられるようになりましたが、 Unity 2020.2b では「Reorderable」属性を適用しなくても デフォルト動作で並び替えができるようになりました using System.…

【Unity】アセットのパスに関する処理を記述しやすくする構造体「UniAssetPath」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEditor; using UnityEngine; public static class Test { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var assetPath = new AssetPath( "Assets/New Material.mat" ); // 下記の記述も可能 //Asse…

【Unity】Unity Accelerator の基本的な使い方

はじめに Unity Accelerator は Unity 2019.3 以降で使用できる新しいキャッシュサーバです Unity プロジェクトでアセットをインポートした時のキャッシュを保存しておくことができます 通常、Unity をそのまま使用している場合、アセットをインポートした時…

【Unity】Unity Hub の「詳細なプロジェクト設定」が保存できない場合

概要 Unity Hub でプロジェクトの「詳細なプロジェクト設定」を開いて コマンドライン引数を入力して「実行」ボタンを押しても 設定したコマンドライン引数の情報が消えてしまう現象に遭遇しましたが、 一度、該当のプロジェクトを「リストから削除」してか…

【C#】ショートカット(.lnk)のリンク先のパスを取得する方法

C#

概要 Visual Studio のプロジェクトの「参照」を右クリックして「参照の追加」を選択して 「COM」を選択して「Windows Script host Object Model」をチェックして「OK」を押します using IWshRuntimeLibrary; using System; internal static class Program {…

【C#】NetOffice で横棒グラフを作成する時に軸を反転する方法

C#

ソースコード using NetOffice.ExcelApi; using NetOffice.ExcelApi.Enums; public static class Program { private static void Main() { using ( var application = new Application() ) { var workBook = application.Workbooks.Add(); var workSheet = w…

【C#】NetOffice で横棒グラフを作成する方法

C#

ソースコード using NetOffice.ExcelApi; using NetOffice.ExcelApi.Enums; public static class Program { private static void Main() { using ( var application = new Application() ) { var workBook = application.Workbooks.Add(); var workSheet = w…

【C#】NetOffice でグラフを挿入する時の位置の間隔

C#

概要 NetOffice において Excel の1つのセルの横幅は「54」、縦幅は「13.5」で扱われる using NetOffice.ExcelApi; using NetOffice.ExcelApi.Enums; public static class Program { private static void Main() { using ( var application = new Applicatio…

【Unity】Assembly Definition を作成する時のコンパイル回数を抑えられるエディタ拡張「UniAssemblyDefinitionCreator」を GitHub に公開しました

リポジトリ 使い方 Project ビューのコンテキストメニューから「Open Assembly Definition Creator」を選択して 表示されたウィンドウで Assembly Definition を作成することができます 通常の手順で Assembly Definition を作成して設定を変更する場合 Asse…

【Unity】開始と終了がある処理を using ステートメントで使用できる「UniScope」を GitHub に公開しました

リポジトリ 使用例 AssetEditingScope // 通常 AssetDatabase.StartAssetEditing(); //... AssetDatabase.StopAssetEditing(); // UniScope using ( new AssetEditingScope() ) { //... } HandlesColorScope // 通常 var oldColor = Handles.color; Handles.…

【Unity】無効値を表す構造体「UniOptional」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEngine; public sealed class Example : MonoBehaviour { private static Optional<string> GetName() { return default; } private void Start() { var name = GetName(); // 値を持っている場合 if ( name ) { Debug.L</string>…

【Unity】Unity 同士で TCP 通信を行う

検証環境 Windows 10 Unity 2019.4.6f1 Unity エディタ同士、ビルドした Windows アプリ同士で通信できることを確認済み 準備 クライアント用の Unity プロジェクトとサーバ用の Unity プロジェクトを準備 各プロジェクトに以下のスクリプトを追加してシーン…

【Unity】アセットをブックマークできるエディタ拡張「UniBookmark」を GitHub に公開しました

リポジトリ 使い方 Unity メニューの「Window > UniBookmark」を押すと ブックマークを管理できる「UniBookmark」ウィンドウが表示されます 「Add Asset」ボタンを押すか、「Add Asset」ボタンにアセットをドラッグすると ブックマークにアセットを登録でき…

【Unity】アセンブリのコンパイルのプロセスを可視化できるエディタ拡張「Compilation Visualizer for Unity」紹介

はじめに 「Compilation Visualizer for Unity」は アセンブリのコンパイルのプロセスを可視化できるエディタ拡張です 使用例 プロジェクト全体をコンパイルし直した場合 Assembly-CSharp.dll のスクリプトを修正した場合

【Unity】.meta ファイルに独自の情報を追加する方法

概要 using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var asset = Selection.activeObject; var path = AssetDatabase.GetAssetPath( asset ); var assetImporter = AssetImporter.GetAtPath( …

【Unity】Unity 2020.2a から C# 8.0 の機能がいくつか使用できるようになった

はじめに Unity 2020.2a から C# 8.0 の機能がいくつか使用できるようになりました マイクロソフトの公式ページで C# 8.0 の新機能が紹介されておりますが、 この新機能の中から、現時点で使用できることが確認できた機能と 使用できなかった機能をいくつか…