コガネブログ

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

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

【Unity】Array.Contains と HashSet.Contains の速度比較

検証用スクリプト using System.Collections.Generic; using System.Diagnostics; using System.Linq; using UnityEngine; using Debug = UnityEngine.Debug; public class Example : MonoBehaviour { private void Start() { var count = 10000; var value …

【Unity】HashSet を JsonUtility でシリアライズ・デシリアライズするサンプル

ソースコード using System; using System.Collections.Generic; using UnityEngine; [Serializable] public sealed class Example : ISerializationCallbackReceiver { [SerializeField] private int[] m_array = null; private HashSet<int> m_hashSet; public </int>…

【Unity】WebGL の InputField でコピー・ペーストできる「WebGLInput」紹介

はじめに 「WebGLInput」を Unity プロジェクトに導入することで WebGL の InputField でコピー・ペーストできるようになります 検証環境 Unity 2019.2.15f1 Chrome 79.0.3945.130 Firefox 72.0.2 上記の環境で正常に動作することを確認しています 使い方 In…

【Unity】Unity Package Manager で使用できるおすすめのパッケージがまとめられたリポジトリ「Awesome UPM」紹介

概要 「Awesome UPM」は Unity Package Manager で使用できる おすすめのパッケージがまとめられたリポジトリです

【Unity】無料で使えるおすすめのパッケージやライブラリがまとめられたリポジトリ「Awesome Unity FREE」紹介

概要 「Awesome Unity FREE」は無料で使えるおすすめのパッケージや ライブラリがまとめられたリポジトリです

【Unity】Curl error 6: Could not resolve host: config.uca.cloud.unity3d.com

概要 Curl error 6: Could not resolve host: config.uca.cloud.unity3d.com Curl error 6: Could not resolve host: cdp.cloud.unity3d.com Unity 2019.2.15f1 において PC を機内モードにしたところ、何も操作していなくても Unity の Console ウィンドウ…

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