コガネブログ

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

【おすすめスライド】「今日からできる!簡単 .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」を選択します 使用例