Exam Objective
Exam Objective
Programmer
Prerequisite Experience:
• 2+ years practical experience in video game or 3D interactive programming
using Unity
• 2+ years practical experience in computer programming including C#
• Experience in the full software development lifecycle working from concept
through completion
• Understanding of professional applications for software development with
Unity including game development, interactive entertainment, and design
visualization
• Basic understanding of the visual/3D asset and animation pipeline in Unity,
including character and environment setups
• Understanding of professional team software development practices including
unit testing and version control
• Knowledge of Unity Services for collaboration, monetization, live operations,
and multiplayer
• Understanding of mathematics critical to 3D interactive development, including
linear algebra and matrix operations
The art style for the panels and buttons should be consistent (color, texture,
button transition type, etc.), but the Art Director has not locked these deci-
sions down yet. She would like to work on these settings concurrently with the
Programmer’s UI work. Her changes would take effect on all new and existing
objects in the scene.
What would be the best way for the Programmer to use Unity’s functionality
to easily create a functional menu system while meeting the requirement of
allowing the Art Director to work concurrently (and independently) on the
look and feel?
A Create subclasses for UI.Button and UI.Panel, and set the look and
feel values programmatically.
B Create new button and panel materials, and assign them to all buttons and
panels in the scene.
C Use prefabs for the button and panel, and have the Art Director modify the
prefabs.
D Write a script to search/replace values in the scene file based on the Art
Director’s input.
What is the most performant way to prevent new trains from overlapping with
trains already on the same track?
A When spawning a train on the track, determine a spawn position that will
avoid the problem by using the speeds of the new train and the train last
placed on that track as well as the point at which the train last placed on the
track will de-spawn as it passes the player.
B When a train is moving, raycast forward from the front of the train, and push
any train hit by the raycast forward with the faster train’s speed.
C When spawning a train on the track, add a Rigidbody to it, and then use forc-
es to move trains.
D When spawning a train on the track, use a BoxCast with a length proportion-
al to the train’s speed to ensure that it will not collide with another train until it
is behind the Camera.
void Start()
{
Light light = GetComponent<Light>();
light.lightMapBakeType = LightMapBakeType.Mixed;
light.type = LightType.Area;
light.shadows = LightShadows.Soft;
light.range = 5f;
}
void Update()
{
GetComponent<Light>().intensity = Mathf.PerlinNoise(-
Time.time, 0);
}
The torch does not cast any light or shadow during run time. The light is set to
the default values in the Editor.
What should the Programmer change for this code to work as required?
B Set light.range to 10
B Increase the maxDistance of both ReverbZones so that they touch within the
new connecting area.
void LevelLoading(){
AsyncOperation async = SceneManager.LoadSceneAsyn-
c(“Level_01”);
while (!async.isDone)
{
yield return null;
}
}
C Change SceneManager.LoadSceneAsync(“Level_01”) to
Application.LoadLevelAdditiveAsync(“Level_01”)
Which change should be made to the axis in the input system to resolve this
issue?
A Increase Gravity
C Increase Deadzone
D Decrease Sensitivity
What is the most reliable method for the Programmer to store the score
data?
C Use a static value to store the score data so it will be available in the next play
session
D Use data serialization to persistently store the score data and upload it to a
server
Correct Answers: C, A, D, B, B, C, D