Are you an Unity 3D developer and looking for a job change but unable to find interview questions to help get the job?
Well, we heard you.
In this post we have shared many Unity 3d interview question and answers to help you land your next unity 3d job. Check them below
| Before you begin
Each and every job requires unique set of skills. Hence every interview will be different and some will be more demanding and some will be less. However this post does not target any specific interview type but instead has a broad overview of different types of questions which can be asked during an Unity developer interview. And most importantly these questions will help you understand what companies are looking for from an unity developer.
| What you should know
If you are applying for an Unity 3d developer job(experienced, 2+ years) then you should be familiar with the below technologies. However if you are a fresher then, know as many as possible.
- Which platform you have worked on (depends on job)
- OOP, C# .net
- Design patterns
- Basics of shader graph
- Any 3d modelling software (good to have if applying for 3d game developer)
- Familiarity with multiplayer technology,
- Photon bolt, Photon PUN
- PlayFab or any other game hosting service
Q. What do you know about Unity 3D?
Unity is a cross-platform game engine developed by Unity Technologies. Although most of us know it as a game engine but today it is being used in other industries such as Robotics, Animation as well. Due to high customizability and ease of use it is a very popular game engine on the market currently.
Q. What is 2D and 3D game? Which one can you create in Unity? Which one have you worked on?
In 2D or two dimensional games, the depth axis(z axis in unity) is not visually available. On the other hand 3D games have height, width and depth. Some example of 2D games are Super Mario, Minesweeper, Solitaire etc.
In unity we can create both 2D and 3D games.
Q. Mention few advantages of Unity 3D
Few advantages of Unity 3D are
- Cross platform(android, windows, mac, web etc.) support with single code base.
- Highly customizable and easy to use
- Extensive software integration availability
Q. Do you have any completed project or published games?
If you have any, then mention in details
Q. Mention few default window names which are opened when Unity 3D application is launched.
Some of the default windows which are opened at beginning are Editor window, Game window, Hierarchy window, Inspector window etc. There are few more windows also available such as Profiler window, Settings window, lighting window etc.
Q. What is Light baking? Why is it used?
The process of light baking is process of storing light information of static objects in an image called lightmap. Lightmaps pre-calculate and store both light and shadow information of objects which does not move. This precalculated data is then applied on top of the objects at run time to give lighting effect.
This is a very efficient process and saves both memory and performance. This is used to improve performance in low spec devices.
Q. What is Profiler? Why is it used?
Profiler is an inbuilt tool available in Unity 3D to understand and troubleshoot game performance. Profile helps to analyze Memory, CPU usage and helps to identify underlying problems, if any.
Q. Explain program flow(life cycle) of Unity C#
Unity script executes functions in a predetermined order. In a very simple way this flow is
However if you would like to to know in details, check this document. https://docs.unity3d.com/Manual/ExecutionOrder.html
Q. What are Coroutines? How is it different from multithreading?
A coroutine allows you to spread tasks across several frames. In Unity, a coroutine is a method that can pause execution and return control to Unity but then continue where it left off on the following frame. A coroutine can be used induce delay before executing a task or set of tasks.
It’s best to use coroutines if you need to deal with long asynchronous operations, such as waiting for HTTP transfers, asset loads, or file I/O to complete.
On the other hand multithreading is an approach to divide the execution load multiple cores of CPU.
Q. What is static batching? Why is it required?
Static batching bakes your models into one huge mesh. This means that if you had 1000 wall segments, all using the same model, then static batched them, you’d be using 1000x memory than using a single model.
You can also use staticbatch.combine() method to batch objects via scripts but do keep in mind that static batch objects are not meant to move.
Static batch helps to improve performance by reducing draw calls.
Q. What is OOP?
OOP, Object-oriented programming is a programming paradigm based on the concept of “objects”. Unlike sequential flow programming in OOP design, features and functionalities are divided and shared between objects. This approach allows more secure and robust design. And the code maintainability is also improved.
Q. What is the difference between interface and abstract
Abstract class and interface both are used to achieve abstraction where we can declare the abstract methods. Abstract class and interface both can’t be instantiated. However there are some differences, below are few differences.
|Abstract class can have abstract and non-abstract methods.||Interface can have only abstract methods. Since Java 8, it can have default and static methods also.|
|Abstract class doesn’t support multiple inheritance.||Interface supports multiple inheritance.|
|Abstract class can have final, non-final, static and non-static variables.||Interface has only static and final variables.|
|Abstract class can provide the implementation of interface.||Interface can’t provide the implementation of abstract class.|
Q. What is method overloading and method overriding
If a class has multiple methods with same name but different in parameters, it is known as Method Overloading.
*If we have to perform only one operation, having same name of the methods increases the readability of the program.
Method overriding, in object-oriented programming, is a language feature that allows a subclass or child class to provide a specific implementation of a method that is already provided by one of its parent classes.
C# supports method overriding only if explicitly requested using the modifiers override and virtual or abstract.
Q. What is Polymorphism?
Polymorphism is the ability of an object to take on many forms.
Inheritance lets us inherit attributes and methods from another class. Polymorphism uses those methods to perform different tasks. This allows us to perform a single action in different ways.
Q. What is Monobehaviour? Why is it inherited in every script?
MonoBehaviour is the base class from which every Unity script derives.
If monobehaviour is not included then we will not have access to Unity methods or events such as
Start(), Awake(), Update(), OnCollisionEnter(), OnMouseDown() etc.
Q. What is Start and Awake function? Why do we need both of them?
Start() and Awake() functions are inherited from Monobehaviour and are called when the game object is initialized or enabled. Start() method is called after execution of Awake() method.
The reason for having both of them is to have a better control of writing program flow. Specially when one object needs to be initialized before then these methods are helpful.
Q. What is Design Pattern? Why do we use these patterns? Name few of them
In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. Design patterns are set of ideas, rules and solution approach, and does not include any finished code or program.
There are many design pattern such as Singleton, Factory, Behavioral, Command pattern etc.
Q. What is singleton design pattern. Tell an use case
The singleton pattern is a software design pattern which ensures that a particular class is instantiated only once. This is useful when exactly one object is needed to coordinate actions across the system.
Some use cases are designing Audio Controllers, Game Controllers or Save Controllers.
Q. What is Peer-to-Peer and Server-client design?
Both Peer to Peer and Server-client design are multiplayer gaming technologies. It defines where games are hosted and how players are connected to the game.
In simple terms,
Peer-to-Peer: One of the players host the game(as a server) and every other player joins that server and play the game.
Client-server: In this technology, the game is hosted in a dedicated server and all the players need to join the server to play the game.
Below is a very good video related to Multiplayer gaming technology.
Q. What is Playfab and GameSparks?
PlayFab is a complete backend platform from Microsoft for live games with managed game services, real-time analytics, and LiveOps. PlayFab enables developers to use the intelligent cloud to build and operate games, analyze gaming data and improve overall gaming experiences.
Similar to Playfab, Gamesparks is also a multiplayer game service platform from Amazon.
Q. What is Node.js ? Why node.js is used
The answer why node.js is used is because
- It is very very fast, thus making it ideal for server side programming
- Node is asynchronous and event driven
- And it is open-source
That’s all I have for this Unity Developer interview questions post. I hope you now have some idea about what questions can be asked during an interview. However if you still have any questions, feel free to ask in comments section.
Please Help us Grow!
I hope you have found this article helpful. If you are happy with the document, please use the below links when you buy something from Amazon to help us grow.
How this works?
Amazon affiliate program gives a small (%)share of price to the referrers, so feel free to buy anything.
Below are some Amazon affiliate links, if you open amazon application/website using these links and buy something, (it can be one of the below items or anything of your choice) Then Amazon will give us a little percentage(%) of the money you spend on Amazon. To know more check this document.
Amazon Affiliate Links
More Ways to Help
For your Contribution
Ramiz is a professional working in an MNC as a business and technology consultant for quite a few years now. Ramiz is proficient in various Microsoft tools and technologies. He is a tech enthusiast and an active blogger. Ramiz spends his free time playing games or watching movies. He writes blogs to share his knowledge with the world and to make it a better place to live.