Unity 3D Developer

  Home  Applications Programs  Unity 3D Developer


“Unity Developers Frequently Asked Questions in various Unity Developers job Interviews by interviewer. The set of questions here ensures that you offer a perfect answer posed to you. So get preparation for your new job hunting”



62 Unity 3D Developer Questions And Answers

1⟩ 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?

 205 views

2⟩ 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.

 214 views

3⟩ 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;

}

}

 205 views

4⟩ 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?

 222 views

5⟩ 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?

 215 views

6⟩ 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?

 210 views

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();

}

}

 232 views

8⟩ 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!

 214 views

9⟩ 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

}

}

}

 228 views

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.

 226 views

11⟩ Which of the following examples will run faster? 1000 GameObjects, each with a MonoBehaviour implementing the Update callback. One GameObject with one MonoBehaviour with an Array of 1000 classes, each implementing a custom Update() callback?

The correct answer is 2.

The Update callback is called using a C# Reflection, which is significantly slower than calling a function directly. In our example, 1000 GameObjects each with a MonoBehaviour means 1000 Reflection calls per frame.

Creating one MonoBehaviour with one Update, and using this single callback to Update a given number of elements, is a lot faster, due to the direct access to the method.

 206 views

12⟩ Explain why Time.deltaTime should be used to make things that depend on time operate correctly?

Real time applications, such as games, have a variable FPS. They sometimes run at 60FPS, or when suffering slowdowns, they will run on 40FPS or less.

If you want to change a value from A to B in 1.0 seconds you can't simply increase A by B-A between two frames because frames can run fast or slow, so one frame can have different durations.

The way to correct this is to measure the time taken from frame X to X+1 and increment A, leveraging this change with the frame duration deltaTime by doing A += (B-A) * DeltaTime.

When the accumulated DeltaTime reaches 1.0 second, A will have assumed B value.

 228 views

13⟩ Explain, in a few words, what roles the inspector, project and hierarchy panels in the Unity editor have. Which is responsible for referencing the content that will be included in the build process?

The inspector panel allows users to modify numeric values (such as position, rotation and scale), drag and drop references of scene objects (like Prefabs, Materials and Game Objects), and others. Also it can show a custom-made UI, created by the user, by using Editor scripts.

The project panel contains files from the file system of the assets folder in the project's root folder. It shows all the available scripts, textures, materials and shaders available for use in the project.

The hierarchy panel shows the current scene structure, with its GameObjects and its children. It also helps users organize them by name and order relative to the GameObject's siblings. Order dependent features, such as UI, make use of this categorization.

The panel responsible for referencing content in the build process is the hierarchy panel. The panel contains references to the objects that exist, or will exist, when the application is executed. When building the project, Unity searches for them in the project panel, and adds them to the bundle.

 226 views

14⟩ What's your biggest weakness? Or, if I hired you, what would I regret about it in six months?

This is a common question in all job interviews. There are generally two kinds of responses: the brutally honest and damning one ("I get upset with people who don't carry their load"), and the sycophantic one ("I'm a perfectionist").

What most employers are looking for is an honest answer that is followed up with an example of something you have done to work on your weakness. For example, you can say, "My workspace tends to become extremely disorganized," as long as you follow it up with, "but recently, I've put in a lot of effort to go paperless, and I'm extremely systematic in the way I manage my email inbox."

The other secret to this question is not so much in the answer but how long you take to respond. If you answer too quickly, you might be suggesting that you already know all your worst points because they are blatantly obvious and you've been told so many times. If you take too long, it will seem as if you're searching for an answer that sounds good, doesn't make you look bad, and is something the interviewer would be happy to hear. Again, it gives the perception that you are being ingratiating rather than honest.

By the way, the best answer I've heard is, "I don't know. What do you think I'd regret in six months if I worked here?"

 238 views

15⟩ Explain why deferred lighting optimizes scenes with a lot of lights and elements?

During rendering, each pixel is calculated whether it should be illuminated and receive lightning influence, and this is repeated for each light. After approximately eight repeated calculations for different lights in the scene, the overhead becomes significant.

For large scenes, the number of pixels rendered is usually bigger than the number of pixels in the screen itself.

Deferred Lighting makes the scene render all pixels without illumination (which is fast), and with extra information (at a cost of low overhead), it calculates the illumination step only for the pixels of the screen buffer (which is less than all pixels processed for each element). This technique allow much more light instances in the project.

 244 views

17⟩ Why do you want to work here as Unity3D Developer?

(This question implicitly includes, "Why do you want to leave where you are?" if you're currently employed.)

This question is an open opportunity to show you've done some research on the company where you're interviewing. All companies and interviewers are flattered when the interviewee knows who they are, knows what games they make, and wants to be a part of their experience. Do your homework and put on a good show!

Don't say things like, "I need a job," or "I need to move to Sacramento." Instead, pick a few things that are germane to the company in question. The more specific your reasons are tied to the company, the better. "I want to work on FPS shooters" isn't as good an answer as "I want to work on Game Franchise X because I played the first two games and still see potential for future growth of the product." It's sycophantic, yes, but interviewers are as prone to flattery as anyone else -- although don't give that as your only reason.

When explaining why you want to leave your current job, the trick is to not be negative. Pick a couple of points that are inarguable, for example, "There was no career development" or "They weren't working on the kinds of games I'm interested in," rather than "Their management is clueless and they are going to die soon." The game industry is a small community -- you could very well be talking smack about your interviewer's close buddy.

If you were let go or fired, it's better to say something like, "We decided to part ways," or "It was my time to leave," rather than go into too much detail, unless directly pressed. In that case, the interviewer probably already knows what went down and is just looking to see what you'll say. Answer the question quickly and without negativity, and move on. You want to leave a positive impression.

 225 views

19⟩ Where do you want to be in five years?

Personally, I love this question because it reveals if a prospective candidate has a plan at all or is just drifting from job to job as so many are wont to do. There's nothing wrong per se with people who drift along the currents, it's just that those with a plan (or at least a desire to move in a particular direction) are generally much more interesting people. Plus, they are almost always inherently more predictable, which is always a benefit for employers.

Having a desire to move forward helps everyone. It helps you measure your progress, and it gives the company a plan to help you get there.

Of course, it does depend on you knowing what you want. Most people tend to know what they don't want, but not necessarily what they do want, which is a problem -- particularly if you express that in an interview. Interviewers would rather have a list of things you want to attain rather than things you don't.

One optimal answer is, "Still working for you making games," but it smacks of sucking up, so I'd recommend saying something a little more generic: "Still looking for a challenge and putting in that extra effort to make great games."

The best response I've ever heard to that question was, "I want your job!" and the individual who said it to me indeed has my old job! But be wary of sounding confrontational.

 220 views

20⟩ Explain what a vertex shader is, and what a pixel shader is?

Vertex shader is a script that runs for each vertex of the mesh, allowing the developer to apply transformation matrixes, and other operations, in order to control where this vertex is in the 3D space, and how it will be projected on the screen.

Pixel shader is a script that runs for each fragment (pixel candidate to be rendered) after three vertexes are processed in a mesh's triangle. The developer can use information like the UV / TextureCoords and sample textures in order to control the final color that will be rendered on screen.

 216 views