コガネブログ

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

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

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

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

【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 のスクリプトを修正した場合