コガネブログ

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

【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(); } }

【Unity】Unity 2020.2 新機能 - Project ウィンドウの「Create」からプレハブを作成できるようになった

概要 Project ウィンドウの「Create」からプレハブを作成できるようになった

【Unity】Unity 2020.2 新機能 - Vector3Int.forward と Vector3Int.back が追加された

概要 using UnityEngine; public class Example : MonoBehaviour { private void Update() { Debug.Log( Vector3Int.forward ); // (0, 0, 1) Debug.Log( Vector3Int.back ); // (0, 0, -1) } }

【Unity】Unity 2020.2 新機能 - Time クラスに double 型のプロパティが追加された

概要 using UnityEngine; public class Example : MonoBehaviour { private void Update() { Debug.Log( Time.timeAsDouble ); Debug.Log( Time.timeSinceLevelLoadAsDouble ); Debug.Log( Time.fixedTimeAsDouble ); Debug.Log( Time.unscaledTimeAsDouble …

【Unity】Unity 2020.2 新機能 - EditorWindow を閉じる時に変更を保存するか確認できるようになった

概要 using UnityEditor; using UnityEngine; public class Example : EditorWindow { [MenuItem( "Tools/Hoge" )] private static void Open() { var window = GetWindow<Example>(); window.saveChangesMessage = "変更があります。保存しますか?"; } private void</example>…

【Unity】Unity 2020.2 新機能 - プレハブモードの「Auto Save」のチェックボックスを非表示にできるようになった

概要 プレハブモードの時は Scene ビューに「Auto Save」のチェックボックスが表示されますが Project Settings の「Editor > Prefab Mode > Allow Auto Save」をオフにすることで 「Auto Save」のチェックボックスを非表示にして Auto Save を無効化できる…

【Unity】Unity 2020.2 新機能 - UnityWebRequest の isNetworkError、isHttpError が非推奨になった

概要 代わりに UnityWebRequest.result を使用します using System; using System.Collections; using UnityEngine; using UnityEngine.Networking; public class Example : MonoBehaviour { private IEnumerator Start() { var request = UnityWebRequest.G…

【Unity】Unity 2020.1 新機能 - CS0169 と CS0649 の警告を無効化できるようになった

概要 Unity メニューの「Edit > Project Settings...」から Project Settings ウィンドウを開いて 左メニューから「Player」を選択して「Suppress Common Warnings」をオンにすることで CS0169 と CS0649 の警告を無効化できます using UnityEngine; public …

【Unity】Unity 2020.1 新機能 - 単一行シリアライズ

概要 これまでは Unity がアセットの YAML を保存する時は 一行80文字を超えた場合に改行されていたが Unity 2020.1 からは80文字制限が無くなってシリアライズの処理が高速になったらしい これまで m_MySerializedReference: {fileID: 10304, guid: a2eb3ee…