---
title: "Mission 4 Quiz - Custom VR Development"
content_type: quiz
url: "https://learn.unity.com/quiz/quiz-4-custom-vr-development?language=en"
language: en
difficulty: intermediate
duration_minutes: 10
question_count: 5
correct_answers_to_pass: 4
unity_version:
  - "2022.3"
  - "2021.3"
supported_unity_versions:
  - name: "2022.3"
    url: "https://learn.unity.com/quiz/quiz-4-custom-vr-development.md?language=en&version=2022.3"
  - name: "2021.3"
    url: "https://learn.unity.com/quiz/quiz-4-custom-vr-development.md?language=en&version=2021.3"
available_languages:
  - name: "en"
    url: "https://learn.unity.com/quiz/quiz-4-custom-vr-development.md?language=en"
  - name: "es"
    url: "https://learn.unity.com/quiz/prueba-de-la-mision-4-desarrollo-de-vr-personalizado.md?language=es"
  - name: "ko"
    url: "https://learn.unity.com/quiz/misyeon-4-kwijeu-keoseuteom-vr-gaebal.md?language=ko"
last_updated: "2026-08-04T14:25:11.000Z"
---

# Mission 4 Quiz - Custom VR Development

Test your Mission 4 custom VR development knowledge as part of the VR Development Pathway.

In this quiz, you will test the knowledge and skills you learned in Mission 4 related to Custom VR Development.

This quiz is part of the VR Development Pathway.

## Question 1

Read the documentation below about the XRGrabInteractable class.

![](https://connect-mediagw.unity.com/h1/20220607/learn/images/66b67ff3-c9ae-43cc-ab99-47db8d118615_Quiz4_XRGrabInteractable.png)

True or False:

If you added a new script called MyGrabbableObject using the code below, you would be able to grab it in VR.

```csharp
public class MyGrabbableObject : XRBaseInteractable 
{
}
```

_Select only one_

- True
- False

## Question 2

Read the documentation below about the GetAttachTransform method in the XRBaseInteractable class.

![](https://connect-mediagw.unity.com/h1/20220607/learn/images/8e723072-2498-4ebf-93cb-4516b42d64e2_Quiz4_GetAttachTransform.png)

Let’s say you wanted to override this method in a child class and print a message to the console.

Which of the following code examples would do that with no errors?

Select one answer.

_Select only one_

- ```csharp
  public override Transform GetAttachTransform(IXRInteractor interactor)
  {
  Debug.Log("Attach point on: " + transform.gameObject.name);
  return transform;
  }
  ```
- ```csharp
  protected override Transform GetAttachTransform()
  {
    Debug.Log("Attach point on: " + transform.gameObject.name);
    return transform;
  }
  ```
- ```csharp
  public override Transform GetAttachTransform(IXRInteractor interactor)
  {
   Debug.Log("Attach point on: " + transform.gameObject.name);
  }
  ```
- ```csharp
  private Transform GetAttachTransform(IXRInteractor interactor)
  {
     Debug.Log("Attach point on: " + transform.gameObject.name);
     return transform;
  }
  ```

## Question 3

The code below shows an example of overriding a base class method.

```csharp
protected override void OnSelectEntered(SelectEnterEventArgs args)
{
      // call base method
}
```

Which line of code would successfully call the base method?

Select one answer.

_Select only one_

- ```csharp
  base.OnSelectEntered();
  ```
- ```csharp
  OnSelectEntered(base);
  ```
- ```csharp
  base.OnSelectEntered(args);
  ```
- ```csharp
  OnSelectEntered.callBase();
  ```

## Question 4

Read the documentation on Vector3.Dot below:

![](https://connect-mediagw.unity.com/h1/20220607/learn/images/a58e6b15-3450-4673-be90-a4cbf1baad3d_Quiz4_Vector3Dot.png)

Read through the code below.

```csharp
Vector3 firstVector = new Vector3(-1, 0, 1);
Vector3 secondVector = new Vector3(0, 1, 0);
private void Start()
{
   float dotProduct = Vector3.Dot(firstVector, secondVector);
   Debug.Log(dotProduct);
}
```

What would be printed in the console if the above code was run?

_Select only one_

- \-1
- 0\.5
- 0
- 1

## Question 5

What is the best description of what is happening in the code below?

```csharp
RaycastHit hit;
if (Physics.Raycast(transform.position, Vector3.up, out hit))
{
  Debug.Log(hit.transform.gameObject);            
}
```

Select one answer.

_Select only one_

- If the object directly above this object is casting a ray, print the name of that object.
- If the object directly above this object is colliding with the current object, print the name of that object.
- If the current object is facing upwards, print the name of that object.
- If there is an object directly above the current object with a collider on it, print the name of that object.
