Search Unity

Unity 2020 LTS / Unity 2021.1におけるUnity Editorの小さな機能改善集

  • 開発者向け

<このページで学べる内容>

Unity 2020 LTSおよび Unity 2021.1の小さな機能改善を紹介します。

はじめに

Unityはゲームエンジンとしての機能追加だけではなく、リリースごとにEditorとしての機能改善も行われています。新機能の紹介ページ公式ブログには、Editorとしての機能追加・改善として「フォーカスされたインスペクターウィンドウ」や、「新しいProgress API」・ 「Background Tasksウィンドウ」が紹介されています。

このようなわかりやすい新機能や大きい改善以外にも、Unity Editorには地味に改善されている機能・ひっそりと追加されている項目が数多くあります。それらの中には、リリースノートにテキストで1行書かれているだけで、把握し辛い項目もたくさんあります。個々の改善は小さなものですが、われわれUnityユーザーの開発者としての生活を、より豊かなものにしてくれる機能改善ばかりです。

本記事では、そんなUnity 2020 LTSおよび Unity 2021.1の小さな機能改善を紹介します。

Unity 2020 LTSでの改善

まずは、Unity 2020 LTSでの機能改善を紹介します。

配列型・List<T>型が、インスペクター上で並び替え可能に

シリアライズしている配列型・List<T>型のフィールドに対して、インスペクター上で要素の並び替えができるようになりました。

また、NonReorderable属性を対象のフィールドにつけることで、Editorでの並び替えを抑制できます。

Unity 2020.2にて機能改善されました。リリースノートは次のものになります。

Editor: Updated Inspector so that you can re-order arrays and lists. To enable this, use the [Reorderable] attribute on your script variables.

最近開いたSceneにメニューから素早くアクセスできるように

最近開いたSceneに「File > Open Recent Scene」から素早くアクセスできるようになりました。

Unity 2020.2にて機能改善されました。リリースノートは次のものになります。

Editor: Added Recent Scenes to the File menu in the Toolbar.

Project Window上のリネームと移動がUndo/Redoできるように

Project Windowで、ファイルのリネームと移動に対してUndo/Redoが可能になりました。

Undoは「Cmd/Ctrl + Z」で、Redoは「Cmd/Ctrl + Shift + Z」で実行できます。

Unity 2020.2にて機能改善されました。リリースノートは次のものになります。

Editor: Added support for Undo and Redo for moving and renaming assets in the Project view.

インスペクター上のフィールドがコピー&ペーストできるように

インスペクター上でフィールドがコピー&ペーストできるようになりました。Unityが提供するVector3やColorなどの多くの型、GameObjectなどへの参照、List<T>、ユーザー定義型などをコピー&ペーストできます。ショートカットはそれぞれ、コピーが「Ctrl/Cmd + C」、Pasteが「Ctrl/Cmd + V」です。また、次の画像のようにContext Menuからも実行できます。

コピーした情報はテキストとしてクリップボードに保存されます。また、コピーした情報をUnityの別のインスタンスにペーストも可能です。

Unityが提供する型のコピー&ペーストは、Unity 2020.1にて機能改善されました。リリースノートは次のものになります。

Editor: Added copy/paste support for most Inspector fields, including vectors, colors, object references, gradients, and animation curves. Copying produces text in the system clipboard. The copied values can be pasted into another Unity instance.

配列、List<T>、ユーザー定義型のコピー&ペーストは、Unity 2020.2にて機能改善されました。リリースノートは次のものになります。

Editor: Added ability to copy and paste arrays and user-written serializable classes and structs in the Inspector.

TransformコンポーネントのPopup Menuから位置、回転、大きさのコピーが可能に

TransformコンポネートのPopup Menuにおいて、位置、回転、大きさの各要素をコピー、ペーストする項目が追加されました。

  • Copy Position
  • Paste Position
  • Copy Rotation
  • Paste Rotation
  • Copy Scale
  • Paste Scale
  • Copy World Placement
  • Paste World Placement

Unity 2020.1にて機能改善されました。リリースノートは次のものになります。

Editor: Added options for copying and pasting position, rotation, and scale individually to the Transform popup menu.

Cut機能とPaste As a Child機能がHierarchy Windowに追加

