Unity Developers Interview Preparation Guide
Elevate your Unity 3D Developer interview readiness with our detailed compilation of 39 questions. Each question is designed to test and expand your Unity 3D Developer expertise. Suitable for all experience levels, these questions will help you prepare thoroughly. Download the free PDF now to get all 39 questions and ensure youre well-prepared for your Unity 3D Developer interview. This resource is perfect for in-depth preparation and boosting your confidence.27 Unity 3D Developer Questions and Answers:
1 :: What games are you playing?
If you plan to work for a video game company, you'd better be playing games -- and you'd better be able to demonstrate that.
It's good form to mention some games that are in the same genre as the games made at that company. It's even better if you mention playing some of the games that were actually made there. Again though, don't go over the top.
At the very least, play the demo of anything they've produced. You need to be knowledgeable about the genre, what you enjoy about it, and how the development of these games is affected by the genre (as much as you can be). So research the company before the interview.
How you answer this question can be a deal breaker or a deal maker for hiring managers. They want to hire people who are demonstrably passionate about the games their company makes. Saying, "I have a level 70 mage in World of Warcraft and a level 40 druid in EverQuest," to Blizzard makes the point that you are immersed in its product genre.
Demonstrating some knowledge about older games also shows you're grounded in game history, which is never a bad thing. The wider your knowledge base, the more you can forestall going down blind alleys in terms of implementation and design, which benefits everyone, and that's exactly what a company is looking for in its employees.
It's good form to mention some games that are in the same genre as the games made at that company. It's even better if you mention playing some of the games that were actually made there. Again though, don't go over the top.
At the very least, play the demo of anything they've produced. You need to be knowledgeable about the genre, what you enjoy about it, and how the development of these games is affected by the genre (as much as you can be). So research the company before the interview.
How you answer this question can be a deal breaker or a deal maker for hiring managers. They want to hire people who are demonstrably passionate about the games their company makes. Saying, "I have a level 70 mage in World of Warcraft and a level 40 druid in EverQuest," to Blizzard makes the point that you are immersed in its product genre.
Demonstrating some knowledge about older games also shows you're grounded in game history, which is never a bad thing. The wider your knowledge base, the more you can forestall going down blind alleys in terms of implementation and design, which benefits everyone, and that's exactly what a company is looking for in its employees.
2 :: Questions You Should Ask In Unity3D Interview:
► What are the core working hours?
► How do you assign or schedule tasks? Who gets to decide who does what and estimates time?
► What's the career path for this job? How do I get to progress? What is the process for promotion?
► What training approach do you use? How would I learn new skills?
► How are personnel reviews handled? Who does them and how often?
► Are there any specific development processes used here, for example, Scrum?
► Who would I report to?
► If I'm hired, what is the next game I might work on? How much input would I have on that?
► Is there a relocation package?
► What bonus structure or incentives are there?
► How do you assign or schedule tasks? Who gets to decide who does what and estimates time?
► What's the career path for this job? How do I get to progress? What is the process for promotion?
► What training approach do you use? How would I learn new skills?
► How are personnel reviews handled? Who does them and how often?
► Are there any specific development processes used here, for example, Scrum?
► Who would I report to?
► If I'm hired, what is the next game I might work on? How much input would I have on that?
► Is there a relocation package?
► What bonus structure or incentives are there?
3 :: Basic Unity3D Interview questions:
► What is the best game that you made with Unity?
► Which app on the app store did you make most money from?
► How did you create asset bundles for your game?
► What do you think about the threading model in Unity?
► When would you use plugins?
► How can you call c# from Javascript, and vice versa?
► How active are you on the forum and answers sites? (What's your username?)
► What editor scripting have you done, and how did that go?
► What is one change/improvement you'd make to Unity?
► What source code revision software would you recommend using?
► Which app on the app store did you make most money from?
► How did you create asset bundles for your game?
► What do you think about the threading model in Unity?
► When would you use plugins?
► How can you call c# from Javascript, and vice versa?
► How active are you on the forum and answers sites? (What's your username?)
► What editor scripting have you done, and how did that go?
► What is one change/improvement you'd make to Unity?
► What source code revision software would you recommend using?
4 :: Interview Preparation Guide for Game Developer (Unity 3D):
► Do you play games? If yes , then name your favorite ones.
► He/She will ask you something related to your favorite games.
► How would you design this mechanism in Unity and much more.
► How many games have you developed so far?
► Let's say I gave you a game which is lagging(poor performance), how will you find the bottleneck?
► How to find inactive gameobjects from script?
► What is the use of AssetBundle?
► What is batching?
► Can i change the script execution order?
► What are Coroutines? Does it run on different Thread?
► He/She will ask you something related to your favorite games.
► How would you design this mechanism in Unity and much more.
► How many games have you developed so far?
► Let's say I gave you a game which is lagging(poor performance), how will you find the bottleneck?
► How to find inactive gameobjects from script?
► What is the use of AssetBundle?
► What is batching?
► Can i change the script execution order?
► What are Coroutines? Does it run on different Thread?
5 :: Unity3D Developer Interview Questions:
► What do you like about gaming?
► What was the first computer or console game you played?
► What was your first computer?
► What's your favorite game and why?
► What's your favorite book? Movie? TV show?
► Do you prefer open worlds or well-defined quest lines? Do you think a game should/can have both?
► What's your favorite character class?
► How would you briefly describe the mechanics of your favorite game to a non-programmer?
► Do you usually play games to the end?
► What's your Beta test experience? (No, you're not looking for a QA person BUT it doesn't hurt to hire a programmer who thinks like a QA person at least a little, as in being able to vet their own work before they hand off a fix as "done.")
► What's your favorite game of ours and why? (If you've only published one game, they better have played it! And listen for their own words-if they sound like they're parroting what they read about your game, it's entirely possible they haven't actually played it.)
► If you could work in any other area of our industry, what would it be and why?
What makes a game fun for you?
► What was the first computer or console game you played?
► What was your first computer?
► What's your favorite game and why?
► What's your favorite book? Movie? TV show?
► Do you prefer open worlds or well-defined quest lines? Do you think a game should/can have both?
► What's your favorite character class?
► How would you briefly describe the mechanics of your favorite game to a non-programmer?
► Do you usually play games to the end?
► What's your Beta test experience? (No, you're not looking for a QA person BUT it doesn't hurt to hire a programmer who thinks like a QA person at least a little, as in being able to vet their own work before they hand off a fix as "done.")
► What's your favorite game of ours and why? (If you've only published one game, they better have played it! And listen for their own words-if they sound like they're parroting what they read about your game, it's entirely possible they haven't actually played it.)
► If you could work in any other area of our industry, what would it be and why?
What makes a game fun for you?
6 :: Explain the issue with the code below and provide an alternative implementation that would correct the problem.
using UnityEngine;
using System.Collections;
public class TEST : MonoBehaviour {
void Start () {
transform.position.x = 10;
}
}
The issue is that you can't modify the position from a transform directly. This is because the position is actually a property (not a field). Therefore, when a getter is called, it invokes a method which returns a Vector3 copy which it places into the stack.
So basically what you are doing in the code above is assigning a member of the struct a value that is in the stack and that is later removed.
Instead, the proper solution is to replace the whole property; e.g.:
using UnityEngine;
using System.Collections;
public class TEST : MonoBehaviour {
void Start () {
Vector3 newPos = new Vector3(10, transform.position.y, transform.position.z);
transform.position = newPos;
}
}
So basically what you are doing in the code above is assigning a member of the struct a value that is in the stack and that is later removed.
Instead, the proper solution is to replace the whole property; e.g.:
using UnityEngine;
using System.Collections;
public class TEST : MonoBehaviour {
void Start () {
Vector3 newPos = new Vector3(10, transform.position.y, transform.position.z);
transform.position = newPos;
}
}
7 :: Can threads be used to modify a Texture on runtime?
Can threads be used to move a GameObject on the scene?
Consider the snippet below:
class RandomGenerator : MonoBehaviour
{
public float[] randomList;
void Start()
{
randomList = new float[1000000];
}
void Generate()
{
System.Random rnd = new System.Random();
for(int i=0;i<randomList.Length;i++) randomList[i] = (float)rnd.NextDouble();
}
}
Improve this code using threads, so the 1000000 random number generation runs without spoiling performance.
No. Texture and Meshes are examples of elements stored in GPU memory and Unity doesn't allow other threads, besides the main one, to make modifications on these kinds of data.
No. Fetching the Transform reference isn't thread safe in Unity.
When using threads, we must avoid using native Unity structures like the Mathf and Random classes:
class RandomGenerator : MonoBehaviour
{
public float[] randomList;
void Start()
{
randomList = new float[1000000];
Thread t = new Thread(delegate()
{
while(true)
{
Generate();
Thread.Sleep(16); // trigger the loop to run roughly every 60th of a second
}
});
t.Start();
}
void Generate()
{
System.Random rnd = new System.Random();
for(int i=0;i<randomList.Length;i++) randomList[i] = (float)rnd.NextDouble();
}
}
No. Fetching the Transform reference isn't thread safe in Unity.
When using threads, we must avoid using native Unity structures like the Mathf and Random classes:
class RandomGenerator : MonoBehaviour
{
public float[] randomList;
void Start()
{
randomList = new float[1000000];
Thread t = new Thread(delegate()
{
while(true)
{
Generate();
Thread.Sleep(16); // trigger the loop to run roughly every 60th of a second
}
});
t.Start();
}
void Generate()
{
System.Random rnd = new System.Random();
for(int i=0;i<randomList.Length;i++) randomList[i] = (float)rnd.NextDouble();
}
}
8 :: Consider the following code snippet below:
class Mover : MonoBehaviour
{
Vector3 target;
float speed;
void Update()
{
}
}
Finish this code so the GameObject containing this script moves with constant speed towards target, and stop moving once it reaches 1.0, or less, units of distance?
class Mover : MonoBehaviour
{
Vector3 target;
float speed;
void Update()
{
float distance = Vector3.Distance(target,transform.position);
// will only move while the distance is bigger than 1.0 units
if(distance > 1.0f)
{
Vector3 dir = target - transform.position;
dir.Normalize(); // normalization is obligatory
transform.position += dir * speed * Time.deltaTime; // using deltaTime and speed is obligatory
}
}
}
{
Vector3 target;
float speed;
void Update()
{
float distance = Vector3.Distance(target,transform.position);
// will only move while the distance is bigger than 1.0 units
if(distance > 1.0f)
{
Vector3 dir = target - transform.position;
dir.Normalize(); // normalization is obligatory
transform.position += dir * speed * Time.deltaTime; // using deltaTime and speed is obligatory
}
}
}
9 :: Okay, we're going to work through a problem here?
Often in game job interviews, you will be presented with a problem to solve, or even a full-blown test, depending on the position. It might be grease board work, it might be a conversation, it might be a level design test, it might even be a code test at a PC.
The premise is that the interviewer wants to see how you work. Often, once you've answered the question, the interviewer will change the parameters to see what you'll do.
But what do you do if you have no clue what's being asked, or if it's outside your area of expertise? That's a panic moment if there ever was one. Take a deep breath and realize that this is a moment where you need to say, "I'm not sure I understand the question," or "That's not something I've done before." But immediately after that, start asking questions about the problem and take a stab at solving it.
That's one of the biggest things you can do at this point -- admit ignorance then have a go anyway. Showing a willingness to try something outside your field of knowledge is huge to interviewers. It shows you want to learn and be more than what you are now. Sometimes, the fact that you tried is more important than the actual result, and sometimes, you'll have an interviewer who will give you hints toward a solution just because you showed that willingness to try. The more junior you are the more likely this is to happen.
Occasionally, interviewers will deliberately put you out of your comfort zone just to see how you'll react, so be aware!
The premise is that the interviewer wants to see how you work. Often, once you've answered the question, the interviewer will change the parameters to see what you'll do.
But what do you do if you have no clue what's being asked, or if it's outside your area of expertise? That's a panic moment if there ever was one. Take a deep breath and realize that this is a moment where you need to say, "I'm not sure I understand the question," or "That's not something I've done before." But immediately after that, start asking questions about the problem and take a stab at solving it.
That's one of the biggest things you can do at this point -- admit ignorance then have a go anyway. Showing a willingness to try something outside your field of knowledge is huge to interviewers. It shows you want to learn and be more than what you are now. Sometimes, the fact that you tried is more important than the actual result, and sometimes, you'll have an interviewer who will give you hints toward a solution just because you showed that willingness to try. The more junior you are the more likely this is to happen.
Occasionally, interviewers will deliberately put you out of your comfort zone just to see how you'll react, so be aware!
10 :: Arrange the event functions listed below in the order in which they will be invoked when an application is closed:
Update()
OnGUI()
Awake()
OnDisable()
Start()
LateUpdate()
OnEnable()
OnApplicationQuit()
OnDestroy()
The correct execution order of these event functions when an application closes is as follows:
Awake()
OnEnable()
Start()
Update()
LateUpdate()
OnGUI()
OnApplicationQuit()
OnDisable()
OnDestroy()
Note: You might be tempted to disagree with the placement of OnApplicationQuit() in the above list, but it is correct which can be verified by logging the order in which call occurs when your application closes.
Awake()
OnEnable()
Start()
Update()
LateUpdate()
OnGUI()
OnApplicationQuit()
OnDisable()
OnDestroy()
Note: You might be tempted to disagree with the placement of OnApplicationQuit() in the above list, but it is correct which can be verified by logging the order in which call occurs when your application closes.