Five UNITY Plug-ins Recommendations from Playtika Experts
By Andrew Vishnitsky, Sergey Khalandachev & Andrew Chaiko
Unity is a core tool at Playtika, used across the board by developers to create and improve Playtika games. Yet, even with its regular updates and multiple features, Unity’s functionalities are sometimes less than satisfactory. During the many hours they spent on Unity, Playtika’s developers discovered shortcuts and plug-ins that streamline their experience with Unity.
As a show of unity with all Unity users, we asked our Unity core teams to share some of their valuable findings and expand on how they facilitated and streamlined their work, saving them time and effort, speeding up game delivery, and shortening workdays.
Maybe some of you might get to spend more time with your loved ones thanks to these tools:
- Quick Serach – A tool that facilitates navigation within assets.
The first time we used Quick Search, we were working on Solitaire Grand Harvest. To give you an idea of the game’s scope, Solitaire Grand Harvest has over 8000 levels, 30+ maps, and two farm seasons, which translates into a humongous art resources catalog.
As you can imagine, with so many assets, locating the required assets was eating up on our developing time and reducing our productivity.
If only there were a way to access a function like JetBrains Rider IDE’s “search everywhere” tool! That is exactly what Quick Search does.
As you can see in the screen recording below, a full visual list of the art resources, such as the one delivered by Unity default search function, is not very practical. Adding Quick Search provided the possibility of locating the exact asset required at a glance instead of wading through very similar assets before finding the right one.
Without Quick Search
With Quick Search
One helpful tip when using quick search is to use the same bind on cmd+n as you use in Rider.
How to add Quick Search
Adding Quick Search to your Unity is extremely simple, just add it to the package manager as shown below.
- Odin Inspector – A tool to extend editor scripting capabilities
Finding the right asset was not the only issue we came across when working on Solitaire Grand Harvest. We were also looking to streamlining the process by, for example, extending Unity’s scripting abilities.
We selected Odin Inspector for its multiple time-saving functions, too numerous to go through in this post, but just to give you a taster, here are some highlights of what Odin inspector can do to enhance your work with Unity:
It lets you add buttons in MonoBehaviour editor by just using its attribute
It provides you with off-the-shelf reorderable arrays
It lets you write custom editors, and even add logic to these custom editors, with disconcerting ease.
It is so easy to write custom editors that you can write them for level designers
It facilitates assets and set variables validation. For example, you can:
set [AssetOnly] to avoid setting up unwanted spawned instances
set [Required] to validate set variable – invalid set variable will trigger an error message when running the Inspector
To summarize, Odin Inspector offers:
- an incredibly useful editor
- the ability to serialize pretty anything, not only Unity assets or MonoBehaviours
- a solution to project validation
However, it comes at a cost – and no, this is not the purchase cost. it is some unwanted drawbacks, such as reduced performance and issues with backward compatibility. On ILL2CPP, for example, we ended up having to generate files to have to deserialize assets serialized by Odin.
So you need to be wary when using asset bundles and when using Odin on entire projects, as you might unwittingly affect sections of the project that you were not targeting.
How to add Odin Inspector
Odin Inspector needs to be purchased.
You can purchase it from https://odininspector.com/ and then follow the instructions.
- Transform Reset – a transform positioning tool that changes your life
Moving objects around in Unity can become a nightmare as it requires adjusting the X, Y, and Z coordinates independently.
It is especially annoying when you take into account Unity’s habit to place newly created objects into some undesirable “last” position, requiring to spend useless time returning it to coordinate zero.
Another irritating Unity lacune is blatant when creating an object as the child of an existing object. This common maneuver will generate distortion for all your position, rotation, and scale as they are now local to another object. To correct those distortions, you need to select a coordinate value in the editor field and zero it, select the next one and zero it too, and repeat that process nine times!
As you can imagine, or worse are regularly experiencing, some days, you spend so much time pulling your hair trying to get your object where you want it that by the end of the day, your head is bold and shining.
When we discovered Transform Reset, we were working on numerous Playtika projects, including Pirate Kings, for example.
Transform Reset probably saved Playtika’s team from becoming a uniformly bold bunch of frustrated people.
Rather than boring you to tears with long-winded explanations, we’ll show you how this miracle could happen.
See if you can spot the difference between working with or without Transform Reset:
If, for some reason, your project’s origin values are different from the default ones or need to be customized, use the Transform Reset feature to set your custom origin values.
How to add Transform Reset
To add Transform Reset, simply download this handy tool from Unity Asset Store.
- Project auditor: an experimental static analysis tool for Unity Projects.
Creating a game is fun. Checking where you went wrong, much less. So, a tool like Project Auditor that analyzes scripts and settings of a Unity project and reports a list of potential problems that affect performance is a godsend for any developer.
We first used it on Board Kings and never looked back.
Project Auditor spotted many mistakes, some obvious ones we are actually ashamed about, like empty MonoBehaviour methods, and some we would have a hard time thinking about, such as Async Upload Time Slice that can impact on Loading time of the application.
When you run Project Auditor on your project, it returns a dynamic report like the one displayed below:
As you can see, it provides all the necessary information to correct all the listed mistakes effortlessly.
- Test advice and decide whether you want to mute/unmute them, depending on how you want to work
- Configure analysis to match your requirements
- Check out the save/load reports option
- Specify a version of the Project Auditor by adding it into manifest located inside your Unity project’s Packages
How to add Project Auditor
At this time, Project Auditor is not discoverable via Unity Package Manager, so it has to be installed manually. To add Project Auditor, simply use the official instruction.
- Device Simulator: an alternative to the traditional Unity editor Game window that displays a more accurate picture of a game’s look on a device.
When adding support notches like those needed on iPhone X with the default Unity feature, you need to test it on each and every smartphone because they have different settings. For example, on Samsung s10, the camera is located in the corner whereas, on Samsung a71, the camera is in the center.
Device Simulator enables us to test every iteration without requiring real devices, greatly accelerating the testing procedure and eliminating the necessity to build new dedicated applications.
Peek at the screenshots below to get an idea of the interface’s look and feel.
Have a look at how it works:
- Use the Device Simulator to simulate different devices, notches, and orientations.
- Use the localization changing tool, which is very useful in testing different language versions.
How to add Device Simulator
To add Device Simulator, simply add in project manifest.json “com.unity.device-simulator”: “2.2.4-preview”
This is it for this time. Hopefully, these tools will enrich your Unity experience, save you numerous hours of tedious work, accelerate your work and generally meliorate your work satisfaction levels.