Hierarchy Windowに「Cut」機能が追加されました。Context Menuから「Cut」を選択するかキーボードショートカット「Ctrl/Cmd + X」でカットできます。カット後は、Context Menuから「Paste」を選択するかキーボードショートカット「Ctrl/Cmd + V」でペーストできます。

また、Hierarchy Windowに「Paste As a Child」機能も追加されました。Context Menuから「Paste As a Child」を選択するか「Shift + Ctrl/Cmd + X」で実行できます。「Paste As a Child」を実行すると、コピーもしくはカット中のGameObjectを、選択中のGameObjectの子GameObjectとしてペーストできます。

Added Cut and Paste As a Child functionality to the Scene Hierarchy

「Create Empty Parent」というContext MenuがHierarchy Windowに追加

Hierarchy Windowで任意のGameObjectを選択中に、Context Menuから「Create Empty Parent」を実行することで、選択中のGameObjectに対して空のGameObjectを親オブジェクトとして生成できるようになりました。

Unity 2020.2にて機能改善されました。リリースノートは次のものになります。

Editor: Create Empty Parent' added to the hierarchy window context menu.

GameObject生成時の親GameObject指定が可能に

Hierarchy WindowのContext Menuに「Set as Default Parent」という項目が加わりました。

  • PrefabをScene ViewにDrag & DropしてGameObjectを作成する
  • キーボードショートカットやHierarchy Windowのボタンから空のGameObjectを作成する

という手順で生成したGameObjectは、「Set as Default Parent」で指定したGameObjectが親オブジェクトになります。

Unity 2020.2にて機能改善されました。リリースノートは次のものになります。

Editor: Added "Set as Default" option to Hierarchy objects so that users can set a custom parent GameObject for GameObjects they drag into the Scene/Hierarchy windows, and GameObjects they create via the GameObject menu.

GameObjectを生成する座標を原点とする設定が追加

今までのUnityでは、Context MenuやHierarchy WindowからGameObjectを生成する場合、現在フォーカスが当たっている座標にGameObjectが生成されました。

Unity 2020 LTSでは、GameObjectが生成される位置を必ず原点(0, 0, 0)に設定できます。「Preferences > Scene View > General > Create Objects at Origin」にチェックをつけると、原点(0, 0, 0)でGameObjectが生成されるようになります。

Unity 2020.2にて機能改善されました。リリースノートは次のものになります。

Editor: Updated GameObject creation from a context menu or Scene so new GameObjects are instantiated at the world origin. (1179419)

コピー時の命名規則を設定できるように

今までのUnityではHierarchy Windowにおいて、「Enemy」という名前のGameObjectを複数回コピーした時、「Enemy (1)」、「Enemy (2)」、「Enemy (3)」という名前になりました。

Unity 2020 LTSでは、この名前の規則を、「Project Settings > Editor > Numbering Scheme」からある程度設定できるようになりました。以下の3個からパターンを設定できます。

  • Prefab (1)
  • Prefab.1
  • Prefab_1

また0埋めがしたい場合、5桁まで指定できます。

Unity 2020.2にて機能改善されました。リリースノートは次のものになります。

Editor: Added a new naming scheme option to Editor Settings. This is set to Prefab (1) by default, or you can choose Prefab.1 or Prefab_1.

Scene Viewに対して複数のオブジェクトを同時にドラッグ&ドロップ可能に

Scene Viewに対してPrefabなどのオブジェクトをドラッグ&ドロップすると、ある程度座標を指定してSceneに配置できます。Scene Viewに対して、今までは複数のPrefabなどのオブジェクトを同時にドラッグ&ドロップできませんでしたが、Unity 2020 LTSでは可能です。なお、Hierarchy Windowに対して複数のオブジェクトを同時にドラッグ&ドロップすることは以前から可能でした。

Unity 2020.2にて機能改善されました。リリースノートは次のものになります。

Editor: Updated Scene View to accept multiple objects when dragging and dropping.

現在選択中のGameObjectの数がインスペクターで表示されるように

Scene ViewやHierarchy Windowで複数のオブジェクトを選択すると、インスペクターに、現在選択中のGameObjectの数が表示されるようになりました。

Unity 2020.2にて機能改善されました。リリースノートは次のものになります。

Editor: Added a label displaying how many Game Objects are currently selected in the Inspector. (1208698)

Scripting Define Symbolsの項目がリストに

