コガネブログ

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

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

【C#】シーケンスの先頭や末尾に要素を追加できる LINQ の機能「Prepend」「Append」

C#

概要 using System.Linq; public class Example { private void Start() { var list = new[] { 1, 2, 3 }; // 0, 1, 2, 3 var result1 = list.Prepend( 0 ); // 1, 2, 3, 4 var result2 = list.Append( 4 ); } } Prepend を使用すると先頭に要素を追加できる…

【C#】インターフェイスが実装されているクラスかどうか判定する方法

C#

ソースコード using System; public static class Program { public interface ICharacter{} public class Pokemon : ICharacter{} public class Item{} private static void Main() { var interfaceType = typeof( ICharacter ); var pokemonType = typeof(…

【Unity】Addressable Asset System における .gitignore の設定

概要 https://github.com/github/gitignore/blob/master/Unity.gitignore 上記の公式の .gitignore に記載されている # Packed Addressables /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* # Temporary auto-generated Android Assets /[Aa]ssets/[Ss…

【Unity】Inspector のヘッダ部分に Lock・Debug ボタンを追加するエディタ拡張

ソースコード using System.Reflection; using UnityEditor; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { Editor.finishedDefaultHeaderGUI += OnGUI; } private static void OnGUI( Editor editor ) { Editor…

【Unity】Android のパッチビルドでビルド時間を削減する

概要 アセットファイルは変更せず、スクリプトのみ変更した場合は Build Settings の「Development Build」と「Scripts Only Build」をオンにして 「Patch」もしくは「Patch And Run」を選択することでビルド時間を削減できます 検証結果 適当な Unity プロ…

【Unity】UniTask で処理の開始時と終了時にログを出力できるようにする拡張メソッド

ソースコード 使用例 using UniRx.Async; using UnityEngine; public sealed class Example : MonoBehaviour { private async void Start() { #if ENABLE_RELEASE #else UniTaskExt.OnStartLog += message => Debug.Log( $"{message} 開始" ); UniTaskExt.On…

【Unity】ウィンドウのタイトルや Build Settings の Platform の欄に表示されるプラットフォーム名をエディタ拡張で取得する方法

概要 using System.Reflection; using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { const string name = "GetBuildTargetGroupDisplayName"; const BindingFlags attr = Bindi…

【Unity】Inspector のヘッダ部分にアセットをエクスプローラで開くボタンを追加するエディタ拡張

ソースコード 使用例

【C#】.unitypackage から GUID のリストを取得する方法

概要 「SharpCompress」を使用して using SharpCompress.Readers; using System; using System.IO; public static class Program { private static void Main() { var path = "【.unitypackage のパス】"; using ( var stream = File.OpenRead( path ) ) { v…

【Unity】Unity プロジェクトを開いた瞬間に終了するエディタ拡張

概要 using System.Reflection; using UnityEditor; using UnityEngine.Events; public static class EditorApplicationUtility { private const BindingFlags BINDING_ATTR = BindingFlags.Static | BindingFlags.Instance | BindingFlags.NonPublic; priva…

【おすすめスライド】「【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説」

スライド

【おすすめスライド】「【Unityの集い in大阪】Unity最新情報」

スライド

【ReSharper】Visual Studio の「フォントおよび色」で ReSharper の項目を変更しても反映されない場合

概要 Visual Studio メニューの「RESHARPER > Options」から 「Code Inspection > Settings」の「Highlighting」の「Color Identifiers」をオンにすると 反映されるようになる 参考サイト様

【ReSharper】Ctrl + Shift + T でファイル検索ができる

概要 Ctrl + Shift + T を押すことでファイル検索ができる

【ReSharper】Ctrl + T でどこでも検索ができる

概要 Ctrl + T を押して検索したい文字列を入力することで、 ファイルやクラス、関数などの検索できる

【ReSharper】コンテキストアクションをファイル単位やフォルダ単位で適用する方法

概要 Ctrl + . などを押してコンテキストアクションを実行する際に ファイル単位やフォルダ単位で適用するかどうかを選択できる 関数呼び出しの単位 関数単位 ファイル単位 フォルダ単位 プロジェクト単位 ソリューション単位

【ReSharper】フォルダ単位でクリーンナップする方法

概要 Visual Studio のソリューション エクスプローラーでフォルダを右クリックして 「Cleanup Code」を選択することで、そのフォルダ内のファイル全てに対して クリーンナップを適用することができる

【おすすめスライド】「【Unite Tokyo 2019】Unity Monetization SDKでできることと使い方」

スライド

【Unity】Mac における Project ビューでフォルダを先頭に表示するエディタ拡張

概要 上記サイト様で Mac における Project ビューでフォルダを先頭に表示する エディタ拡張が公開されていたので、備忘録としてこのブログにも書き残しておきます ソースコード(引用)

【Jenkins】ジョブの設定画面の「Pipeline Syntax」から Jenkinsfile の構文を自動生成できる

概要 ジョブの設定画面の「Pipeline Syntax」を押して 表示されたページで使用したい機能を選択して、パラメータを設定して、 「Generate Pipeline Script」ボタンを押すと Jenkinsfile 用の構文が自動で生成される

【Jenkins】Permission denied

概要 error : Access to the path 'XXXX' is denied. error : Permission denied 新しくインストールした Jenkins からシェルスクリプトで dotnet コマンドを実行しよとしたところ、上記のエラーが発生した Jenkins のインストールフォルダに書き込み権限が…

【Jenkins】sh: sh: command not found

概要 sh: sh: command not found 新しくインストールした Jenkins で Pipeline ジョブを作成して sh を実行しようとしたところ、上記のエラーが発生した Jenkins の環境変数に「/bin/」を追加したら正常に動作した 「Jenkinsの管理」を開く 「システムの設定…

【Jenkins】Running with Java class version 58 which is not in the list of supported versions

概要 Running with Java class version 58 which is not in the list of supported versions: [52, 55]. Run with the --enable-future-java flag to enable such behavior. See https://jenkins.io/redirect/java-support/ Jenkins requires Java versions …

【Jenkins】localhost:8080 にアクセスできない場合

概要 JDK をインストールしていないことが原因だった java -jar jenkins.war が実行できない状態だった 下記のサイトより「Java SE 8u241」をインストールして java -jar jenkins.war を実行したら正常に動作した https://www.oracle.com/java/technologies/…

【Unity】.csproj が生成される時に呼び出されるエディタ拡張の関数

概要 using UnityEditor; using UnityEngine; public sealed class Example : AssetPostprocessor { private static string OnGeneratedCSProject( string path, string content ) { Debug.Log( path ); Debug.Log( content ); return content; } }

【Xcode】Preparing debugger support for iPhone

はじめに Preparing debugger support for iPhone Unity でビルドしたアプリを Xcode から iPhone に転送しようとしたところ 上記のエラーが発生して転送できなかった 20分ほどそのまま放置していたら、正常に転送できた (時間がかかっていただけだった) …

【Xcode】Could not locate device support files ios 13.3.1

はじめに Could not locate device support files ios 13.3.1 Unity でビルドしたアプリを Xcode から iPhone に転送しようとしたところ、 上記のエラーが発生して転送できなかった 上記サイト様で紹介されている手順を踏んだところ解決したため、 備忘録と…

【C#】C# から Mac の .command ファイルを実行したい場合

C#

概要 var terminalPath = "/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal"; var scriptPath = "【.command のファイルパス】"; var info = new ProcessStartInfo( terminalPath ) { Arguments = scriptPath, }; Process.Start( info ); 上…

【C#】C# から Mac のシェルスクリプトを実行したい場合

C#

概要 var terminalPath = "/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal"; var scriptPath = "【.sh のファイルパス】"; var info = new ProcessStartInfo( terminalPath ) { Arguments = scriptPath, }; Process.Start( info ); 上記のよ…

【雑記】Mac でゴミ箱を自動的に空にする方法

参考サイト様