Skip to content

Validation & Diagnostics

ProStream includes validation and diagnostics tools to catch scene issues before conversion and runtime.

ProStreamDiagnostics (Ad-hoc Diagnostics)

Diagnostics Window

The diagnostics window provides on-demand checks outside the normal workflow.

It is implemented as an editor window that lets you:

  • Select a diagnostic engine
  • Optionally scope checks to a specific GameObject hierarchy (default scope is the scene hierarchy)
  • Run a diagnostic pass
  • Apply fixes for diagnostics that provide actionable suggestions

Opening Diagnostics

Keyboard Shortcut: Press Alt+Shift+D to open the diagnostics window.

Menu: Tools → instance.id → ProStream → Diagnostics Window

Diagnostic Tools

The available list depends on which DiagnosticEngine assets are discoverable in your project. The built-in diagnostics include:

  • Check for Missing Meshes
  • Check for Missing Materials
  • Check for Missing Collider Meshes
  • Objects with Missing Scripts
  • Incompatible DOTS Shaders (only compiled when SRP + URP/HDRP symbols are enabled)
  • Extra LOD in Prefab (informational/partial implementation)

Running Diagnostics

  1. Open Diagnostics Window
  2. Select a diagnostic from the selector
  3. Optionally set a target object/folder scope
  4. Configure diagnostic-specific options (if available)
  5. Click Run Diagnostic
  6. Review the summary and results table in the same window

Run DiagnosticDiagnostic Selected

Diagnostic Results

Diagnostic Results

Results are shown in two parts:

  • Summary row
  • Result: overall run state
  • Issue Count: number of diagnostic items returned
  • Message: high-level result text
  • Results table
  • Item: object/material being reported
  • Message: per-item message
  • Details: suggested replacement pairs or usage details when available

Overall result states come from DiagnosticResult.Result and commonly include:

  • NoIssues: no matching problems found
  • IssuesFound: one or more issues were detected
  • Failure: diagnostic could not run as expected (for example, required project assets not found)
  • InvalidType: unsupported target type was selected
  • Complete: a fix operation finished

Per-item states in the table can be different from the overall state:

  • Suggestion: issue with a suggested target/fix candidate
  • Warning: issue found but no suggested replacement
  • Success/Failure: individual fix attempt result

Run Fix is only shown when the diagnostic supplies suggestions and has a fix method wired.

Common Issues and Fixes

Missing Mesh References

Issue: MeshFilter has no mesh assigned

Fix:

  1. Select the object in hierarchy
  2. Assign a mesh in MeshFilter component
  3. Or remove the MeshFilter if not needed

Notes:

  • The diagnostic attempts exact-name mesh matching for suggestions.
  • Run Fix applies suggested mesh assignments where available.

Null Materials

Issue: Renderer has null material slots

Fix:

  1. Select the object
  2. Assign materials to all slots in Renderer
  3. Or remove unused material slots

Notes:

  • Suggestions are based on exact name matching.
  • Run Fix fills empty slots when a suggestion exists.

Missing Collider Meshes

Issue: MeshCollider has no shared mesh assigned

Fix:

  1. Assign a suitable collider mesh manually
  2. Or use Run Fix when a suggestion is available

Notes:

  • The diagnostic searches for MeshCollider components with missing mesh references.
  • Suggested replacements are generated from mesh matching logic.

Missing Scripts

Issue: GameObject has one or more missing script components

Fix:

  1. Restore the missing script asset/reference
  2. Or manually remove missing component slots

Notes:

  • The current diagnostics UI typically does not show a fix action for this check.

Incompatible Shaders

Issue: Shader not compatible with DOTS/Entities

Fix:

  1. Replace with DOTS-compatible shader
  2. Use URP/HDRP Lit shader
  3. Or create custom DOTS shader

Notes:

  • This diagnostic has no automatic fix button.
  • Advanced toggles may be available (for example V2 search and strict verification).

Extra LOD in Prefab

Issue: LODGroup setup may not align with prefab child hierarchy

Fix:

  1. Review child object structure versus LOD levels
  2. Remove extra children or adjust LODGroup levels as needed

Notes:

  • This diagnostic is informational/partial and does not provide automatic fixes.

Additional Behavior Notes

  • Include Disabled GameObjects is a window-level option in the header menu.
  • If no diagnostic is selected, the window shows a placeholder with a Select Diagnostic action.
  • Missing Scripts currently reports issues, but in the current editor flow it does not surface actionable suggestions, so a fix button is typically not shown.

See Also

ProStream - High-performance scene streaming for Unity