コガネブログ

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

【Unity】Unity 2020.1 新機能 - エディタ右下に非同期タスクの進捗を表示できる「Progress」クラスが追加された

概要 using System.Collections; using Unity.EditorCoroutines.Editor; using UnityEditor; using UnityEngine; public sealed class Example : EditorWindow { [MenuItem( "Tools/Open" )] private static void Open() { GetWindow<Example>(); } private void OnGU</example>…

【Unity】Unity 2020.2.0a18 新機能 - IL2CPP ビルドでスクリプトの変更がなければ高速にビルドされるようになった

概要 Unity 2020.2.0a18 からスクリプトを変更していない状態で IL2CPP ビルドする場合、 高速にビルドされるようになった これでアセットの編集のみを行った場合のイテレーションが高速になります 検証結果 項目 ビルドにかかった時間 初回ビルド 220 秒 2…

【Unity】Unity 2020.2a 新機能 - 配列やリストを Inspector で並べ替えられるようにする「Reorderable」属性

概要 using System.Collections.Generic; using UnityEngine; public class Example : MonoBehaviour { [Reorderable] public string[] m_names; [Reorderable] public Vector3[] m_positions; [Reorderable] public List<Color> m_colors; } 参考サイト様</color>

【Unity】Unity 2020.1 新機能 - RectMask2D でソフトマスクが使用できるようになった

概要

【Unity】Unity 2020.1 新機能 - Console ウィンドウのログが複数選択可能 + コピーできる

概要 ピカチュウ UnityEngine.Debug:Log (object) Example:Awake () (at Assets/Example.cs:9) ピカチュウ UnityEngine.Debug:Log (object) Example:Awake () (at Assets/Example.cs:9) ピカチュウ UnityEngine.Debug:Log (object) Example:Awake () (at Ass…

【Unity】Unity 2020.1 新機能 - Inspector で Vector、Color、UnityEngine.Object、Gradient、AnimationCurve などがコピペできるようになった

概要 using UnityEngine; public class Example : MonoBehaviour { public Vector3 m_vector; public Color m_color; public Example m_example; public Material m_material; public Gradient m_gradient; public AnimationCurve m_curve; }

【Unity】Unity 2020.1 新機能 - ビルド時にプリプロセッサ定義を指定できる「BuildPlayerOptions.extraScriptingDefines」

概要 Unity 2020.1 以前 using UnityEditor; [InitializeOnLoad] public static class Example { static Example() { PlayerSettings.SetScriptingDefineSymbolsForGroup ( BuildTargetGroup.Android, "ENABLE_RELEASE;ENABLE_OFFLINE" ); var options = new…

【Unity】Unity 2020.1 新機能 - .unitypackage でインポートしたアセットの一覧を取得できる「onImportPackageItemsCompleted」

概要 using UnityEditor; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { AssetDatabase.onImportPackageItemsCompleted += paths => { foreach ( var path in paths ) { Debug.Log( path ); } }; } }

【Unity】Unity 2020 新機能 - ゲームオブジェクトの Cut & Paste が可能

概要 (Unity 2020.1 で追加されたか 2020.2 で追加されたかは未確認) Ctrl + X、Ctrl + V でも使用可能

【Unity】Unity 2020 新機能 - コンポーネントの Inspector を別窓で表示できる

概要 (Unity 2020.1 で追加されたか 2020.2 で追加されたかは未確認) コンポーネントを右クリックして「Properties...」を選択すると そのコンポーネントの Inspector を別窓で表示できる

【Unity】Unity 2020 新機能 - Image や Text で Raycast Target の範囲を調整できる「Raycast Padding」

概要 (Unity 2020.1 で追加されたか 2020.2 で追加されたかは未確認) Image や Text などの UI オブジェクトに Inspector に 「Raycast Padding」が追加されており、これに負数を設定すると 当たり判定の領域を広げることができる

【Unity】Unity 2020.1 新機能 - ゲームオブジェクトやアセットを複製する時の連番の付き方を設定できる

概要 Game Object Naming:ゲームオブジェクト複製時の連番の付き方 Game Object Digits:ゲームオブジェクト複製時の連番の桁数 Space Before Number in Asset Names:アセット複製時に連番の前に半角スペースを入れるか

【Unity】Unity 2020.1 新機能 - Sprite Atlas バージョン2が追加された(実験段階)

概要 詳細は https://docs.unity3d.com/2020.1/Documentation/Manual/SpriteAtlasExperimental.html

【Unity】Unity 2020.2 新機能 - Scripting Define Symbols が並び替え可能なリストの表示形式に変更された

概要 並び替えが可能になった 「Copy Defines」ボタンを押すとセミコロン区切りの文字列でコピーできる 例:ODIN_INSPECTOR;ENABLE_RELEASE;ENABLE_OFFLINE セミコロン区切りの文字列を貼り付けて Apply することも可能

【Unity】Unity 2019.3 新機能 - 描画間隔を設定できる「OnDemandRendering.renderFrameInterval」

概要 例えば、このように描画されるシーンで OnDemandRendering.renderFrameInterval = 30; 上記のコードを記述すると 30 フレームごとにゲーム画面の描画が更新されるようになります これまでも Application.targetFrameRate を使用すれば同じようなことが…

【Unity】Unity 2019.3 新機能 - プレハブモードの dirty フラグが立った時に呼び出されるコールバック

概要 using UnityEditor; using UnityEditor.Experimental.SceneManagement; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { PrefabStage.prefabStageDirtied += OnPrefabStageDirtied; } private static void On…

【Unity】Unity 2019.3 新機能 - シーンの dirty フラグが立った時に呼び出されるコールバック

概要 using UnityEditor; using UnityEditor.SceneManagement; using UnityEngine; using UnityEngine.SceneManagement; [InitializeOnLoad] public static class Example { static Example() { EditorSceneManager.sceneDirtied += OnSceneDirtied; } priva…

【Unity】Unity 2019.3 新機能 - Android SDK や NDK のパスを参照できるプロパティが追加された

概要 using UnityEditor; using UnityEditor.Android; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { Debug.Log( AndroidExternalToolsSettings.ndkRootPath ); Debug.Log( AndroidExternalTo…

【Unity】Unity 2019.3 新機能 - InitializeOnEnterPlayMode 属性を指定した関数は Unity 再生時に呼び出される

概要 using UnityEditor; using UnityEngine; public static class Example { [InitializeOnEnterPlayMode] private static void Hoge() { Debug.Log( "ピカチュウ" ); } } InitializeOnEnterPlayMode 属性を指定した関数は Unity 再生時に呼び出される

【Unity】Unity 2019.3 で UIElements を使用して Inspector の余白を減らす

使用例 Before After 使い方 上記のような「common.uss」という名前のファイルを Unity 2019.3 のプロジェクトの 「Assets/Editor/StyleSheets/Extensions」フォルダに追加することで Inspector の余白を減らすことができます (正常に反映されない場合は Un…

【Unity】Unity 2019.3 には高速にプレイモードを開始する実験機能が存在する

はじめに 上記の公式の記事によると、ドメインのリロードをスキップすることで 高速でプレイモードに入れるようになる実験的な機能が Unity 2019.3 には存在するとのことなので、触ってみました 概要 デフォルトでは、プレイモードに入るまでにこのくらい時…

【Unity】Unity 2019.1 や 2019.2 から RuntimeInitializeOnLoadMethod の引数に渡せる列挙型の種類が増えていた

はじめに using UnityEngine; public class Example : MonoBehaviour { [RuntimeInitializeOnLoadMethod( RuntimeInitializeLoadType.BeforeSceneLoad )] private static void Init() { Debug.Log( "ピカチュウ" ); } } ゲーム開始時に関数を呼び出してくれ…

【Unity】Unity 2020.1.0a7 新機能 - FindObjectOfType で非アクティブなオブジェクトを検索できるようになった

概要 using UnityEngine; public class Example : MonoBehaviour { private void Start() { // 非アクティブなオブジェクトは検索しない var result1 = FindObjectOfType<BoxCollider>(); // 非アクティブなオブジェクトも検索する var result2 = FindObjectOfType<BoxCollider>( true </boxcollider></boxcollider>…

【Unity】Unity 2019.2 以降なら Tilemap の Tile Palette で選択されているパレットをスクリプトから取得・設定できる

概要 using UnityEditor; using UnityEditor.Tilemaps; using UnityEngine; public static class Example { [MenuItem( "Tools/Log" )] private static void Log() { // 選択中のパレットを取得する Debug.Log( GridPaintingState.palette ); // 選択中のパ…

【Unity】Unity 2019.2 以降なら Tilemap の Tile Palette で選択されているブラシをスクリプトから取得・設定できる

概要 using System; using System.Collections.Generic; using System.Reflection; using UnityEditor; using UnityEditor.Tilemaps; using UnityEngine; // Tile Palette で使用できるすべてのブラシを管理するクラス public static class GridPaletteBrush…

【Unity】Unity 2019.2 以降なら Tilemap の Tile Palette の Active Tilemap をスクリプトから取得・設定できる

概要 using UnityEditor; using UnityEditor.Tilemaps; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { // Active Tilemap が変更された時に呼び出される GridPaintingState.scenePaintTargetChanged += OnChange…

【Unity】11種類以上のモバイルデバイスでゲーム画面がどのように表示されるかエディタ上で確認できる「Device Simulator」が Package Manager からインストールできるようになった

はじめに https://docs.unity3d.com/Packages/com.unity.device-simulator@1.0/manual/ 11種類以上のモバイルデバイスでゲーム画面がどのように表示されるか エディタ上で確認できる「Device Simulator」が Package Manager からインストールできるようにな…

【おすすめスライド】「【Unity道場】ゲーム制作に使う数学を学習しよう」

スライド

【おすすめスライド】「Unity2019 注目機能まとめ」

スライド

【Unity】Unity 2019.3b 新機能 - Git からパッケージを追加する

概要 Unity メニューの「Window > Package Manager」から パッケージマネージャを開いて「+ > Add package from git URL...」を押して Git の URL(.git で終わる文字列)を入力すると Git からパッケージを追加できます