0% found this document useful (0 votes)
422 views

Exam Objective

This document provides information about Unity Certified Programmer certification, including the role and responsibilities of a Unity programmer, prerequisites for the certification, core skills required, exam topics, and a sample exam question.

Uploaded by

Dreams Studio
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
422 views

Exam Objective

This document provides information about Unity Certified Programmer certification, including the role and responsibilities of a Unity programmer, prerequisites for the certification, core skills required, exam topics, and a sample exam question.

Uploaded by

Dreams Studio
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

Unity Certified

Programmer

© 2018 Unity Technologies 1 | unity3d.com


The role
Unity programming professionals focus on developing interactive applications
using Unity. The Unity Programmer brings to life the vision for the application
using the features of the Unity Editor, together with the visual and audio assets
created by other members of the software development team. The Unity Pro-
grammer is a programming generalist, adept at solving difficult problems with
code, and responsible for contributing to a broad range of potential technical
tasks, including integrating art assets, coding the user interface, scripting user
interactions and game system rules, implementing application state logic, simu-
lating physics, debugging code, and optimizing performance.

Unity Certified Programmer is a professional certification for entry-level to


mid-level programmers and graduating post-secondary students seeking
programming roles in a variety of industries. This certification shows potential
employers that the holder:
• Employs programming acumen within the context of professional software
development processes to contribute to the creation and maintenance of
applications built using the Unity Engine
• Has an aptitude for technical processes, is logically oriented and
resourceful
• Can be entrusted to handle routine to mid-level programming tasks inde-
pendently and to work through complex technical challenges with more
senior engineers

Job titles for this role


• Gameplay Programmer
• Software Engineer
• Software Developer
• Unity Developer
• Mobile Application Developer

© 2018 Unity Technologies 2 | unity3d.com


Prerequisites
This certification was created for programmers who are recent college grad-
uates in game programing, computer science, or related fields; independent
learners who have completed 2 or more years of college-equivalent study or
work experience in programming; or early-career to mid-career professionals
who have been using Unity professionally. Candidates should come to the
exam with previous hands-on experience programming interactive applica-
tions with Unity by themselves or as part of a cross-functional team, resulting
in a completed prototype or technical demo.

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

Note: This certification was developed for Unity version 2017.3.

© 2018 Unity Technologies 3 | unity3d.com


Core skills
The core skills in this field of work focus on contributing to the technical exe-
cution of a project from conception through launch, and beyond.

Programming Core Interactions


• Implement and configure game object behavior and physics
• Implement and configure inputs and controls
• Implement and configure camera views and movement

Working in the Art Pipeline


• Understand materials, textures, and shaders, and write scripts that inter-
act with Unity’s rendering API
• Understand lighting, and write scripts that interact with Unity’s lighting API
• Understand 2D and 3D animation, and write scripts that interact with Uni-
ty’s animation API
• Understand particle systems and effects, and write scripts that interact
with Unity’s particle system API

Developing Application Systems


• Interpret scripts for application interface flow such as menu systems, UI
navigation, and application settings
• Interpret scripts for user-controlled customization such as character-cre-
ators, inventories, storefronts, and in-app purchases
• Analyze scripts for user progression features such as scoring, leveling,
and in-game economies utilizing technologies such as Unity Analytics and
PlayerPrefs
• Analyze scripts for 2D overlays such as heads-up displays (HUDs), mini-
maps, and advertisements
• Identify scripts for saving and retrieving application and user data
• Recognize and evaluate the impact of networking and multiplayer
functionality

© 2018 Unity Technologies 4 | unity3d.com


Programming for Scene and Environment Design
• Determine scripts for implementing audio assets
• Identify methods for implementing GameObject instantiation, destruction,
and management
• Determine scripts for pathfinding with the Unity navigation system

Optimizing for Performance and Platforms


• Evaluate errors and performance issues using tools such as the Unity
Profiler
• Identify optimizations to address requirements for specific build platforms
and/or hardware configurations
• Determine common UI affordances and optimizations for XR platforms

Working in Professional Software Development teams


• Recognize concepts associated with the uses and impacts of version
control with technologies such as Unity Collaborate
• Demonstrate knowledge of developer testing and its impact on the soft-
ware development process, including Unity Profiler and traditional debug-
ging and testing techniques
• Recognize techniques for structuring scripts for modularity, readability,
and reusability

© 2018 Unity Technologies 5 | unity3d.com


Certification
Exam Topics
Programming Core Interaction
• Implement behaviors and interactions of Gameobjects and environments
• Identify methods to implement inputs and controls
• Identify methods to implement camera views and movement

Working in Art Pipeline


• Knowledge of materials, textures, and shaders - Unity rendering API
• Knowledge of lighting - Unity lighting API
• Knowledge of 2D and 3D animation – Unity animation API
• Knowledge of particle systems – Unity particles API

Developing Application Systems


