All Practice Exams

100+ Free Unity Certified User: Programmer Practice Questions

Pass your Unity Certified User: Programmer exam on the first try — instant access, no signup required.

✓ No registration✓ No credit card✓ No hidden fees✓ Start practicing immediately
100+ Questions
100% Free
1 / 100
Question 1
Score: 0/0

What is the relationship between a MonoBehaviour script file and the class it contains, by Unity convention?

A
B
C
D
to track
2026 Statistics

Key Facts: Unity Certified User: Programmer Exam

~$119

Exam Voucher Cost (USD)

Certiport / Unity

~40

Number of Questions

Certiport

50 minutes

Time Limit

Certiport

500 / 700

Passing Score (200-700 scale)

Unity / Certiport

150 hours

Recommended Unity Experience

Unity / Certiport

No expiration

Credential Validity

Certiport

The Unity Certified User: Programmer exam is an entry-level, multiple-choice certification from Unity delivered through Certiport, with a voucher cost around $119, roughly 40 questions in about 50 minutes, and a passing score of 500 on a 200-700 scale. It covers three objective domains: Debugging and Problem-Solving, Code Creation and Control, and Code Evaluation. The credential does not expire, and Unity recommends about 150 hours of Unity experience beforehand.

Sample Unity Certified User: Programmer Practice Questions

Try these sample questions to test your Unity Certified User: Programmer exam readiness. Each question includes a detailed explanation. Start the interactive quiz above for the full 100+ question experience with AI tutoring.

1You need a message to appear in the Unity Console that reads "Player has spawned". Which line of code produces that output?
A.Console.WriteLine("Player has spawned");
B.Debug.Print("Player has spawned");
C.print.Log("Player has spawned");
D.Debug.Log("Player has spawned");
Explanation: Debug.Log() is the Unity method that writes a message to the Console window. It accepts a string (or any object whose ToString is shown) and is the primary way to trace runtime values in Unity scripts.
2A script throws a NullReferenceException on the line rb.AddForce(Vector3.up); where rb is declared as private Rigidbody rb;. What is the most likely cause?
A.The Vector3.up value is null
B.AddForce only works inside FixedUpdate
C.The rb field was never assigned, so it is still null
D.Rigidbody is not a valid Unity type
Explanation: A NullReferenceException means you tried to use a reference variable that points to nothing. Because rb was declared but never assigned (for example via GetComponent<Rigidbody>()), it holds null, so calling AddForce on it fails.
3Which Unity API method retrieves a component, such as an Audio Source, attached to the same GameObject as the script?
A.FindComponent<AudioSource>()
B.RequireComponent<AudioSource>()
C.AddComponent<AudioSource>()
D.GetComponent<AudioSource>()
Explanation: GetComponent<T>() returns the component of type T attached to the same GameObject, or null if none exists. It is the standard way to access sibling components like AudioSource, Rigidbody, or Collider from a script.
4You want to print the current value of an integer score variable along with descriptive text, like "Score: 50". Which statement is correct?
A.Debug.Log("Score: score");
B.Debug.Log("Score: " - score);
C.Debug.Log(Score: score);
D.Debug.Log("Score: " + score);
Explanation: The + operator concatenates a string and a numeric value, automatically converting score to its text form, producing "Score: 50". This is the common pattern for logging variable values with context.
5A teammate needs to move a Transform upward every frame in a way that is independent of frame rate. Which API expression accomplishes this inside Update()?
A.transform.Translate(Vector3.up * speed);
B.transform.Move(Vector3.up * speed);
C.transform.position = Vector3.up;
D.transform.Translate(Vector3.up * speed * Time.deltaTime);
Explanation: Multiplying movement by Time.deltaTime scales it by the time elapsed since the last frame, making motion frame-rate independent. transform.Translate then offsets the object by that amount each frame.
6The Console shows the error "object reference not set to an instance of an object" when calling target.GetComponent<Renderer>(). Which object is null?
A.The Renderer component
B.The GetComponent method
C.The target GameObject reference
D.The Console window
Explanation: The exception occurs while evaluating target before GetComponent runs. If target itself is null, dereferencing it to call GetComponent throws the error, so target is the null reference that must be assigned.
7You need to destroy a GameObject named enemy two seconds after a collision. Which call schedules that?
A.enemy.Destroy(2);
B.Destroy(enemy).After(2);
C.Destroy(enemy, 2);
D.Remove(enemy, 2);
Explanation: Destroy(Object obj, float t) removes the object after an optional delay measured in seconds. Destroy(enemy, 2) waits two seconds and then destroys the enemy GameObject.
8A debug message printed "Health is now 0" and was followed by code that ended the game. Which statement most likely generated that log line?
A.Debug.Log(health = 0);
B.Debug.LogWarning(health);
C.print("Health is now 0" - health);
D.Debug.Log("Health is now " + health);
Explanation: Concatenating the literal "Health is now " with the integer health renders the variable's current value (0) in the message. This matches the displayed text exactly when health equals 0.
9Which Console message type should you use to flag a non-fatal issue, such as a missing optional reference, that you still want highlighted in yellow?
A.Debug.Log()
B.Debug.Assert()
C.Debug.LogError()
D.Debug.LogWarning()
Explanation: Debug.LogWarning() writes a yellow warning entry to the Console, signaling a potential problem that does not stop execution. It sits between informational logs and errors in severity.
10A task requires detecting whether the player is currently holding down the spacebar each frame. Which Input method is appropriate?
A.Input.GetKeyDown(KeyCode.Space)
B.Input.GetKeyUp(KeyCode.Space)
C.Input.GetKey(KeyCode.Space)
D.Input.GetButtonDown(KeyCode.Space)
Explanation: Input.GetKey returns true every frame the key is held down, which is exactly what continuous-hold detection requires. GetKeyDown and GetKeyUp only return true on the single frame of press or release.

