コガネブログ

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

【Unity】Unity 2022 から PolygonCollider2D などでポリゴン数を減らせるようになった

概要 Unity 2022 から PolygonCollider2D などで Use Delaunay Mesh をオンにすると ポリゴン数を減らせるようになった (左がオフ、右がオン) 参考サイト様

【Unity】Asset Import Overrides を設定した時のプロジェクトの起動時間を検証

はじめに Unity Hub でプロジェクトを開く時に コマンドライン引数で Asset Import Overrides を設定した際に プロジェクトの起動時間がどのくらい変化するかを検証してみた 検証環境 Windows 10 Unity 2021.3.1f1 Unity Accelerator 未使用 Parallel Import…

【Unity】IL2CPP Code Generation を Faster (smaller) builds にするとビルドが速くなる

はじめに IL2CPP Code Generation を「Faster runtime」にした場合と 「Faster (smaller) builds」にした場合でビルド時間にどのような差が出るか検証してみた 検証環境 Windows 10 Unity 2021.3.1f1 WebGL ビルド 検証結果 ビルド回数 Faster runtime Faste…

【Unity】WebGL ビルドで Code Optimization を Speed から Size にしたらビルドが速くなった

はじめに WebGL ビルドで Code Optimization を「Speed」にした場合と 「Size」にした場合でビルド時間と成果物のサイズにどのような差が出るか検証してみた 検証環境 Windows 10 Unity 2021.3.1f1 WebGL ビルド ビルド時間 ビルド回数 Speed Size 1 回目 5…

【Unity】Unity Search でアセットの依存関係をグラフにして確認できる

はじめに Unity Search の公式の拡張機能を導入すると アセットの依存関係をグラフで可視化できるようになります 検証環境 Unity 2021.3.1f1 導入方法 上記の記事を参考にしてください 使い方 Unity メニューの「Window > Search > Dependency Graph Viewer…

【Unity】Unity Search ですべてのアセットの依存関係を簡単かつ高速に確認できる

はじめに Unity Search の公式の拡張機能を導入すると アセットの依存関係を簡単かつ高速に確認できます https://github.com/Unity-Technologies/com.unity.search.extensions https://github.com/Unity-Technologies/com.unity.search.extensions/wiki/depe…

【Unity】Unity 2022 から IL2CPP Code Generation の設定場所が変わった

