コガネブログ

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

【ReSharper】Attribute が適用された変数の定義が長い時に改行する方法

概要 ReSharper メニューの「Code Editing > C# > Formatting Style > Line Breaks and Wrapping」の 「Arrangement of Attribtues」の 「Place attribute section list on separate line if it is longer than」に 1行における文字数を入力する その文字数…

【Unity】Paste Component As New をスクリプトから呼び出す方法

概要 using UnityEditor; using UnityEditorInternal; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var gameObject = Selection.activeGameObject; ComponentUtility.PasteComponentAsNew( gameObject ); } } C…

【Unity】Console ウィンドウを自作するサンプル

概要 上記のサイト様が Console ウィンドウを自作するサンプルのソースコードを 公開してくださっております

【Unity】Standalone ビルドで Use Player Log をオンにした時に Player.log が出力される場所

概要 Project Settings で「Use Player Log」をオンにした場合 C:\Users\【ユーザー名】\AppData\LocalLow\【Company Name】\【Product Name】 上記のフォルダ内に Player.log が出力される 関連記事

【Unity】スタックトレースを取得する方法

概要 StackTraceUtility.ExtractStackTrace() 上記の関数で現在のスタックトレースを取得できる using UnityEngine; public class Example : MonoBehaviour { private void OnGUI() { Hoge1(); } private void Hoge1() { Hoge2(); } private void Hoge2() { …

【Jenkins】Jenkins Pipeline で過去のビルドのパラメータを再利用したい場合

概要 「Rebuilder」を Jenkins にインストールする そして、過去のビルド履歴を選択して「Rebuild」を押すと そのビルドで使用したパラメータを再利用してビルドできる 参考サイト様

【Jenkins】Jenkins Pipeline から Slack に送信したテキストが文字化けする場合

概要 Pipeline script from SCM で読み込んだ .jenkinsfile で slackSend で Slack にテキストを送信したところ 日本語のテキストが文字化けした Pipeline script from SCM で読み込む .jenkinsfile の文字コードを UTF8 から SJIS に変更したところ正常に表…

【Jenkins】Jenkins Pipeline でビルドしたユーザーの情報を取得する方法

概要 「build user vars plugin」を Jenkins にインストールした状態で 下記のようなスクリプトを記述する pipeline { agent any stages { stage("stage1") { steps { wrap([$class: "BuildUser"]) { echo "${BUILD_USER}" // フルネーム echo "${BUILD_USER…

【Unity】Could not load symbol clCreateImage : 指定されたプロシージャが見つかりません。

概要 Could not load symbol clCreateImage : 指定されたプロシージャが見つかりません。 Could not load symbol clEnqueueFillBuffer : 指定されたプロシージャが見つかりません。 Could not load symbol clEnqueueFillImage : 指定されたプロシージャが見…

【Unity】CommandInvokationFailure: Gradle build failed.

概要 Multiple task action failures occurred: See the Console for details. 24 actionable tasks: 24 executed UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) CommandInvokationFailure: Gradle build failed. C:\Program Files\Unity\Hub\Edi…

【雑記】java.exe の場所を確認するコマンド

概要 where java

【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 {…