About the Unity Certified User: Programmer Exam

The Unity Certified User: Programmer certification validates entry-level skills in C# programming within Unity to create interactivity in games, apps, and AR/VR experiences. The exam is organized into three objective domains: Debugging and Problem-Solving, Code Creation and Control, and Code Evaluation. Candidates read Console and Debug.Log output to reconstruct code, diagnose null references, select correct Unity API methods, declare variables and functions, build keyboard and touch input listeners, catch data-type errors, and recognize Unity naming conventions and accurate code comments. Unity recommends at least 150 hours of Unity use and training before attempting the exam.

Questions

40 scored questions

Time Limit

50 minutes

Passing Score

500 on a 200-700 scale

Exam Fee

~$119 (Unity (delivered via Certiport / Pearson VUE))

Unity Certified User: Programmer Exam Content Outline

~33%

Debugging and Problem-Solving

Given a Debug.Log message, reconstruct the code that produced it; given a code clip and its error message, determine which object(s) are null; and given a programming task that needs a specific API class, choose the correct method, properties, arguments, and syntax (GetComponent, Instantiate, Destroy, Input, Time.deltaTime, Vector3).

~33%

Code Creation and Control

Decide when and how to initialize and use variables, including variable modifiers (public, private, static, const, SerializeField) and data collections such as arrays, Lists, and Dictionaries; construct viable C# function declarations from keywords; and build input listeners for keyboard, mouse, and touch input.

~33%

Code Evaluation

Identify errors caused by a variable whose data type is declared incorrectly; recognize the code clip that follows Unity and C# naming standards (PascalCase classes/methods, camelCase fields); and recognize the comments that accurately describe what a code clip is doing.

How to Pass the Unity Certified User: Programmer Exam

What You Need to Know

  • Passing score: 500 on a 200-700 scale
  • Exam length: 40 questions
  • Time limit: 50 minutes
  • Exam fee: ~$119

Keys to Passing

  • Complete 500+ practice questions
  • Score 80%+ consistently before scheduling
  • Focus on highest-weighted sections
  • Use our AI tutor for tough concepts

Unity Certified User: Programmer Study Tips from Top Performers

1Drill the MonoBehaviour lifecycle until it is automatic: Awake for self-setup, Start before the first frame, Update for per-frame input and logic, FixedUpdate for Rigidbody physics, and LateUpdate for camera-follow code.
2Practice reading Console output and Debug.Log statements so you can reconstruct the exact code line that produced a message, including string concatenation with the + operator.
3Memorize core Unity API calls and their argument order: GetComponent<T>(), Instantiate(prefab, position, Quaternion.identity), Destroy(obj, delay), Input.GetKeyDown/GetKey/GetAxis, and Vector3.Distance.
4Know your data types and collections cold: int vs float (with the f suffix) vs bool vs string, and when to use an array (fixed size) vs a List (Count, Add, Remove) vs a Dictionary (key-value pairs).
5Review C# naming conventions Unity expects: PascalCase for classes and methods, camelCase for fields and locals, and matching the script file name to the public class name.
6Get hands-on with components and physics: add a Rigidbody and Collider, use AddForce for jumps, and distinguish OnCollisionEnter (solid) from OnTriggerEnter (Is Trigger) for pickups.

Frequently Asked Questions

What are the exam facts for the Unity Certified User: Programmer exam?

It is an entry-level, multiple-choice exam from Unity delivered through Certiport, with a voucher cost around $119, roughly 40 questions in about 50 minutes, and a passing score of 500 on a 200-700 scale. The credential does not expire.

What does the Unity Certified User: Programmer exam cover?

It tests foundational C# programming in Unity across three objective domains: Debugging and Problem-Solving, Code Creation and Control, and Code Evaluation. Expect questions on Debug.Log, null references, the Unity API, variables, collections, functions, input listeners, data types, naming conventions, and comments.

How much experience do I need before taking the exam?

There are no formal prerequisites, but Unity recommends at least 150 hours of Unity software use and training. The exam is aimed at students and beginners preparing for an internship or a first role in programming, Unity development, or QA.

Does the certification expire?

No. Once earned, the Unity Certified User: Programmer credential does not expire, so there is no renewal requirement.

Where do I take the exam and what is the retake policy?

The exam is delivered through Certiport at an Authorized Testing Center or from home via Pearson VUE. If you fail the first attempt, a one-day waiting period applies before retaking; a retake voucher purchased with the exam is emailed after a failed attempt.

Is this practice test free?

Yes. All 100 practice questions are completely free, with explanations grounded in real Unity C# code so you can study before buying the roughly $119 official voucher.