今までのUnityでは、「Project Settings > Player > Scripting Define Symbols」は、単一のテキスト入力フィールドで、複数のシンボルを入力する場合「;」で区切っていました。

Unity 2020 LTSでは新たに、リスト形式で入力できるようになり、個別に入力できるようになりました。

Unity 2020.2にて機能改善されました。リリースノートは次のものになります。

Editor: Replaced the text field for Scripting Define Symbols in Project Settings with a foldout string array.

Scene Viewのカメラ設定のコピー&ペーストが可能に

Scene Viewのツールバーのカメラアイコンをクリックすると、Scene Viewのカメラ設定を行うことができます。

Unity 2020 LTSでは、この設定をコピー&ペーストできるようなりました。

Unity 2020.1にて機能改善されました。リリースノートは次のものになります。

Editor: In the Scene view Camera settings window, it is now possible to copy/paste the Camera placement, and use entries in the Widget menu.

キーボードのショートカットに「Camera」の設定項目が追加

「Unity > Shortcuts」(Mac)・「Edit>Shortcuts」(Windows)からキーボードのショートカットが設定可能です。このショートカットの設定項目に、「Camera」が追加されました。

  • Scene ViewのCameraの座標をコピー&ペースト
  • Game ViewのCameraの座標をコピー

がキーボードショートカットだけで可能になりました。

例えば、

  • Game Viewでカメラ位置をコピーし、Scene Viewでペーストして、Game Viewのカメラ位置に移動
  • Scene Viewで特定の位置をコピーし記憶しておいて、操作後、ペーストして元に戻る

などがキーボードショートカットで即座に実行可能です。なお、デフォルトではショートカットは設定されていません。

Unity 2020.2にて機能改善されました。リリースノートは次のものになります。

Editor: Added ability to create keyboard shortcuts to copy and paste camera positions. In the shortcut settings, these are Scene View/Copy Camera Placement, Scene View/Paste Camera Placement and Game View/Copy Camera Placement. No default keys are assigned.

Console Windowで複数行を選択可能に

Console Windowにおいて複数行を選択可能になりました。これにより、複数行をまとめてコピー可能です。また、「Cmd/Ctrl + A」で全ての行を選択できます。

Unity 2020.1にて機能改善されました。リリースノートは次のものになります。

Editor: Added multi-selection to the console. You can now copy multiple entries and use Cmd/Ctrl + A to select all.

Scene Viewの移動・回転・拡大縮小のハンドルの線が太くなり、太さも設定可能に

次の2つの画像はScene Viewのスクリーンショットです。それぞれUnity 2019 LTSとUnity 2020 LTSのものです。違いが分かるでしょうか?

Unity 2020 LTSでは、移動・回転・拡大縮小を扱うハンドルの線が太く、色も明るくなっています。またUnity 2020 LTSでは、移動精度も改善しました。なお、ハンドルの線の太さは「Preferences > Scene View > Handles > Line Thickness」から設定が可能です。

Unity 2020.2にて機能改善されました。リリースノートは次のものになります。

Editor: Improved Move/Rotate/Scale handles: thicker lines, brighter colors, increased movement accuracy, better visibility, and other UI improvements.

UnityEventにリスナーとしてstaticメソッドも登録できるように

今までのUnityでは、UnityEventにstaticメソッドを登録できませんでした。(正確には、SceneまたはProject上に存在するコンポーネントのstaticメソッドは、インスペクターに入力だけはできるのですが、イベント呼び出しができませんでした。)

Unity 2020 LTSでは、staticメソッドでも登録・呼び出しができるようになりました。ただし、SceneもしくはProject上に存在するコンポーネントのクラスメソッドである必要があります。

Unity 2020.1にて機能改善されました。リリースノートは次のものになります。

Editor: UnityEvent can now set persistent listeners on static functions from any class.

Unity 2021.1での改善

Unity 2021.1における、Unity Editorの機能改善を紹介します。

Console Windowにおいて、Clear on Recompileという項目が追加

今までのUnityでは、Console Windowのログの内容がクリアされる条件として、次の2つがありました。

  • Clear on Play
  • Clear on Build

Unity 2021.1では、新たに「Clear on Recompile」が追加されました。

Unity 2021.1にて機能改善されました。リリースノートは次のものになります。

