DIY Application

I made significant contributions to a DIY VR project, focusing exclusively on the Inspector section, which provides users with a detailed, intuitive interface for interacting with selected objects. This system offers a comprehensive overview of every aspect of the selected object, including its properties and components, giving users the ability to easily modify and manage the objects attributes. By ensuring the interface was user-friendly and visually clear, I helped create a more seamless and efficient workflow for end users. The inspector also supports advanced functionalities such as drag-and-drop operations, multi-object selection, and real-time updates, making it a versatile tool for managing objects within the VR environment.

Tools & Softwares Used

Unity Engine and Oculus Quest

Team Information

  • Rahul - Custom Inspector Development

Project Description

The project was setup completely in Unity Engine and it was designated to run on Oculus Quest VR device. The project was managed by two members (including me) and my task was to create a custom inpsector setup that can used in runtime, mimicing the Unity Inspector. In the DIY VR project, the inspector section plays a critical role in providing a clear, intuitive interface for interacting with objects in the virtual environment. It is designed to give users direct control over the selected object by displaying all relevant properties and components in a well-organized manner.


  • Transform Section : This section prominently shows the core properties of the object, such as its name, position, rotation, and scale values. Users can directly edit these properties to adjust how the object appears and behaves in the scene.

  • Component List Section: Below the transform section is a list of all components attached to the object. Each component is represented by a button with an icon, making it easy to identify at a glance. These components can include built-in components like rigidbodies or colliders, as well as custom scripts or user-defined components.

  • Component Details: When a user clicks on a component button, detailed information about that component is displayed. This information is broken down into fields and references. Fields can include any editable property within the component, while references point to other objects or components in the scene. The system uses reflection to automatically extract and display all the fields in a clean, readable format.

  • Reference Selection Panel: If a component contains references (e.g., to a collider or another object), clicking a reference button opens a small panel displaying all relevant game objects that can be assigned to this reference. For instance, if the reference is a collider, the panel will list all game objects that have collider components. Users can then either select an object from the list or use a drag-and-drop feature to assign it.

  • Drag-and-Drop Support: The inspector allows users to drag objects from the scene directly into the reference fields in the inspector, making it simple to assign components and objects without needing to type in or search for names manually.

  • Lock Button: A lock button is provided to keep the current object’s inspector view fixed, allowing users to interact with other parts of the scene without losing the view of the currently selected object’s details. This is especially useful when adjusting multiple objects or comparing settings across objects.

  • Default Component Selection: Upon selecting an object, the first component in the list is automatically selected, and its details are loaded into the inspector. This saves the user time by immediately providing access to component information without extra clicks.

  • Multiple Object Selection: When multiple objects are selected in the scene, the inspector intelligently updates to show only the components that are shared across all the selected objects. This allows for bulk-editing shared properties without losing track of individual object specifics.

  • The entire inspector system is designed to enhance usability and efficiency in VR development, ensuring that users have a powerful, flexible tool to manage object properties, components, and references seamlessly. The combination of reflection-based field extraction, dynamic reference selection, and a user-friendly interface makes this inspector a vital part of the VR development workflow.