コガネブログ

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

【Unity】おすすめのオープンソースがまとめられたリポジトリ「awesome-unity3d」紹介

概要 「awesome-unity3d」はおすすめのオープンソースがまとめられたリポジトリです

【Unity】Found plugins with same names, and . Delete the one of the duplicate plugins.

概要 Found plugins with same names, and . Delete the one of the duplicate plugins. Unity 2018.4 のプロジェクトを 2019.2 にアップデートして Android ビルドしようとしたところ、上記のエラーが発生してビルドできなかった Unity プロジェクトを終了…

【Unity】無料で使用できるおすすめのスクリプト、ライブラリ、プラグインがまとめられたリポジトリ「Unity Script Collection」紹介

概要 「Unity Script Collection」は無料で使用できるおすすめのスクリプト、 ライブラリ、プラグインがまとめられたリポジトリです

【Unity】おすすめのアセットやプロジェクトがまとめられたリポジトリ「Awesome Unity」紹介

概要 「Awesome Unity」はおすすめのアセットやプロジェクトがまとめられたリポジトリです

【Unity】GitHub で公開されているおすすめのオープンソース800個以上をカテゴリごとにまとめました

概要 GitHub で公開されているおすすめのオープンソース800個以上を カテゴリごとにまとめました 上記のリポジトリで確認できます

【Unity】シーン遷移時に簡単にデータを渡すことができるパッケージ「Unity Scene Data Transfer」を GitHub に公開しました

はじめに シーン遷移時に簡単にデータを渡すことができるパッケージ 「Unity Scene Data Transfer」を GitHub に公開しました インストール "com.baba_s.unity-scene-data-transfer": "https://github.com/baba-s/unity-scene-data-transfer.git", manifest.…

【Unity】CircleCollider2D に Physics2D.Raycast した時に当たった点の反対側の点を取得する方法

