Custom Object Placement Tool for VR Scenes

Our video game development company runs independent projects, jointly creates games with the client and provides additional operational services. Expertise of our team allows us to cover all gaming platforms and develop an amazing product that matches the customer’s vision and players preferences.

From immersive apps to game worlds and 3D scenes

Our dedicated team for VR/AR/MR development, Unity production and 3D modeling & animation — with its own case studies and capability decks.

Visit the dedicated studio
Showing 1 of 1All 242 services
Custom Object Placement Tool for VR Scenes
Medium
~1-2 weeks
Frequently Asked Questions

Our competencies

What are the stages of Game Development?

Latest works

  • image_games_mortal_motors_495_0.webp
    Game development for Mortal Motors
    1388
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    A turn-based strategy game set in a fantasy setting, With Fire and Sword
    926
  • image_games_second_team_604_0.webp
    Game development for the company Second term
    544
  • image_games_phoenix_ii_606_0.webp
    3D animation - teaser for the game Phoenix 2.
    591

Custom Object Placement Tool for VR Scenes

In our practice, a VR project's level designer was placing 300 objects manually using the standard Unity Transform gizmo. Each object — position, rotation, scale — was adjusted by hand. A single room took two days. This isn't an artist problem — it's the lack of the right tool. A custom Editor Tool reduces this time to a few hours and pays for itself after the first level.

How a Custom Placement Tool Accelerates Level Design

The standard Unity Transform tool is built for general modeling, not mass placement. It doesn't support surface snapping, random parameters, or overlap checking. Designers manually align objects, leading to fatigue and errors. Our custom tool automates these repetitive tasks, cutting work time by 5–10x per level.

Features Included in a Custom Placement Tool

Snap to surface

An object is placed on any scene surface via Physics.Raycast from the cursor point — floor, walls, sloped planes. Without this, each object must be manually raised or lowered on Y to avoid clipping or floating. Implemented via HandleUtility.GUIPointToWorldRay() + Physics.Raycast() in OnToolGUI() with subsequent Undo.RecordObject() for Ctrl+Z support.

Randomized placement

A left-click selects a random prefab from a set, random rotation within a range, random scale. For organic scenes — bushes, rocks, debris — the tool does in seconds what would take hours manually.

Grid and radial distribution

Select an area — the tool places objects on a grid or circle with defined spacing and random jitter. Useful for regular structures: fences, columns, lamps.

Alignment helpers

Align selected objects on X/Y/Z, distribute with equal spacing between extremes. Standard Unity Align Tools don't handle this as needed.

How the EditorTool Implementation Works

We use the EditorTool class from the Unity Editor Tools API. According to the Unity documentation, it allows intercepting mouse events and drawing custom Handles in the Scene View. For complex tools with UI, we use EditorWindow + SceneView.duringSceneGui callback. The window contains a prefab list (drawn via GUILayout with previews using AssetPreview.GetAssetPreview()), randomization settings, and mode toggle buttons.

A critical point for VR projects: the tool must account for VR placement specifics. Objects in VR are visible from all sides — we need an automatic check for overlaps via Physics.OverlapBox() or Physics.OverlapSphere(). Overlaps are highlighted in red with Handles.DrawWireCube() directly in the Scene View — the designer sees conflicts immediately. Overlap checking takes ~0.05 ms per object, allowing work with 5000 objects without frame drops.

Tool state serialization uses EditorPrefs for simple settings or ScriptableObject for saving placement presets between sessions. A team of 3 can share presets via VCS.

Tip: Use ScriptableObject presets to save randomization settings and prefab sets. This allows quick switching between environment styles.

Case Study: NPC Placement in a VR Escape Room

From our practice: for a client developing a VR escape room with 8 rooms, we needed a tool for placing interactive objects with automatic InteractionZone component assignment. Click on a surface — object placed, XRGrabInteractable added automatically, InteractionLayerMask set by object type (grabbable, pressable, turnable), colliderOffset adjusted for VR grab. The custom placement tool was 8x faster than manual work with the standard Transform tool.

Without the tool, configuring one interactive object took 5–7 minutes manually in the Inspector. With the tool, 15 seconds. Eight rooms with 40–60 objects each: a week of work saved. The custom tool cut placement time by 8x, saving over 100 person-hours on that project. The budget savings on object placement exceeded 150,000 rubles.

Tool Type Estimated Development Time
Basic snap-to-surface placer 2–3 working days
Placer with randomization and presets 4–7 working days
Full level-dressing toolkit 2–4 weeks
Parameter Manual Placement With Custom Tool
Time per room (40 objects) ~2 days 2–3 hours
Error risk High Minimal
Save presets No Yes, via ScriptableObject

Our Work Process

  1. Analyze your current workflow and identify bottlenecks.
  2. Design tool functionality with VR specifics in mind.
  3. Develop a prototype in 1–3 days and demonstrate it.
  4. Iterative testing and refinement.
  5. Deploy and train your team.

Contact us for a project assessment. Our certified engineers with 5+ years of game development experience and over 10 completed projects guarantee the tool will be fully customized to your pipeline. Get a consultation on creating a placement tool for your team.

Estimated timelines are in the table above; pricing is determined individually after requirements analysis. Reach out to us — we'll propose the optimal solution.