80 Tips To Increase Your Productivity in Unity 2022 LTS
80 Tips To Increase Your Productivity in Unity 2022 LTS
80 Tips To Increase Your Productivity in Unity 2022 LTS
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Editor workflows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Shortcuts Manager. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Focused Inspectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Presets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Scene visibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Scene picking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Searching. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Query Builder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Artist workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2D artist tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Prefab workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Material Variants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
TextMeshPro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Splines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Snapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Animation workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Optimization tip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
UI Toolkit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Progressive Lightmapper. . . . . . . . . . . . . . . . . . . . . . . . . . 47
Light Probes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Developer workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Attributes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Custom menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Script templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Addressables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Preprocessor directives. . . . . . . . . . . . . . . . . . . . . . . . . . . 72
ScriptableObjects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
More resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Managing assemblies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Debugging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Device Simulator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
More resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Team workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Unity Accelerator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
This guide provides over 80 tips on how to work faster with Unity’s programmer
and artist toolsets. It covers many of the new features in Unity 2022 LTS along
with plenty of time-saving steps and workflows that have been a part of Unity
for years.
When you work in Unity every day, each second or mouse click adds up. We
want you to be able to waste less time and be more productive. Whether you’re
a new or experienced Unity developer, this guide can help you to speed up
workflows in every stage of your game development.
Go to the Unity 2022 LTS site or to the New in Unity 2022 section of Unity
documentation to get the full story of its new features and capabilities.
Many teams at Unity work to improve the quality of life for our creators, such as
the Accelerate Solutions team, who contributed their valuable knowledge to this
guide. The Accelerate Solutions team supports a plethora of Unity customers to
help them get the most out of the engine. They identify, and help to optimize,
critical points in projects for speed, stability, and efficiency.
Unity 2022 LTS includes multiple improvements that speed up Editor workflows,
such as new search options to help you find things faster, granular capabilities
for the Shortcut Manager, optimizations for large-scale projects, improvements
to Play mode, more flexible layouts and advanced styling options in UI Toolkit,
and much more.
Collectively, these improvements can save you hours of work over days and
weeks because you can iterate faster and develop more efficiently. Try out
these tips and shortcuts to go faster in Unity.
Here are some of the behind-the-scenes Editor improvements in Unity 2022 LTS:
— Less time taken by static batching when entering Play mode or making a
build
— Optimized prefab editing: 20% off the cost of changing a large prefab
Updates to the Package Manager in Unity 2022 LTS help you save time while
you import and organize your packages:
— Support for multiple selection in the Package Manager window; apply the
same operation to multiple packages at once, rather than applying each
operation individually
— A Check for Updates option added to the Refresh list in the My Assets list;
use this option to check for updates to all packages on your computer, not
just the ones that are visible in the My Assets list
Bind any key or combination of keys, to a Unity Editor command. For example,
the R key is bound by default to the Scale tool in the Tools context.
The Binding Conflicts Category also identifies if you have a shortcut assigned
to two commands that can be executed at the same time. Use the interface
to resolve such conflicts. Note: You can assign the same shortcut to multiple
commands if they are in different contexts and cannot execute at the same time.
Frame Selected F F
View/Move/Rotate/Rect/
Q/W/E/R/T Q/W/E/R/T
Transform
Vertex Snap V V
The Focused Inspector window allows you to inspect the properties for a
specific GameObject, component, or asset. It always displays the properties of
the item you opened it for, even if you select something else in the Scene.
Presets enable you to customize the default state of anything in your Inspector.
Creating a Preset lets you copy the settings of a component or asset, save it as
an asset, then apply the same settings to another item later.
Click the Preset icon to the top right of the component. Click Save current to…
to save the Preset as an asset. Click one of the available Presets to load a set of
values.
In this example, the Presets contain different Import Settings for 2D textures depending on usage (albedo, normal, or utility).
— Create a GameObject with defaults: Drag and drop a Preset asset into the
Hierarchy in order to create a new GameObject with the corresponding
component filled in with Preset values.
— Pro tip: Create multiple Presets per Type, and rely on the Filter to
associate the correct Preset by name.
— Save and load manager settings: Use Presets for a Manager window, so
the settings can be reused; for example, if you plan to reapply the same
Tags and Layers or Physics settings, Presets can reduce set up time for
your next project.
Scene visibility
As your Scene grows larger, you can temporarily hide specific objects so that
you can select and edit your GameObjects with more ease.
Use the toolbar in the Hierarchy window to enable or disable the Scene visibility
for GameObjects in the viewport.
Icon Status
The GameObject and its children are visible, but they only appear
when you hover over the GameObject.
Toggle the Scene view control bar on or off to override the global Scene visibility.
Use Isolation View to concentrate on a specific object and its children. Select
the GameObject in the Hierarchy window and press Shift + H to toggle it on and
off. This overrides your other Scene visibility settings until you exit.
Remember that you can always use the Shift + spacebar shortcut to maximize
the viewport and hide the rest of the Editor as well.
Hierarchy pickability
Because you can toggle pickability for a whole branch or a single object, some
GameObjects may be pickable but have children or parents that are not. The
following icons differentiate their status.
Icon Status
You can pick the GameObject, but you cannot pick some of its
children.
You cannot pick the GameObject, but you can pick some of its
children.
You can pick the GameObject and its children (only appears when
you hover over the GameObject).
Search functionality in the Editor has improved in the recent LTS releases, and in
2022 LTS, there are several ways for you to search efficiently in Unity. Besides
the search functionality in the Hierarchy and Project views, you can also use the
search button icon in the main menu bar or use the Ctrl + K shortcut.
This opens a search window where it’s easy to filter your search. The top section
of the Landing page allows you to select a search area (search provider) for
your search. Clicking on a search area block will filter out the queries and recent
searches below. Double-clicking on a search area block will insert the filter
token of this area in the search field to help you narrow down your search.
The middle section shows a list of queries available for the currently selected
search area. You can click on any query to execute it. The queries are either
SearchTemplates, queries generated dynamically for a given search area
when the [SearchTemplate] attribute is used in code, or they can be normal
SearchQuery that have been tagged with the Scene Template attribute.
When searching for names, you can also search by type. Use the dropdown to
select Type or the t: shorthand syntax, e.g., t:scene (to search all scenes) or
t:texture (to search all textures).
Additionally, the Search window lets you visualize objects in various ways:
Compact list view, big list view or multiple sizes of grid icons. You can also
display objects in a table.
This is practical if you want to sort items by names (or description) and
especially for extracting properties from SearchItems using a Search Expression
and creating a column layout. Additionally, when saving a Search Queries Unity
persists all the Search view state, including any column specification. This
allows you to create your own “Data Explorer” that is useful to compare multiple
property values against one another.
Query Builder
You can type a few characters in the Search window to find objects quickly. But
complicated and precise queries are also possible with the rich capabilities of
the Search language syntax. However, it can be challenging to remember which
filters are available for a specific search area provider or what is the name of a
property of a specific type so you can compare it against a threshold value.
The new Query Builder workflow should help you craft complicated queries and
explore your project.
You can toggle each GameObject’s Inspector between Normal and Debug mode.
Click the More Items ( ⁝ ) button to open the context menu and choose the
desired mode.
Debug Mode only shows the selected component’s properties and their values.
It also displays private variables, although you cannot edit them.
These 10 small but powerful enhancements will help you further speed things up
in the Editor.
1. Cut and paste GameObjects in the Hierarchy window. You can also Paste
As Child from the context menu.
Paste As Child
2. Use the F shortcut to frame the selected object in Scene View. This now
handles more object types and does a better job of framing them. In Play
Mode, press Shift + F to lock onto a selected GameObject that is moving.
A volumetric render
5. Use the Layers menu to toggle off the visibility of any Layers (such as UI)
that may obscure your Scene view. Lock a Layer to avoid changing its state
accidentally.
7. Modify the Numbering Scheme for duplicate objects in Project Settings >
Editor.
Define options for the naming here as well as the padding and spacing of
the instance number.
Numbering Scheme
8. Use the EditorOnly tag to designate GameObjects that will not appear in a
build of the application.
EditorOnly
Playmode tint
In the event that you make a change in Play Mode that you want to
keep, use the More Items ( ⁝ ) button. Copy the component or transform
values while playing, then paste from the clipboard upon exiting Play
Mode. Alternatively, if you have multiple component changes, drag out a
temporary Prefab to save your work there.
More resources
There are many ways that 2D and 3D artists, animators, and level designers
can save time in Unity and work more efficiently with in-context iteration. In
Unity 2022 LTS specifically, there are smoother workflows for customizing the
Editor with UI Toolkit, advanced new options for visual quality and performance
with HDRP and URP, improvements to 2D tools, and more. See the Unity 2022
release notes for a comprehensive list of new features, improvements, and fixes.
2D artist tips
Many of the 2D tips and improvements outlined here are used in Happy Harvest,
a demo of a 2D top-down farming simulation game that shows what’s possible
with 2D lights, shadow effects, skeletal animation, sprite libraries, visual effects,
and more in Unity 2022 LTS.
A series of in-depth articles are available to read alongside the demo. These
articles explain how to create the 2D visuals in Happy Harvest so you can add
them to your own projects:
Finally, you can explore many more 2D art and optimization techniques in the
e-book 2D game art, animation, and lighting for artists.
Sprite Atlas V2 is out of preview in Unity 2022 LTS, fully working in the
Editor, allowing users to experience the benefits of atlassing sprites without
entering Play mode or making a build. It also supports Unity Accelerator,
and, as of 2021.2, it provides full support for folders as packable objects.
Sprite Atlas V2 uses the functionalities exposed by AssetDatabase V2
(ADBV2), such as Cache Server support.
Add Sprites into the Objects for Packing list, and enable include in build to
include your Sprites with the project. Use the Packing options to determine
how closely the Sprites can be laid out in the atlas and whether they can be
rotated. Once the Textures are consolidated, Unity can issue a single draw
call to access the packed Textures with a smaller performance overhead.
In Unity’s UI system, atlasing and the GameObject structure matter for batching.
2. A SpriteAtlas can reduce draw calls if you organize the UI layout correctly.
Unity scans the GameObjects’ Hierarchy top to bottom in order to batch
objects that use the same texture and material. See our guide on Unity UI
optimization tips for more best practices.
3. The 2D Pixel Perfect Package contains a Pixel Perfect Camera that ensures
your pixel art remains crisp and clear at different resolutions, so you can
avoid manual scaling of your art assets.
Read how SouthPAW Games created their first pixel art game using Unity’s
2D tools in 2D Pixel Perfect for a crisp conquest in Skul: The Hero Slayer.
4. Use the PSD Importer Package if you want to work with Photoshop file
assets, both .PSD and .PSB files. Skip exporting separate sprites, and
import a .PSD or .PSB file. This allows you to import multiple sprites from
the various layers and generate a Sprite Sheet or 2D Character Rig. See
this guide on speeding up your 2D workflows with the PSD Importer.
In Unity 2022 LTS, you can control which layers to import from a Photoshop
file by selecting them from a tab in the PSD Importer Inspector. You can
also set padding between sprites in mosaic mode.
One example of how 2D Sprite Shape is used in the latest 2D sample project
In the built-in render pipeline, look in Edit > Project Settings > Graphics.
Choose Custom Axis for the Transparency Sort Mode. For example, use
(0, 1, 0) for the Transparency Sort Axis to sort along the Y axis from top to
bottom.
10. Avoid overdraw to improve performance. Switch the Mesh Type to Tight in
the Import Settings for each Sprite. Merge overlapping graphics in a single
Sprite whenever possible, and try to disable Sprites that could be in a
background layer with no use in the game. This reduces the overdraw area
and potential overlap with neighboring Sprites.
Unity 2022 LTS brings improvements to the Sprite Swap workflows with
streamlined Sprite Swap keyframing in the Animation window.
Swapping sprite libraries from the initial dummy character in Happy Harvest to a male and female variation that share
the same categories and labels.
13. Other improvements for 2D animators in Unity 2022 LTS are Sprite
deformation and IK Solvers in Animation preview windows. There is also
an added Character Pivot tool in the Skinning Editor. You can use the new
asset upgrading tool to upgrade older Sprite Library Assets and Animation
Clips to the latest version.
— Draw the character in a neutral position with arms and legs straight. If
parts of the body are bent, it can cause issues when you’re animating.
— Make the resolution a little higher than your game’s Pixels per Unit (PPU)
suggests. A resolution might look good at rest, but rotating and stretching
images can cause pixelation.
— If you’re using 2D lighting extensively in your game and want to make the
most of normal maps, don’t paint the light and shadow onto your sprite.
Instead, paint nondirectional shadows. This technique is called ambient
occlusion. Your sprite will look better, but you’ll want to avoid using any
directional light like sunlight.
— Body part layers swapped using the Sprite Swap feature should be
grouped accordingly. For example, all layers with mouth positions should
be placed in a group called “mouth” in the image-editing app.
— Often, a simple setup with 2D IK will work well for a decorative element.
That’s what was done for the pig prefab from Happy Harvest. Another
example of a simple background animation is the swinging movement of
the street lamps in Happy Harvest, that’s achieved with an animation clip
that plays in a loop and only changes the rotation of the sprite over time,
without the need for rigging.
— In Happy Harvest, the water effect and the breeze moving the bushes and
trees are special effects created with the Shader Graph and VFX Graph.
Animating elements with different techniques, including simple animations, frame-by-frame, and effects created with the Shader Graph and VFX Graph
— Lights and normal maps are used everywhere in Happy Harvest to create
the illusion of volume. You can use normal maps with Spot, Point, and
Freeform lights. Remember that you need to enable normal maps in the
light object to use them in the sprites (two quality settings are available:
Fast and Accurate).
— A quick and easy way to fake shadows is with a blob shadow, a blurred
sprite that also uses negative lighting, which you can stretch to represent
the ambient occlusion that an object produces on the ground.
The bushes in Happy Harvest appear to have depth thanks to normal maps (enabled by the normal map option in the Light component).
Prefabs allow fully configured GameObjects to be saved in the project for reuse.
The current workflow with Prefabs lets you build your scenes flexibly and efficiently.
In Dragon Crashers, each unit overrides the base unit. The Overrides dropdown shows how the Prefab differs
from the original.
Create your Prefab as an Asset in the Project, then edit it in isolation in Prefab
mode. Working with the Prefab by itself helps prevent applying unintended
overrides. Make your changes with confidence with the background grayed out.
Isolate the Prefab in Prefab mode to avoid unintended overrides. Note how smaller prefabs make up this Nested Prefab.
Nested Prefabs allow you to parent Prefabs to one another. You can now create
a larger Prefab, such as a building, composed of smaller Prefabs for the rooms
and furniture. This makes it efficient to split development of your assets over a
team of multiple artists and developers, who can all work on different parts of
the content simultaneously.
A Prefab Variant allows you to derive a Prefab from other Prefabs, much like
inheritance in object-oriented programming. To change the Variant, just override
certain parts without worry of impacting the original. You can also remove all
modifications and revert to the base Prefab at any time.
Alternatively, if you want to change all of your Variants at once, apply changes
directly onto the base Prefab itself.
See Unity documentation for more information about working with Prefabs.
Material Variants
In Unity 2022 LTS, Material Variants allow for the reuse and improved
management of materials that share most surface properties.
With Material Variants, you can create templates or material prefabs. Based on
a base template, you can create variants that share common properties with
the template material and override only the properties that differ. If you change
common and non-overridden properties in the template material, the changes
automatically reflect in the variant material. You can also lock certain properties
on material so they can’t be overridden in the variants.
An example of Material Variants; these all share the same base material and only differ in the color property
In a more complex setup, you can create variations of a variant material. The
material inheritance hierarchy promotes reusability and improves iteration speed
and scalability of material authoring in your project.
TextMeshPro replaces Unity’s UI Text and the legacy Text Mesh. Installed via
the PackageManager, TextMeshPro uses custom shaders and advanced text
rendering techniques to deliver flexible text styling and texturing.
Use TextMeshPro to get access to features like character, word, line, and
paragraph spacing, kerning, justified text, links, over 30 rich text tags available,
support for Multi Font and sprites, custom styles, and more.
The Splines package in Unity 2022 LTS enables you to create spline paths
in your game for rivers, roads, camera tracks, and other path-like visuals.
Depending on the type of environment you’re working on, splines can be an
important component for your level designs.
Examples of use cases for splines: A road through a forest, an animation path, tubes, or wire meshes, and you can find
other samples showcasing all the possibilities in the Splines Package Manager page once it’s installed.
Create a new spline via GameObject > Spline > Draw Splines Tool. A new
GameObject will be created in the Hierarchy with the Spline component
attached and the tooling ready to use.
The handles and controls for splines in Unity resemble vector or 3D drawing tools from well-known DCC applications.
Once you’ve created a spline, both programmers and artists can use it in
interesting ways. For example, programmers can read points of the spline and
use them in the game logic with the APIs.
Working on a grid helps you fit your Prefabs together with less guesswork and
greater consistency. Design your level so the pieces connect at scale, making it
easier to rearrange and reassemble them.
If you are constructing your Scenes from modular assets, use grid planes to
align your GameObjects with each other. Rather than manually typing in round
numbers into the Inspector, consider letting the grid snapping tools set your
Transforms more quickly and precisely.
Unity provides three types of snapping to help you assemble your scenes quickly:
— World grid snapping: Make sure the Move tool has the handle orientation
set to Global. Hold Ctrl (Windows) or Cmd (macOS) to snap an object to
the world grid increments set in Edit > Grid and Snap Settings.
— Surface snapping: Hold Shift and Ctrl (Windows) / Cmd (macOS) to snap
an object to the intersection of any Collider.
— Vertex snapping: Hold down the V key while the Move tool is active. This
moves the current GameObject to the vertex position of another mesh. Before
moving, hover the mouse over one vertex of the active GameObject to make
that vertex act as a pivot. Shift-V toggles Vertex snapping mode on/off.
— Move the GameObject using Vertex snapping with the V key or Shift-V.
Hover the cursor over a vertex as a pivot. Snap to another vertex as usual.
— Hold down the Shift and Ctrl (Windows) / Cmd (macOS) key combo to
drag along the surface of the target Mesh.
— Release the mouse button and V key once the object is at the desired
location.
Open the Grid and Snap window from either Edit > Grid and Snap Settings or
from the grid visibility drop-down menu.
Ctrl + ] (Windows) or
Increase Grid Size
Cmd + ] (macOS)
Ctrl + [ (Windows) or
Decrease Grid Size
Cmd + [ (macOS)
Ctrl + \ (Windows) or
Align Selection to Grid
Cmd + \ (macOS)
Need even more control? Consider using the ProGrids package for even finer
control of your snapping and grid planes.
Animation workflow
You can animate just about any property in Unity without writing a single line of
code using the Animation Window (Window > Animation > Animation). In
addition to modifying movement, you can even drive parameters defined in your
custom scripts.
Create Animation Clips here, or work in a third-party DCC package of your choice
(Autodesk® Maya®, Blender, etc). Think of each clip as an individual unit of motion.
Edit the AnimationClip Asset within the window in either Dopesheet or Curve
mode. Use K or C shortcuts, respectively, to toggle between the two. Use
standard shortcuts to frame all keyframes (A) or frame selected keyframes (F).
Once you have several Animation Clips for your GameObject, the
AnimatorController acts as a state machine to create a flowchart-like graph
between them.
Optimization tip
— By default, Unity imports animated models with the Generic Rig, but
developers often switch to the Humanoid Rig when animating a character.
A Humanoid Rig calculates inverse kinematics and animation retargeting
each frame, even when not in use. If you don’t need these specific
features, save on CPU time and use the Generic Rig.
Gizmos are small overlay graphics associated with your GameObjects. Use them
to navigate the viewport or locate specific objects.
Modify the icons for a GameObject using the Select Icon menu. Choose Other
to define your own icon.
You can also create gizmos with scripts and make them interactive. For example, a
gizmo could help you define a volume or area of influence for a custom component.
Use the Gizmos dialogue in the Scene control bar to toggle specific gizmos or
globally enable/disable all of them.
See Creating Custom Gizmos for Development for usage examples. Also, review
the APIs for Gizmos and Handles.
A screen shot from the Unity demo UI Toolkit Sample – Dragon Crashers, available on the Asset Store
We recommend that you download the e-book User interface design and
implementation in Unity to get in-depth instruction in how to create UI with UI
Toolkit across a wide range of devices.
— Optimize the Lightmap Resolution and texel count for your lighting needs.
The number of texels represents how much work your lightmapper needs
to do. Because lightmaps are 2D textures, doubling the lightmap resolution
quadruples the amount of work.
Global Illumination produces beautiful indirect lighting, but this can be expensive
to calculate and store on disk. If you have set dressing or other static meshes
that don’t absolutely require lightmapping, consider removing them from your
lightmap bakes and use Light Probes instead.
In this example, Light Probes could approximate both direct and bounced
lighting for the smaller objects, reserving the higher-quality lightmapping where
it’s more noticeable.
Lightmaps applied to the Viking Village project Use Light Probes for smaller details where lightmapping is less noticeable.
Formerly reserved for dynamic objects, Light Probes can apply to static meshes
as well. In the MeshRenderer component, locate the Receive Global Illumination
dropdown and toggle it from Lightmaps to Light Probes.
Arrange Light Probes and Light Probe Groups spatially in the scene. Probe
lighting typically bakes faster than lightmapping.
A Light Probe Group with Light Probes spread across the level
See Static Lighting with Light Probes for information about selectively lighting
scene objects with Light Probes.
For more about lighting workflows in Unity, read Making believable visuals in Unity.
Manually placing light probes can be tedious and imprecise. Adaptive probe
volumes (APVs) in Unity 2022 LTS (named Probe Volumes in the Editor) offer
a more accurate solution by automating light probe positions. This results in
higher-quality lighting that works per pixel, not per object. APVs are supported
in HDRP with URP support coming soon. Learn more in this Unite 2022 talk.
Unity 2022 LTS and HDRP (versions 14 and up) bring improvements to the
workflows for APVs, including:
— Adds a system that reduces leaks based on probe validity. This includes
the new Probe Touch up Volume that you can use to tune values in
specific areas.
— Allows you to bake separate lighting scenarios and blend between them
URP is designed to be efficient for you to learn, customize, and scale to all
Unity-supported platforms. Our top goal is that URP is the leading renderer for
mobile, XR, and untethered hardware.
URP is the successor to our Built-in Render Pipeline. It will provide all the
functionality you are familiar with, but with better performance, greater
customizability, and more productive workflows.
— The Universal Render Pipeline for advanced Unity users: This e-book
was created by a highly experienced Unity developer in collaboration with
senior graphics engineers at Unity. Topics covered include:
— Recipes for popular visual effects using the Universal Render Pipeline:
This handy cookbook provides 12 recipes for popular visual effects that
can be applied to a wide range of games, art styles, and platforms.
Let’s look at some helpful tips for using URP in Unity 2022 LTS.
URP provides equal, if not better performance than the Built-in Render
Pipeline for comparable Quality settings in the majority of cases. For
example, it evaluates real-time lighting more efficiently. In Forward
rendering it evaluates all lighting in a single pass. Forward+ rendering,
available in 2022 LTS and later, improves upon standard Forward rendering
by culling lights spatially rather than per object. This increases the overall
number of lights that can be utilized in rendering a frame.
URP is also compatible with the latest artist-friendly tools, such as Shader
Graph, VFX Graph, and the Rendering Debugger.
Rendering Layers work not only with Lights, but also with Decals.
3. Decal Projectors are a great way of adding detail to a mesh. Use them
for elements such as bullet holes, footsteps, signage, cracks, and more.
Because they use a projection framework they conform to an uneven or
curved surface. To use a Decal Projector with URP, you need to locate your
Renderer Data asset and add the Decal Renderer Feature.
For most purposes, you can accept the default settings (learn more about
these here).
From left to right: No decal in the image, the decal hitting all objects, and the decal applied to the wall only, using
Rendering Layers
4. Even if you follow the correct steps to convert a Built-in Render Pipeline
project to URP (you can find the steps in the e-book Introduction to the
Universal Render Pipeline for advanced Unity creators), you might find
that your scenes are suddenly colored magenta. This is because the
shaders used by the materials in a Built-in Render Pipeline project are not
supported in URP. Fortunately, there is a method to restore your scenes to
their original quality.
— Certain dialogs now show the number of selected elements and the total
number of elements.
— You can click each converter to see more information about the elements
it converts.
— Performance improvement:
5. If you convert a project from the Built-in Render Pipeline to URP, you
might notice differences in the lighting. This is because the Built-in Render
Pipeline uses a gamma lighting model by default and URP uses a linear
model. As such, any light with an intensity value differing from 1.0 will need
to be adjusted.
There are also differences in where to find the Settings controls in-Editor,
as well as how to handle the challenge of widely differing hardware specs.
The rest of this section covers some tricks you can use to achieve balance
between graphic fidelity and performance.
You’ll set properties in the three places listed here. The first and second
locations are essentially the same for both render pipelines, while the third
location applies to URP only:
— Window > Rendering > Lighting: This panel allows you to set lightmapping
and environment settings, as well as view real-time and baked lightmaps.
It is unchanged from the Built-in Render Pipeline to URP.
— URP Asset Inspector: This is the principal place where you will set
shadows. Lighting in URP relies heavily on the settings chosen in this panel.
Quality settings are handled via Edit > Project Settings > Quality in the
Built-in Render Pipeline. In URP, this depends on the URP Asset settings
which can be swapped using the Quality panel (See the Quality settings
section in the URP e-book).
6. Shadow settings are no longer available via Project Settings > Quality. You
need a Renderer Data object and a Render Pipeline Asset when using URP.
There is a section on setting up a project for URP in the URP e-book that
covers how to view your scene via the Render Pipeline Asset, which you
can use to define the fidelity of your shadows.
The Lighting and Shadow groups in the URP Asset are key to setting up
shadows in your scene. First, set the Main Light Shadow to Disabled
or Per Pixel, then go to the checkbox to enable Cast Shadows. The last
setting is the resolution of the shadow map.
Another important setting for the Main Light Shadow is Max Distance. This
is set in scene units. The Max Distance property needs to relate directly to
what the user can see, as well as the units used in the scene. Aim for the
minimum distance that gives acceptable shadows (see note below). If the
player only sees shadows from dynamic objects 60 units from the Camera,
then set Max Distance to 60.
— Rendering shadows
— Rendering prepasses
— Rendering G-buffer
— Rendering opaques
— Rendering Skybox
— Rendering transparents
— Rendering post-processing
You can inject scripts in the rendering process via the Add Renderer
Feature option in the Inspector for the Universal Renderer Data Asset.
Remember, when using URP, there is a Universal Renderer Data object and
a URP Asset. The URP Asset has a Renderer List with at least one Universal
Renderer Data object assigned. It is the asset you assign in Project
Settings > Graphics > Scriptable Render Pipeline Settings.
If you are experimenting with multiple setting assets for different scenes,
then attaching the following script to your Main Camera can be useful. Set
the Pipeline Asset in the Inspector. Then it will switch the asset when the
new scene is loaded.
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
[ExecuteAlways]
public class AutoLoadPipelineAsset : MonoBehaviour
{
public UniversalRenderPipelineAsset pipelineAsset;
void OnEnable()
{
if (pipelineAsset)
{
GraphicsSettings.renderPipelineAsset =
pipelineAsset;
}
}
}
With HDRP’s cutting-edge real-time 3D graphics, you can take players to visually
stunning environments that push the boundaries of game design. HDRP extends
Unity’s existing lighting system with a variety of features to make rendering your
scene more closely resemble real-world lighting, including:
— Skyscapes
— Terrains
— Water system
— Fog
— Volume system
— Post-processing
— Advanced shadows
— Advanced reflections
— Extensibility
Unity 2022 LTS and above includes the HDRP package with the installation to
ensure that you’re always running on the latest verified graphics code. When
you install the most recent Unity release, it also installs the corresponding
version of HDRP. Tying the HDRP graphics packages to a specific Unity release
helps ensure compatibility. However, you can also switch to a custom version of
HDRP by overriding the manifest file.
The e-book Definitive guide to lighting in the High Definition Render Pipeline
in Unity provides hundreds of pages detailing what HDRP systems do, how
to understand their capabilities so you can use them in the best way possible
for your project, and step-by-step instructions for implementing and tweaking
them.
1. The HDRP Global Settings section (or HDRP Default Settings prior to
version 12) determines the baseline configuration of the project. You can
override these settings in the scene by placing local or global Volume
components, depending on the camera position (see Volumes below).
Global Settings save in their own separate Pipeline Asset defined at the top
field. Set up the default rendering and post-processing options here.
As you develop your project, you might need to return to the Global
settings to toggle a specific feature on or off. Some features will not render
unless the corresponding checkbox in HDRP Global Settings is enabled.
Make sure you only enable features you require because they might
negatively impact the rendering performance and memory usage. Also,
certain settings will appear in the Volume Profiles, while other features
appear in the Frame Settings, depending on usage.
Enabling a feature in the HDRP Global Settings does not guarantee it can
be rendered at any time by any camera. You must ensure that the Render
Pipeline Asset whose Quality level is selected under Projects Settings
> Quality supports that feature as well. For instance, to ensure cameras
can render Volumetric Clouds, you must toggle them under HDRP Global
Settings > Frame Settings > Camera > Lighting and in the active Render
Pipeline Asset, under Lighting > Volumetrics.
2. HDRP uses a Volume framework. This system allows you to split up your
Scene and enable certain settings or features based on camera position.
A volume is just a placeholder object with a Volume component. You can
create one through the GameObject > Volume menu by selecting a preset.
Otherwise, simply make a GameObject with the correct components
manually.
The Light Explorer (Window > Rendering > Light Explorer > Volumes) can
help you locate the volumes in the loaded scenes. Use this interface to
make quick adjustments.
3. Each Volume Profile begins with a set of default properties. To edit their
values, use Volume Overrides and customize the individual settings.
For example, Volumes Overrides could modify the Volume’s Fog, Post-
processing, or Exposure.
The Global Volume overrides the HDRP Default Settings. The Local Volumes,
in turn, override the Global Volume. Use the Priority, Weight, and Blend
Distance (outlined below) to resolve any conflicts from overlapping Volumes.
Debugging a Volume
You can find a complete Volume Overrides List in the HDRP documentation.
— Don’t waste texels. Small or thin objects, like pebbles or wires, can
disproportionately use lightmap resources. Disable Contribute Global
Illumination in either the Static menu or MeshRenderer to exclude those
objects from GI calculations unless they significantly influence scene
lighting (e.g., are brightly colored or have emissive materials).
5. You can choose between two backends for the Progressive Lightmapper,
run on the CPU or the GPU. The Progressive GPU Lightmapper accelerates
the generation of baked lightmaps with your computer’s GPU and
Dedicated Video Ram (VRAM).
— If you have multiple GPUs, allocate one for rendering and another for
baking
There are always small but helpful shortcuts and tips that even long-time Unity
developers can benefit from. Whether it’s a small Property Attribute attached to
a script variable or a handy but often-overlooked Editor setting, we’re sure that
you’ll find plenty here to speed up your workflows.
Async and await constructs now give you more efficient asynchronous
programming, and you’ll find it faster to get in and out of Play mode, resulting in
more coding and less waiting.
Attributes
Unity has a variety of Attributes that can be placed above a class, property,
or function to indicate special behavior such as creating headers, spacing or
ranged fields in the inspector.
Tooltip This shows a tooltip when the user public class PlayerScript: Monobehaviour
hovers a mouse over a field in the {
Inspector.
[Tooltip(“Health value between 0 and
100.”)]
int health = 0;
}
Header This adds some bold text and spacing public class PlayerScript: Monobehaviour
to help organize your variables in the {
Inspector. Only add this to the first field
[Header(“Health Settings”)]
that you want to belong to the group.
public int health = 0;
public int maxHealth = 100;
[Header(“Shield Settings”)]
public int shield = 0;
public int maxShield = 0;
}
This is just a small sample of the numerous Attributes. Do you want to rename
your variables without losing their values? Or invoke some logic without needing
an empty GameObject? See the Scripting API for a complete list of Attributes for
everything that’s possible.
You can even create your own PropertyAttribute to define custom Attributes for
your script variables.
UI Toolkit has a workflow similar to standard web development. Use its HTML
and XML inspired markup language, UXML, to define user interfaces and
reusable UI templates. Then, apply Unity Style Sheets (USS) to modify the
visual style and behaviors of your UIs.
Alternatively, you can use immediate mode IMGUI. Derive from the Editor base
class, then use the CustomEditor attribute.
A custom Editor modifies how the MyPlayer script displays in the Inspector.
See Creating user interfaces (UI) for more detail on how to implement custom
Editor scripts using either UI Toolkit or IMGUI. For a quick introduction to UI
Toolkit, watch the Getting Started with Editor Scripting tutorial.
Unity includes a simple way to customize Editor menus and menu items, the
MenuItem Attribute. You can apply this to any static method in your scripts.
If you have functions for your project that you will use frequently, organize them
into menu items. This allows you to build a basic user interface with just a single
PropertyAttribute modifier.
The MenuItem Attribute creates a simple interface to attach the static method (Take Screenshot).
When you enter Play Mode, your project starts and runs as it would in a build. Any
changes you make in the Editor during Play Mode reset when you exit Play Mode.
Each time that you enter Play Mode in the Editor, Unity performs two significant
actions:
— Domain Reload: Unity backs up, unloads, and recreates scripting states.
These two actions take more and more time as your scripts and Scenes become
more complex.
If you don’t plan on making any more script changes, the Enter Play Mode
Settings (Edit > Project Settings > Editor) can save you a bit of compile time.
Unity gives you the option to disable either Domain Reload, Scene Reload, or
both. This can speed up entering and exiting Play Mode.
The effects of disabling the Reload Domain and Reload Scene settings.
In Unity 2022 LTS, the Enter Play Mode performance is optimized to speed up
iteration times. This improvement includes faster scene saving, increased use
of multi-threading to speed up static batching and particle prewarming, and a
reduced cost on some package initialization times (e.g., TerrainTools and Visual
Studio packages).
Script templates
Do you find that you make the same changes every time you create a new
script? Do you instinctively add a namespace or delete the update event
function? Save yourself a few keystrokes and create consistency across the
team by setting up the script template for your preferred starting point.
Every time you create a new script or shader, Unity uses a template stored in
%EDITOR_PATH%\Data\Resources\ScriptTemplates:
— Mac: /Applications/Hub/Editor/[version]/Unity/Unity.app/Contents/
Resources/ScriptTemplates
There are also templates for shaders, other behavior scripts, and assembly
definitions.
You can also modify the default script templates directly for all projects, but
make sure that you backup the originals before making any changes.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
#ROOTNAMESPACEBEGIN#
public class #SCRIPTNAME# : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
#NOTRIM#
}
// Update is called once per frame
void Update()
{
#NOTRIM#
}
}
#ROOTNAMESPACEEND#
For example, you may want to set up the default Monobehaviour to have default
regions in order to stay organized:
/*
* Modified template by Unity Support.
*/
using UnityEngine;
void Update()
{
}
#endregion
Addressables
The Addressable Asset System simplifies how you manage the assets that make
up your game. Any asset, including Scenes, Prefabs, text assets, and so on, can
be marked as “addressable” and given a unique name. You can call this alias
from anywhere.
Adding this extra level of abstraction between the game and its assets can
streamline certain tasks, such as creating a separate downloadable content
pack. This system makes referencing those asset packs easier as well, whether
they’re local or remote.
Once marked, the corresponding assets appear in the Window > Asset
Management > Addressables > Groups window.
In Addressables Groups, you can see each asset’s custom address, paired with its location.
For convenience, you can either rename each address in the asset’s individual
Address field or simplify them at once.
Simplify the Addressable Names with a single menu action, or rename them individually.
Use the default build script to generate an Addressable Group asset bundle.
You can now use your addressable assets using the Addressables API.
This loads the asset by its address string. The Prefab does not load into
memory until it’s needed (when we invoke Adressables.Instantiate inside
CreatedPrefabWithAddress). In addition, Addressables provides high-level
reference counting and automatically unloads bundles and their associated
assets when they’re no longer in use.
If you are operating a live game, then you might want to consider using Unity’s
Cloud Content Delivery (CCD) solution with Addressables. The Addressables
system stores and catalogs game assets so that they can be automatically
found and called, and then CCD pushes those assets directly to your players,
completely separate from your code. This reduces your build size and eliminates
the need to have your players download and install new game versions
whenever you want to make an update. To learn more, read this blog post on the
integration between Addressables and Cloud Content Delivery.
The Platform Dependent Compilation feature allows you to partition your scripts
to compile and execute code for a specifically targeted platform.
This example makes use of the existing platform #define directives with the #if
compiler directive:
using UnityEngine;
using System.Collections;
#if UNITY_IOS
Debug.Log(“Iphone”);
#endif
#if UNITY_STANDALONE_OSX
Debug.Log(“Stand Alone OSX”);
#endif
#if UNITY_STANDALONE_WIN
Debug.Log(“Stand Alone Windows”);
#endif
}
}
You can also compile selectively for specific Unity versions and/or scripting
backends.
You can supply your own custom #define directives when testing in the Editor.
Open the Other Settings panel of the Player settings, and navigate to Scripting
Define Symbols.
Let’s use the example of a project that has a prefab that stores unchanging data
in an attached MonoBehaviour script. Unlike with MonoBehaviours, the data
saved to ScriptableObjects is written to disk as an asset and not attached to a
GameObject. Thus, it can persist between sessions.
The CreateAssetMenu attribute generates a context menu item to help you generate an asset on disk. Each unit has additional ScriptableObjects for
sound effects and special abilities.
Use the Inspector to fill out values for the ScriptableObject asset. These values won’t change during gameplay.
A GameObject (like the UnitController in this case) can then reference the
ScriptableObject asset. If the Scene suddenly fills with units, the data on the
ScriptableObject asset does not duplicate, saving memory.
The Monobehaviour object (UnitController, shown above) refers to the ScriptableObject data asset in the project.
Even if you add a thousand instances of a Prefab to your Scene, they still refer
to the same data stored in your asset. Setting up the set of values just once
guarantees consistency.
As your game scales up with more unit types, simply create more
ScriptableObject assets and swap them out appropriately. Maintain your
gameplay data just by tweaking the centrally stored assets.
ScriptableObjects don’t replace keeping persistent data for the rest of your
application’s save files, where the data may change during gameplay. It’s a
workflow suited more for storing your static gameplay settings and values.
Unlike parsing data from JSON or XML, reading a ScriptableObject asset won’t
generate garbage (and, as a bonus, it’s faster).
More resources
— ScriptableObject documentation
Managing assemblies
— Every time you change a script, Unity recompiles all other scripts;
You might split up your code into multiple assemblies, as shown in the diagram
above. Here, any changes to the code in Main cannot affect the code in Stuff.
Similarly, because Library doesn’t depend on any other assemblies, you can
more easily reuse the code in Library in another project.
IDE integrations for all three of these environments appear as packages in the
Package Manager.
Visual Studio is installed by default when you install Unity on Windows and
macOS. If you want to use another IDE, simply browse for the editor in Unity >
Preferences > External Tools > External Script Editor.
Rider is built on top of ReSharper and includes most of its features. It supports
C# debugging on the .NET 4.6 scripting runtime in Unity (C# 8.0). For more
information, see JetBrains’s documentation on Rider for Unity.
1. Download and install Visual Studio Code from its website, where you’ll find
versions for Windows, macOS, or Linux.
2. Get the Visual Studio Editor package for Unity. In the Package Manager
window, be sure to install or, if you have an older version of the package,
upgrade to version 2.0.20 or above.
Note: The Visual Studio Editor package now handles the entire family of Visual
Studio products. Don’t confuse it with the package named Visual Studio Code
Editor, which is no longer supported.
3. After installing VS Code and the Visual Studio Editor package, you’ll need to
set VS Code as the external script editor. Do this via Unity > Preferences
> External Tools in the Editor. Under External Script Editor, choose Visual
Studio Code from the drop-down menu. If VS Code doesn’t appear in the list,
click Browse and locate the VS Code executable on your system. The next
time you open a C# file in Unity, Unity will open Visual Studio Code for you.
4. The next step is to install the Unity extension for Visual Studio Code, which
provides a streamlined Unity development experience on Visual Studio
Code. It builds on top of the rich C# capabilities provided by the C# Dev Kit
and C# extensions as well as integrating natively with Visual Studio Code.
Go to the Visual Studio Marketplace for the extension. After you click to
download it, a window will open prompting you to open it in the Visual
Studio Code application. VS Code will then install the Unity extensions,
including C# Dev Kit and C# extensions.
Each IDE has its own productive merits. See Integrated development
environment (IDE) support for more information about choosing an IDE.
Debugging
The Unity Debugger allows you to debug your C# code while the Unity Entity
is in Play Mode. You can attach breakpoints within the code editor in order to
inspect the state of your script code and its current variables at runtime.
Set the Code Optimization mode to Debug in the bottom right of the Unity Editor
Status Bar. You can also change this mode on startup at Edit > Preferences >
General > Code Optimization On Startup.
Debug Mode
Toggling a breakpoint
Select Attach to Unity in your code editor. In the Unity Editor, run the project.
Debugging variables
In the example above, you can inspect the variables when debugging, watching
the list build up one step at a time during execution.
Debug controls: Continue Execution, Step Over, Step Into, and Step Out
Use the Continue Execution, Step Over, Step Into and Step Out controls to
navigate the control flow.
You can debug script code in a Unity Player as well. Just make sure that
Development Build and Script Debugging are both enabled in the File > Build
Settings before you build the Player. Check Wait for Managed Debugger to wait
for the debugger before the Player executes any script code.
To attach the code editor to the Unity Player, select the IP address (or machine
name) and port of your player. Then proceed normally in Visual Studio with the
Attach To Unity option.
Unity also includes a Debug class to help you visualize information in the
Editor while it is running. Use it to print messages or warnings into the Console
window, draw visualization lines in the Scene view and Game view, and pause
Play Mode in the Editor from script.
3. When using Debug.Log, you can pass in an object as the context. If you
click on the message in the Console, Unity highlights the GameObject in
the Hierarchy window.
4. Use Rich Text to mark up your Debug.Log statements. This can help you
enhance error reports in the Console.
5. Unity does not strip the Debug logging APIs from non-development builds
automatically. Wrap your Debug Log calls in custom methods and decorate
them with the [Conditional] attribute.
Debug.DrawLine
7. If you only want code to run when Development Build is enabled, check if
Debug.isDebugBuild returns true.
If you use Visual Studio as your IDE of choice, these shortcuts may prove useful.
No default keybinding,
View task list Ctrl + T
but you can bind it.
Watch Visual Studio tips and tricks to boost your productivity for more workflow
improvements with Visual Studio.
Device Simulator
If you’re developing for mobile and tablets, the Device Simulator can help you
simulate your application on different devices. Even if you have physical access
to all of your targeted hardware, building the content for each device can be
time consuming.
Use the Simulator view to run a quick preview before you need to make an
actual build. You can simulate specific resolutions or hardware conditions and
adjust your UI to the physical notch/cutouts in Game view. When using the
Simulator view, you can switch between different screens for devices with
multiple screens.
Read “Speed up mobile iteration with the Device Simulator” for more tips or
watch this demo of the Device Simulator in action.
By default, the Console Log Entry shows two lines. For improved readability, you
can configure this to be more streamlined with one line (see image).
Alternatively, you can also use more lines if you want longer entries.
When Unity compiles, the icon in the lower right corner is hard to see. Use
this custom Editor script to call EditorApplication.isCompiling. This makes the
Compiler status more visible in a floating window.
Launch the MenuItem to initialize the window. Optionally, you can modify its
appearance with a new GUIStyle to suit your preferences.
using UnityEditor;
using UnityEngine;
public class CustomCompileWindow : EditorWindow
{
[MenuItem(“Examples/CustomCompileWindow”)]
static void Init()
{
EditorWindow window = GetWindowWithRect(typeof(-
CustomCompileWindow), new Rect(0, 0, 200, 200));
window.Show();
}
void OnGUI()
{
EditorGUILayout.LabelField(“Compiling:”, Edito-
rApplication.isCompiling ? “Yes” : “No”);
this.Repaint();
}
}
More resources
— How to run automated tests for your games with the Unity Test Framework
Unity DevOps consists of two core components: Unity Version Control and Unity
Build Automation.
When you sign up for Unity DevOps, you’ll get access to both the Version
Control and Build Automation components.
You can pick which Unity DevOps component you use. For example, the Build
Automation workflows can work with any version control including GitHub.
Additionally, Unity Version Control remains compatible with any engine, slotting
seamlessly into your existing tech stack.
Unity DevOps is a consumption-based tool. This means that you’ll only pay for
what you use once you exceed the monthly free tier. You can learn more about
pricing on the Unity DevOps page.
Unity Version Control (Unity VCS) is a version control and source code
management tool for game and real-time 3D development to improve team
collaboration and scalability with any engine.
There are two ways to use Unity Version Control. The Unity VCS web experience
provides deeply integrated role-based workflows, code reviews, and user and
user group management. You can read about setting up the web experience here.
You can also install the Unity Version Control package for the Editor. Follow the
set up instructions in the package documentation.
UVCS can push and pull changes directly to any remote Git server. This is
because UVCS supports the https:// and git:// protocols for pushing and pulling
changesets.
This feature immediately turns UVCS into a distributed version control system
(DVCS) that’s fully compatible with Git. The advantage of this is that you can
use UVCS or Git on your workstation and still participate in Git projects (GitHub,
CodePlex, and many more).
What is GitSync?
GitSync is a native Windows DVCS connected to GitHub. So, it virtually turns
UVCS into a full-fledged Windows client for Git.
If you’re a developer using GitHub (or Bitbucket, or maybe CodePlex), there are
things you like, like using a cloud-based repository for your code and Windows
to develop – and things you don’t like, like being forced to use the CLI and
lacking really awesome GUI tools.
If you wish you had everything – Cloud repositories, the DVCS power, and tools
for Windows – that’s what you get with GitSync.
Unity maintains a .gitignore file. This can help you decide what should and
shouldn’t go into the git repository and enforce those rules.
If you’re interested in learning how to set up version control for your team and
Unity projects download the free, in-depth guide Version control and project
organization best practices for game developers.
Unity Accelerator
Unity Accelerator removes waiting time by caching copies of your team’s assets.
This means that only one person needs to perform the actual import, and the
results will automatically be cached to the Unity Accelerator. The next time a
team member goes to import the same version of the asset, the Unity Editor
first checks the cache before starting the import process on their local machine.
A local administrator dashboard for the Accelerator enables you to configure the
tool, see statistics like disk space usage or how much time you’ve saved, and
diagnose issues with logs.
Unity Accelerator
See the requirements and installation procedure for more information about the
Unity Accelerator.
As your Unity project grows in size and complexity, generating a build consumes
more and more time. If you’re using your development workstations to build
a project, you will lose productivity while your team waits for the build to
complete.
Unity Build Server runs Unity in batch mode, exclusively for building Unity
projects. Team members can request builds on demand at their own pace. This
reduces wait time for bug fixes and releasing new features for testing. Building
on separate machines reduces each developer’s downtime and allows everyone
to iterate more quickly.
See the Unity Build Server page for more information on how to access the
service and pricing.
You can find additional productivity tips, best practices, and news on the Unity
Blog, by searching the #unitytips hashtag, and on the community forums and
Unity Learn.
The Unity Developer Tools microsite makes it easy for you to find some of
the best resources for developing with Unity, including documentation, the
Knowledge Base, Issue Tracker, as well as our latest roadmap and release
information.
Unity provides three tiers of success plans for professional developers and
studios. Our success plans are designed to help you minimize technical and
strategic obstacles during your game development. Our technical support team
will help:
— Mitigate risk: Put guardrails in place that can help you avoid future issues,
ensuring your project stays on track and on budget.
Learn more about Unity Success plans or contact us to get more information
about what we can offer.