Editor: Clear on Recompile' option added to console's 'Clear' context menu. (1264753)

配列・List<T>のインスペクターにおいて、要素を複数選択できるように

配列・List<T>のインスペクターにおいて、要素を複数選択できるようになりました。ハンドル部分にマウスカーソルを配置し、シフトを押して複数選択してください。

Unity 2021.1にて機能改善されました。リリースノートは次のものになります。

Editor: Arrays/lists inspector UI control now supports multi-selection of array elements.

Gizmoのドロップダウンに検索フィルタ機能が追加

Scene View・Game ViewにはGizmoのドロップダウンがあります。このGizmoのドロップダウンには、たくさんの項目が存在します。このドロップダウンに検索フィルタの機能が追加され、目的の項目を探しやすくなりました。

Unity 2021.1にて機能改善されました。リリースノートは次のものになります。

Editor: Scene/Game view Gizmos drop-down window now has a Search field. (1274775)

TransformコンポーネントのContext Menuのレイアウト配置改善

TransformコンポーネントのインスペクターのContext Menuから、位置や姿勢・大きさのコピー&ペーストが可能です。Unity 2021.1では、このContext Menuのレイアウト配置が改善されました。

Unity 2021.1にて機能改善されました。リリースノートは次のものになります。

Editor: Transform component inspector context menu is better organized now (Copy/Paste/Reset items under their own submenus). (1264870)

タブのヘッダーをクリックすることで、最大化可能に

タブのヘッダーをダブルクリックすることで、各種Windowを最大化できるようになりました。また、もう一度クリックすることで最大化を解除できます。

Unity 2021.1にて機能改善されました。リリースノートは次のものになります。

Editor: Double-click on tab header maximizes/unmaximizes it. (1279177)

ファイル移動時に移動先に同一ファイル名がある場合、確認UIを表示するように

今までのUnityでは、Project Windowにおいて、ファイル移動をするときに移動先のフォルダに同一ファイル名のファイルがある場合、移動ができませんでした。Unity 2021.1からは、次の画像のような確認UIが表示されるようになりました。

Unity 2021.1にて機能改善されました。リリースノートは次のものになります。

Editor: Dragging-and-dropping files across folders inside the Project Window will now prompt the user to choose what to do with a file when there are conflicting file names. (1210088)

配列・List<T>の要素を削除した際の挙動の変更

GameObjcectやアセットなどへの参照を要素として持つ配列・List<T>のインスペクターにおいて、要素を削除した際の挙動が変わりました。

変更前:1度目の削除で要素の参照をNoneに、2度目の削除で要素自体の削除

変更後:1度目の削除で要素自体の削除

Unity 2021.1にて機能改善されました。リリースノートは次のものになります。

Editor: Deleting an object reference array entry in the Inspector now removes that array element. Previously first deletion set the element reference to none, and the second deletion deleted the element.

おわりに

本記事では、Unity 2020 LTSおよび Unity 2021.1の小さな機能改善を紹介しました。

わかりやすい新機能や大きな機能改善以外にも、Unity Editorには目立たないけれど改善されている機能・ひっそりと追加されている項目が数多くあります。カンファレンスでの新機能紹介セッションでは時間の関係上、そのような多数の小さな改善を説明しきれません。リリースノートに一行書いてあるだけの改善がほとんどで、「こんな改善があったのか。知らなかった」という方も多いのではないでしょうか。

個々の改善は小さなものですが、Unity開発者としてのわれわれの生活を、より豊かなものにしてくれる機能改善ばかりです。続くUnity 2021.2やUnity 2022.1の機能改善にも期待しつつ、みなさんのUnityとの生活がより豊かになることを祈っています。

著者について

名前:むろほし(@RyotaMurohoshi)

プロフィール:

ゲーム個人趣味開発者として、小規模な2Dモバイルゲームを開発・公開。日本Androidの会 Unity部 運営メンバー。コミュニティ活動としてC#、LINQ、Tilemapを紹介・啓蒙。共著書に「Unityゲーム プログラミング・バイブル 2nd Generation(発行・発売:株式会社 ボーンデジタル)」など。Microsoft MVP for Deverloper Technologies 2016/10/01~。

Twitter :https://twitter.com/RyotaMurohoshi

GitHub : https://github.com/RyotaMurohoshi

この記事はいかがでしたか?