コガネブログ

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

【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 形式に変換することで保存・読み込みができる 参考サイト様