Skip to main content

2nd quiz


Question 1

If it says, “Hello there!” in the console, what was the code used to create that message?

Debug(“Hello there!”);

Debug.Log("Hello there!");

Debug.Console(“Hello there!”);

Debug.Log(Hello there!);


Correct


Debug.Log() prints messages to the console and can accept String parameters between quotation marks, such as “Hello there!”

Question 2

If you want to destroy an object when its health reaches 0, what code would be best in the blank below?

Select image to expand


health > 0

health.0

health < 1

health < 0

Correct

Since the “health” variable is an int, anything less than 1 would be “0”. The sign for “less than” is “<”.

Question 3

The code below creates an error that says, “error CS1503: Argument 1: cannot convert from 'UnityEngine.GameObject[]' to 'UnityEngine.Object'”. What could you do to remove the errors?

A. On line 1, change “GameObject[]” to “GameObject”

B. On line 1, change “enemyPrefabs” to “enemyPrefabs[0]”

C. On line 3, change “Start()” to “Update()”

D. On line 5, change “enemyPrefabs” to “enemyPrefabs[0]”

Either A or D

Both A and D together

Both B and C together

Incorrect

“GameObject[]” is a GameObject array. You cannot instantiate an array, but you can instantiate an object inside an array. So you could either remove the array and have Instantiate use an individual object (option A) or you could use an GameObject index of that Array (option D), but both would not work.

Question 4

Which comment best describes the following code?

// If player collides with another object, destroy player

// If enemy collides with another object, destroy the object

// If player collides with a trigger, destroy trigger

// If player collides with another object, destroy the object

Since it’s inside the PlayerController class, and it is destroying other.gameObject, it is destroying something that the player collides with.

Question 5

If you want to move the character up continuously as the player presses the up arrow, what code would be best in the two blanks below:


GetKey(KeyCode.UpArrow)

GetKeyDown(UpArrow)

GetKeyUp(KeyCode.Up)

GetKeyHeld(Vector3.Up)

Incorrect

“Input.GetKey” tests for the user holding down a key (as opposed to KeyKeyDown, which test for a single press down of a Key).

Question 6

Read the documentation from the Unity Scripting API and the code below. Which of the following are possible values for the randomFloat and randomInt variables?


randomFloat = 100.0f; randomInt = 0;

randomFloat = 100.0f; randomInt = 100;

randomFloat = 50.5f; randomInt = 100;

randomFloat = 0.0f; randomInt = 50.5;

Incorrect

As it says in the documentation, Random.Range does not include the maximum value for integers, but does include the maximum value for floats. This means that randomInt cannot be 100, but randomFloat can be.

Question 7

You are trying to randomly spawn objects from an array. However, when your game is running, you see in the console that there was an “error at Assets/Scripts/SpawnManager.cs:5. IndexOutOfRangeException: Index was outside the bounds of the array.” Which line of code should you edit in order to resolve this problem and still retain the random object functionality?


Line 2

Line 3

Line 4

Line 5

Correct

Line 4, which generates the objectIndex, must be generating an index value that is too high for the number of objects in the array. The best thing to do would be to change it to “Random.Range(0, randomObjects.Length);

Question 8

If you have made changes to a prefab in the scene and you want to apply those changes to all prefabs, what should you click?


The “Create” or "+" drop-down at the top of the Hierarchy

The “Open” button at the top of the Inspector

The “Overrides” drop-down at the top of the Inspector

The “Add Component” button at the bottom of the Inspector

Correct

The “Override” drop-down will allow you to apply any changes you’ve made to your individual prefab to the original prefab object.

Question 9

Read the documentation from the Unity Scripting API below. Which of the following is a correct use of the InvokeRepeating method?

InvokeRepeating(“Spawn, 0.5f, 1.0f”);

InvokeRepeating(“Spawn”, 0.5f, 1.0f);

InvokeRepeating(“Spawn", gameObject, 1.0f);

InvokeRepeating(0.5f, 1.0f, “Spawn”);

Correct

According to the Scripting API, InvokeRepeating requires a string parameter, then two floats.

Question 10

You’re trying to create some logic that will tell the user to speed up if they’re going too slow or to slow down if they’re going too fast. How should you arrange the lines of code below to accomplish that?

4, 6, 1, 2, 5, 9, 7, 8, 3

void Update() { if (speed < 10) {Debug.Log(speedUp); } else if (speed > 60) { Debug.Log(slowDown); } } private float speed; private string slowDown = "Slow down!"; private string speedUp = "Speed up!";

6, 1, 2, 5, 7, 8, 3, 4, 9

if (speed < 10) { Debug.Log(speedUp); } else if (speed > 60) { Debug.Log(slowDown); } private float speed; private string slowDown = "Slow down!"; private string speedUp = "Speed up!"; void Update() { }

7, 8, 3, 4, 6, 5, 2, 1, 9

private float speed; private string slowDown = "Slow down!"; private string speedUp = "Speed up!"; void Update() { if (speed < 10) { Debug.Log(slowDown); } else if (speed > 60) { Debug.Log(speedUp); } }

7, 8, 3, 4, 6, 1, 2, 5, 9

private float speed; private string slowDown = "Slow down!"; private string speedUp = "Speed up!"; void Update() { if (speed < 10) { Debug.Log(speedUp); } else if (speed > 60) { Debug.Log(slowDown); } }

Incorrect

All variables should be declared first, then the void method, then the if-condition telling them to speed up, then the else condition telling them to slow down.