Chapter 12. Editor Extensions

In this chapter, we will cover the following topics:

  • An editor extension to allow pickup type (and parameters) to be changed at design time via a custom Inspector UI
  • An editor extension to add 100 randomly located copies of a prefab with one menu click
  • A progress bar to display proportion completed of Editor extension processing
  • An editor extension to have an object-creator GameObject, with buttons to instantiate different pickups at cross-hair object location in scene

Introduction

One aspect of game development in general (and inventories as our particular examples in this chapter) is the distinction about when we undertake an activity. Run-time is when the game is running (and when all our software and UI choices take affect). However, design-time is the time when different members of our game design team work on constructing a wide range of game components, including the scripts, audio and visual assets, and the process of constructing each game level (or "scene" in Unity-speak).

In this chapter, we will introduce several recipes that make use of Unity's Editor extensions; these are scripting and multimedia components that enable a game software engineer to make design-time work easier and less likely to introduce errors. Editor extensions allow workflow improvements, thus allowing designers to achieve their goals quicker and more easily; for example, removing the need for any scripting knowledge when generating many randomly located inventory pickups in a scene via a menu choice, or editing the type or properties of pickups being hand-placed in different locations in a level.

While Editor extensions are quite an advanced topic, having someone on your team who can write custom editor components, such as those we illustrate, can greatly increase the productivity of a small team with only one or two members who are confident at scripting.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.117.246.159