概要 Unity 2021 では IL2CPP Code Generation は Build Settings で設定できたが Unity 2022 では Project Settings で設定するように変化した using UnityEditor; using UnityEditor.Build; public class Example { [MenuItem( "Tools/Hoge" )] public sta…

【Unity】並列インポートを有効にするとプロジェクトの起動やアセットのインポートが速くなる

はじめに Project Settings の「Editor > Parallel Import」を有効にした場合と無効にした場合で プロジェクトの起動時間がどのくらい変化するか検証してみた 検証環境 Windows 10 Unity 2021.3.1f1 Library フォルダを削除した状態で起動時間を検証 検証結…

【Unity】Unity 2021 から標準で使用できるようになったオブジェクトプールの使用例

スクリプト 上記のスクリプトをシーンのゲームオブジェクトにアタッチして実行すると オブジェクトプールの動作を確認できます 実行例 プールにオブジェクトが不足している場合は新規で生成されます プールに非アクティブなオブジェクトが存在する場合は 新…

【Unity】Unity Hub 3 に独自のプロジェクトテンプレートを追加する方法 Unity 2021 対応版

はじめに この記事では Unity Hub 3 で Unity プロジェクトを新規作成する時に 独自のプロジェクトテンプレートを選択できるようにする方法を紹介していきます 環境 Windows 10 Unity 2021.3.1f1 Unity Hub 3.1.2 手順 【Unity のインストール先】\Editor\Da…

【Unity】Unity 2021.2 から MonoBehaviour や ScriptableObject に簡単にアイコンを設定できる

概要 using UnityEngine; [Icon( "Assets/Icons/animal_inu.png" )] public class Example : MonoBehaviour { } Unity 2021.2 から IconAttribute を使うことで MonoBehaviour や ScriptableObject に簡単にアイコンを設定できるようになった

【Unity】Unity 2021.2 から Inspector で参照を設定する時に Object Picker ではなく Unity Search を使用できる

通常 using UnityEngine; public class Example : MonoBehaviour { public Object m_target; } SearchContext using UnityEngine; using UnityEngine.Search; public class Example : MonoBehaviour { [SearchContext( "" )] public Object m_target; } Sear…

【Unity】Unity 2021.2 からLINQ で ToHashSet・SkipLast・TakeLast が標準で使えるようになった

概要 Unity 2021.2 から LINQ で ToHashSet・SkipLast・TakeLast が標準で使えるようになった (もしかしたら Unity 2021.1 から使えるかも?) using System.Linq; using UnityEngine; public class Example : MonoBehaviour { private void Start() { var …

【Unity】Unity 2021.2 から Dictionary で GetValueOrDefault などの拡張メソッドが標準で使えるようになった

概要 Unity 2021.2 から Dictionary の 3 つの拡張メソッドが標準で使えるようになった (もしかしたら Unity 2021.1 から使えるかも?) GetValueOrDefault Remove TryAdd using System.Collections.Generic; using UnityEngine; public class Example : Mo…

【Unity】Unity 2021.2 の Build Settings で設定できる Asset Import Overrides をコマンドライン引数から指定する方法

概要 Unity 2021.2 の Build Settings で設定できる Asset Import Overrides を Unity プロジェクトを開く時のコマンドライン引数で指定したい場合は Unity Hub でプロジェクトの行の右端の三点リーダを押して 「コマンドライン引数を加える」を選択して -ov…

【Unity】Unity 2021.2 で Unity Accelerator を使うとインポートがどれだけ速くなるか

検証内容 テクスチャと 3D モデルが合計約 4,000 個存在する Unity プロジェクトで検証 Library フォルダを削除した状態でプロジェクトを開くのにかかる時間を計測 Unity Accelerator を使う場合と使わない場合でかかった時間を比較 並列インポートの設定は…

【Unity】Unity 2021.2 で並列インポートを使うとインポートがどれだけ速くなるか

検証内容 テクスチャと 3D モデルが合計約 4,000 個存在する Unity プロジェクトで検証 Library フォルダを削除した状態でプロジェクトを開くのにかかる時間を計測 並列インポートが有効な場合と無効な場合でかかった時間を比較 並列インポート有効時の設定…

【Unity】Unity 2020 から便利になった Preset Manager を使ってみる

はじめに Unity 2020 からは Preset や Preset Manager が便利になりました アセットの Preset の場合は、どのフォルダのアセットに どの Preset を反映するか設定できるようになった Preset の一部のパラメータのみを反映できるようになった この記事では P…

【Unity】Unity 2021.1 新機能 - コンパイル開始時に Console のログをクリアできるオプションが追加された

概要 Unity 2021.1 から、Console の「Clear > Clear on Recompile」をオンにすると コンパイル開始時に Console のログをクリアできるようになった

【Unity】Unity 2021.1 新機能 - エディタのウィンドウのタブをダブルクリックすると最大化できる

概要 Unity 2021.1 から、エディタのウィンドウのタブをダブルクリックすると 最大化・最小化を切り替えられるようになった

【Unity】Unity 新機能 - スクリプトから SetPass Calls や Draw Calls を参照できるようになった

概要 using System.Text; using Unity.Profiling; using UnityEngine; public class Example : MonoBehaviour { private string m_statsText; private ProfilerRecorder m_setPassCallsRecorder; private ProfilerRecorder m_drawCallsRecorder; private Pro…

【Unity】Unity 2020.2 新機能 - IL2CPP ビルドがマルチコアを使用するようになり高速化

参考サイト様 Starting in 2020.2.0b2 the process of converting .NET assemblies into C++ files is multi-threaded. For 6-8 core machines the conversion process will see roughly a 60-65% decrease in conversion time. On a 64 core machine conver…

【Unity】Unity 2020.2 新機能 - Hierarchy で選択しているゲームオブジェクトの数が Inspector に表示されるようになった

概要

【Unity】Unity 2020.2 新機能 - Hierarchy でゲームオブジェクトを作成した時に名前変更モードに入るようになった

概要 Hierarchy でゲームオブジェクトを作成した時に名前変更モードに入るようになった Hierarchy のタブを右クリックして「Rename New Objects」をオフにすると 名前変更モードに入らないようになります

【Unity】Unity 2020.2 新機能 - Package Manager に登録されているパッケージに変更があった時に呼び出されるイベントが追加された

概要 using UnityEditor; using UnityEditor.PackageManager; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { void Handle( PackageRegistrationEventArgs args ) { foreach ( var info in args.added ) { Debug.…

【Unity】Unity 2020.2 新機能 - Selection.count が追加された

概要 using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { Debug.Log( Selection.count ); } }

【Unity】Unity 2020.2 新機能 - Unity エディタの位置とサイズをスクリプトから設定できるようになった

概要 using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var position = new Rect( 0, 0, 960, 1280 ); EditorGUIUtility.SetMainWindowPosition( position ); } }

【Unity】Unity 2020.2 新機能 - アセットの GUID を string ではなく GUID 型で取得できるようになった

概要 using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var path = "Assets/Prefab.prefab"; // 従来:string 型で GUID を取得 var guidString = AssetDatabase.AssetPathTo…

【Unity】Unity 2020.1 新機能 - キャッシュサーバへの接続状況が変化した時に呼び出されるイベントが追加された

概要 using UnityEditor; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { AssetDatabase.cacheServerConnectionChanged += _ => Debug.Log( "ピカチュウ" ); } } 参考サイト様

【Unity】Unity 2020.2 新機能 - スクリプトからキャッシュサーバへの接続を切断できるようになった

概要 using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { AssetDatabase.CloseCacheServerConnection(); } }