• Application interface flow such as menu systems, UI navigation and appli-
cation settings
• User-controlled customization such as character-creators, inventories,
storefronts, and in-app purchases
• Implement user progression features such as scoring, leveling and in-
game economies utilizing tools such as Unity Analytics
• Implement 2D overlays such as heads-up displays(HUDs), mini-maps and
advertisements
• Saving and retrieving application and user data
• Recognize the value and impact of networking and multiplayer
functionality

© 2018 Unity Technologies 6 | unity3d.com



Programming for Scene and Environment Design
• Determine scripts for implementing audio assets
• Identify methods for implementing GameObject instantiation, destruction
and management
• Determine scripts for pathfinding with the Unity navigation system

Optimizing for Performance and Platforms


• Evaluate errors and performance issues using tools such as the Unity
Profiler
• Identify optimizations to address requirements for specific build platforms
and/or hardware configurations
• Determine common UI affordances and optimizations for XR platforms

Working in Software Development Teams


• Version Control: Impacts and uses of tools such as Unity Collaborate
• Testing and it’s impact to software development process
• Recognizing techniques for structuring scripts for modularity, readability
and reusability

© 2018 Unity Technologies 7 | unity3d.com


Sample Questions
Question 1
A Programmer must implement a UI menu system. Each menu consists of
a UI Panel and one or more UI Buttons, all of which are parented under a UI
Canvas object. The entire UI menu system will be created in a separate scene
that is loaded additively.

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.

© 2018 Unity Technologies 8 | unity3d.com


Question 2
A 3D endless runner game is set along multiple parallel train tracks in a rail
yard. The Player is always running forward on the tracks, and must avoid on-
coming trains by jumping over them or onto an adjacent track.
Each new train added to the track is added behind all other trains on that
track, however because trains move toward the Player at varying speeds, or
not at all, trains occasionally overlap each other, which needs to be fixed.

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.

© 2018 Unity Technologies 9 | unity3d.com


Question 3
A Programmer is working on a dark and moody room and must create a flick-
ering torch that casts a dancing, eerie shadow over the walls, floor, and ceil-
ing. The Programmer writes these functions on a MonoBehaviour attached
to the torch:

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?

A Set light.lightBakeType to LightmapBakeType.Realtime

B Set light.range to 10

C Set light.shadows to LightShadows.Hard

D Set light.type to LightType.Point

© 2018 Unity Technologies 10 | unity3d.com


Question 4
A Programmer is developing a mining simulation game where the Player can
dig through the ground in search of minerals. In one of the sites, the player
can create a tunnel that intersects an existing cave system. The Design Doc-
ument specifies that any audio that occurs in both the current caves or new
tunnels should have some reverb. The Programmer needs to make sure the
user is consistently in the closest cave’s ReverbZone.

How should the Programmer manipulate the AudioReverbZone properties to


meet these requirements?

A Increase the reflections to fit the new area.

B Increase the maxDistance of both ReverbZones so that they touch within the
new connecting area.

C Increase the reverb to accommodate the new area.

D Increase the decayTime on the new area.

© 2018 Unity Technologies 11 | unity3d.com


Question 5
While writing a loading function, a Programmer receives a compile error:

error CS1624: The body of `CustomAnalytics.LevelLoading()’


cannot be an iterator block because `void’ is not an iter-
ator interface type

void LevelLoading(){
AsyncOperation async = SceneManager.LoadSceneAsyn-
c(“Level_01”);
while (!async.isDone)
{
yield return null;
}
}

What should the Programmer do to fix this error?

A Change yield return null to yield return WaitForSeconds(0)

B Change void LevelLoading() to IEnumerator LevelLoading

C Change SceneManager.LoadSceneAsync(“Level_01”) to
Application.LoadLevelAdditiveAsync(“Level_01”)

D Change while (!async.isDone) to


while (!async.allowSceneActivation)

© 2018 Unity Technologies 12 | unity3d.com


Question 6
A driving game’s input system is mapped so that the horizontal input axis
controls steering. During testing, it is discovered that some joystick devices
register steering input even when the stick is centered.

Which change should be made to the axis in the input system to resolve this
issue?

A Increase Gravity

B Set Snap to true

C Increase Deadzone

D Decrease Sensitivity

© 2018 Unity Technologies 13 | unity3d.com


Question 7
In an adventure game set on an alien planet, the player must exterminate
various life forms. The player’s score increases for each kill. The Design Doc-
ument states that the score must be linked to a player’s account to retrieve
later even if the player is on a different play session or a different device.

What is the most reliable method for the Programmer to store the score
data?

A Use DontDestroyOnLoad() on the GameObject holding the score data and


upload data to a server right before application quits

B Save score in to PlayerPrefs every time it gets updated and uploaded to


a server right before the application quits

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

© 2018 Unity Technologies 14 | unity3d.com

You might also like