ソースコード public static Vector2 GetRayExitThroughCircle( CircleCollider2D circleCollider, Vector2 entryPoint, Vector2 direction ) { Vector2 colliderCenter = circleCollider.transform.position; Vector2 directionToCenter = colliderCenter -…

【C#】Console 出力を高速化する方法

C#

通常 using System; internal static class Program { private static void Main() { for ( int i = 0; i < 10000; i++ ) { Console.WriteLine( i ); } } } 高速化 using System; using System.IO; internal static class Program { private static void Mai…

【.NET Core】Unhandled Exception: System.ArgumentException: 'shift_jis' is not a supported encoding name

C#

概要 using System.Text; class Program { static void Main() { var encoding = Encoding.GetEncoding( "shift_jis" ); } } Encoding.GetEncoding で Shift-JIS を使用する際に Unhandled Exception: System.ArgumentException: 'shift_jis' is not a suppo…

【.NET Core】作成したプロジェクトで「Cannot resolve symbol 'XXXX'」と表示される場合

C#

概要 作成した .NET Core のプロジェクトで void や sting などが赤く表示され、 「Cannot resolve symbol 'XXXX'」と表示される場合 ソリューションエクスプローラーでプロジェクトを右クリックして 「プロパティ」を選択し、 「ターゲットフレームワーク」…

【ReSharper】変数やプロパティが代入されている箇所を検索する方法

概要 変数やプロパティを右クリックして「Inspect > Value Origin」を押すと 変数やプロパティが代入されている箇所を検索できます 参考サイト様

【おすすめスライド】「今日からできる!簡単 .NET 高速化 Tips」

スライド

【Unity】WebGL で Compression Format によってどのくらいビルド時間に差がでるか

検証環境 Unity 2019.2.15f1 空の 2D プロジェクト 検証結果 Compression Format ビルド時間 Disabled 46 秒 Gzip 47 秒 Brotli 123 秒 補足 gzip: デフォルト設定。gzip ファイルは Brotli ファイルより大きいですが、ビルドにかかる時間が短く、http と ht…

【Unity】Package Manager 用の自作パッケージにサンプルを含める方法

はじめに Package Manager 用の自作パッケージには サンプル用のアセットを含めることができます サンプルは Package Manager からインポートできるようになります インポートしたサンプルはこのように Assets フォルダ内に展開されます 検証環境 Unity 2019…

【Unity】SceneManager.sceneLoaded が呼び出されるタイミング

概要 Awake OnEnable SceneManager.sceneLoaded Start

【Unity】ディープリンクでアプリがアクティブ化した時に呼び出されるイベント「Application.deepLinkActivated」

概要 using UnityEngine; public class Example : MonoBehaviour { private void Start() { Application.deepLinkActivated += url => Debug.Log( url ); } } iOS や Android で ディープリンクでアプリがアクティブ化した時に呼び出されるイベントらしい (…

【C#】関数の戻り値で ValueTuple を使用する

概要 private (int id, string name) GetCharacter() { return ( 25, "ピカチュウ" ); } 関数の戻り値で ValueTuple を使用することで var character = GetCharacter(); Console.WriteLine( character.id + ", " + character.name ); var ( id, name ) = Get…

【C#】ValueTuple を使用して二重ループを一重ループで記述できるようにする拡張メソッド

ソースコード using System.Collections.Generic; using System.Linq; public static class IEnumerableExt { public static IEnumerable<(T item1, T item2)> Combine<T> ( this IEnumerable<T> first, IEnumerable<T> second ) { return first.SelectMany( i1 => se</t></t></t>…

【C#】二重ループを LINQ で記述する

C#

ソースコード 通常 var list1 = Enumerable.Range( 1, 3 ); var list2 = Enumerable.Range( 1, 3 ); foreach ( var i1 in list1 ) { foreach ( var i2 in list2 ) { Console.WriteLine( i1 + ", " + i2 ); } } LINQ var list1 = Enumerable.Range( 1, 3 ); v…

【Unity】Unity Test Runner のテストをカテゴリ分けする方法

概要 using NUnit.Framework; public class Example { [Test] [Category( "ポケモン/ピカチュウ" )] public void Test1() { } [Test] [Category( "ポケモン/カイリュー" )] public void Test2() { } } Category属性を使用することで Unity Test Runner のテ…

【Unity】Unity 2019.3.0f3 や Unity 2019.3.0f1 だと OnInspectorGUI で EditorGUILayout.Foldout が動作しない

概要 using UnityEditor; [CustomEditor( typeof( Example ) )] public class ExampleEditor : Editor { private bool m_isOpen; public override void OnInspectorGUI() { m_isOpen = EditorGUILayout.Foldout( m_isOpen, "Open" ); if ( m_isOpen ) { Edit…

【Unity】ScriptableObject(.asset)を ProjectSettings フォルダに保存・読み込みしたい場合

概要 ScriptableObject(.asset)は ProjectSettings フォルダ以下に保存・読み込みができないが、 下記のスクリプトのように JSON 形式に変換することで保存・読み込みができる 参考サイト様

【Unity】Unity 2019.3 で UIElements を使用してエディタの色を変更してみる

概要 上記のような「common.uss」という名前のファイルを Unity 2019.3 のプロジェクトの 「Assets/Editor/StyleSheets/Extensions」フォルダに追加することで Unity エディタのいくつかの UI の色を変更することができます 例えば common.uss で AppCommand…

【Unity】LINQ の結果を匿名型ではなく ValueTuple で受け取る

概要 using System.Linq; using UnityEngine; public class Example : MonoBehaviour { private static string[] m_list = { "フシギダネ", "フシギソウ", "フシギバナ", }; private void Update() { // 匿名型 var r1 = m_list.Select( c => new { name = c…

【Rider】燃えるようなタイピングができる「Power Mode II」紹介

はじめに 「Power Mode II」を導入することで燃えるようなタイピングができるようになります 導入方法 Rider メニューの「ファイル > 設定」から 「プラグイン > マーケットプレース」を選択して 「Power Mode II」の「Install」を選択します 使用例

【Rider】ミニマップを表示できる「CodeGlance」紹介

はじめに 「CodeGlance」を導入することでミニマップを表示できます 導入方法 Rider メニューの「ファイル > 設定」から 「プラグイン > マーケットプレース」を選択して 「CodeGlance」の「Install」を選択します 使用例

【Rider】マクロを使ってファイル保存時にコードの再フォーマットを実行できるようにする

概要 Rider メニューの「編集 > マクロ > マクロの記録を開始」を押してから Ctrl + Alt + Enter -> Ctrl + S を押します 「編集 > マクロ > マクロの記録を停止」を押します 適当な名前をつけてマクロを保存します(例:cleanup_on_save) 「ファイル > 設…

【Rider】関数の複雑度を可視化できる「CognitiveComplexity」紹介

はじめに 「CognitiveComplexity」を導入することで関数の複雑度を可視化できます 導入方法 Rider メニューの「ファイル > 設定」から 「プラグイン > マーケットプレース」を選択して 「CognitiveComplexity」の「Install」を選択します 使用例 複雑な関数…

【Rider】マウス操作した際に該当するショートカットキーを教えてくれる「Key Promoter X」紹介

はじめに 「Key Promoter X」を導入することで マウス操作した際に該当するショートカットキーを教えてくれます 導入方法 Rider メニューの「ファイル > 設定」から 「プラグイン > マーケットプレース」を選択して 「Key Promoter X」の「Install」を選択し…

【Rider】大/小文字変換などの文字列操作ができる「String Manipulation」紹介

はじめに 「String Manipulation」を導入することで 大/小文字変換などの文字列操作ができます 導入方法 Rider メニューの「ファイル > 設定」から 「プラグイン > マーケットプレース」を選択して 「文字列操作」の「Install」を選択します 使用例 変換した…