Skip to main content

Binding System Inspector & Tools

Professional Unity-native editor tools for visual binding configuration, debugging, and project-wide management.

Core System Documentation

This page focuses on editor tools and workflow. For binding system architecture, modes, types, and API reference, see Binding System Documentation.


SOAPBind Custom Inspector​

Visual interface for configuring data bindings between SOAP assets and Unity components with intelligent auto-detection and real-time feedback.

SOAP Bind Component Inspector

Inspector Workflow​

Step 1: Add SOAPBind Component

Select GameObject β†’ Add Component β†’ Search "SOAP Bind"

Step 2: Add Binding

  • Click "βž• Add Binding"
  • New BindTarget created and auto-expanded

Step 3: Select Component

  • GameObject Mode: "GameObject" dropdown option
  • Component Mode: Specific component (Image, Text, Slider, etc.)

Step 4: Choose Property/Method

  • Auto-filtered by selected component
  • Properties marked with πŸ“
  • Methods marked with βš™οΈ
  • Organized alphabetically

Step 5: Assign SOAP Asset

  • Drag-and-drop from Project window
  • Object picker (filtered by type compatibility)
  • Shows asset type icon

Step 6: Configure Binding Type (Auto-detected)

Component Type        β†’ Suggested Type
──────────────────────────────────────
TextMeshProUGUI β†’ UI
Image, Slider β†’ UI
Transform β†’ Transform
Animator β†’ AnimatorParameter
Light β†’ Light
AudioSource β†’ AudioSource
Renderer β†’ Renderer
GameObject β†’ GameObject
Other β†’ Property

See Binding Types Documentation for details.

Step 7: Select Binding Mode

  • VariableToTarget - Display data (Variable β†’ Component)
  • TargetToVariable - User input (Component β†’ Variable)
  • TwoWaySync - Bidirectional synchronization
  • InitialSync - One-time setup

See Binding Modes Documentation for detailed mode explanations with examples.

Step 8: Optional - Value Transformation

  • Enable "Use Transformation"
  • Edit AnimationCurve for numeric conversion
  • Set Input Range (min, max)
  • Set Output Range (min, max)
  • Enable "Invert Bool" for boolean logic inversion

See Transformation Documentation for comprehensive examples.

Step 9: Optional - String Formatting

  • Enable "Use String Format"
  • Enter format string: "HP: {0:F0}%"
  • Supports full C# composite format syntax
  • Preview shows example output

See String Formatting for format examples.

Step 10: Optional - Advanced Settings

  • Auto Update: Enable/disable automatic synchronization
  • Update Interval: Seconds between updates (0 = event-driven)
  • Validate On Bind: Startup validation toggle
  • Log Bind Events: Debug logging toggle

Visual Status Indicators​

Inspector displays real-time binding status:

βœ… Valid      - Configuration correct, binding operational
⚠️ Warning - Non-critical issue (performance hint, default format)
❌ Error - Invalid configuration (missing refs, type mismatch)
πŸ”„ Processing - Currently updating (Play mode only)
⏸️ Disabled - Auto-update off or InitialSync completed

Performance Monitoring​

Enable "Show Performance Metrics" checkbox for real-time analysis:

Per-Binding Metrics:

  • Last execution time (milliseconds)
  • Total update count
  • Average execution time
  • Color-coded performance bar

Performance Thresholds:

StatusExecution TimeVisualAction
Optimal< 0.5msGreen β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆNone needed
Acceptable0.5-2msYellow β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆMonitor
Warning2-5msOrange β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆOptimize
Critical> 5msRed β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆFix immediately

See Performance Optimization Guide for detailed optimization strategies.


Binding List Management​

Visual Organization:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Binding 1 [β–Ό] [βœ… Valid] [πŸ—‘οΈ] [▢️] β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Component: Image (HealthBar) β”‚
β”‚ Property: fillAmount β”‚
β”‚ Asset: PlayerHealth (IntVariable) β”‚
β”‚ Mode: VariableToTarget β”‚
β”‚ ⚑ 0.12ms [β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘] Updates: 145 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Controls:

  • [β–Ό]/[β–Ά] - Expand/collapse binding details
  • [βœ…/❌/⚠️] - Real-time validation status
  • [πŸ—‘οΈ] - Delete binding (with confirmation)
  • [▢️] - Test manually (trigger single update)
  • [πŸ“Š] - Performance metrics (Play mode)

Multi-Binding Features:

  • Collapsible headers for clean organization
  • Status indicator below each header
  • Performance bars inline with controls
  • Perfect vertical alignment of action buttons

Context Menu Actions​

Right-click SOAPBind component header:

Copy Binding Configuration    β†’ Export to JSON clipboard
Paste Binding Configuration β†’ Import from JSON clipboard
Duplicate All Bindings β†’ Copy to another GameObject
Clear All Bindings β†’ Remove all (confirmation required)
Test All Bindings β†’ Manual trigger for all bindings
Validate All Bindings β†’ Validation without execution

Binding Templates​

Quick-create common binding patterns:

Available Templates:

Health Bar Setup     β†’ IntVariable β†’ Image.fillAmount + transformation
Score Display β†’ IntVariable β†’ TextMeshProUGUI.text + formatting
Toggle Button β†’ BoolVariable ↔ Toggle.isOn (TwoWaySync)
Volume Slider β†’ FloatVariable ↔ Slider.value (TwoWaySync)
Event Trigger β†’ GameEvent β†’ Method invocation

Usage:

  1. Click "πŸ“‹ Use Template" button
  2. Select template from list
  3. Binding auto-configured with recommended settings
  4. Assign specific SOAP asset and target component

Keyboard Shortcuts​

ShortcutAction
Ctrl/Cmd + Shift + BAdd new binding
DeleteRemove selected binding
Ctrl/Cmd + DDuplicate selected binding
Ctrl/Cmd + TTest selected binding
F2Rename binding (if named)

Bind Manager Window​

Project-wide binding management and analysis tool.

Access: Window > SoapKit > Bind Manager

Bind Manager Window

Overview Tab​

Project statistics and binding inventory:

// Statistics Display:
Total SOAPBind Components: 15
Total Active Bindings: 47
Most Used Binding Type: UI (28 bindings)
Most Used Variable Type: FloatVariable (18)
Average Bindings/Component: 3.1

// Component List:
GameObject Bindings Status
────────────────────────────────────────────
Canvas/HealthPanel 5 βœ… All Valid
UI/ScoreDisplay 2 βœ… All Valid
Player/StatusEffects 8 ⚠️ 1 Warning

Actions per Component:

  • Select - Highlight in Hierarchy
  • Ping - Flash in Scene View
  • Inspect - Focus in Inspector
  • Expand - Show all bindings

Performance Tab​

Real-time performance monitoring with optimization recommendations:

// Performance Summary:
Total Binding Cost: 2.45ms/frame
Slowest Binding: 0.89ms (DamageNumbers.text)
Update Frequency: 142 updates/sec
Optimization Potential: Save ~1.2ms with recommended changes

// Performance List (sorted by cost):
Binding Cost Recommendation
─────────────────────────────────────────────────────────
DamageNumbers.text ← Damage 0.89ms ⚠️ Increase interval to 0.1s
HealthBar.fillAmount ← Health 0.45ms βœ… Optimal performance
ScoreText.text ← Score 0.31ms βœ… Optimal performance

Auto-Optimization Features:

  • Detects updateInterval=0 with high execution time
  • Suggests interval adjustments for non-critical UI
  • Identifies InitialSync candidates (static values)
  • Highlights redundant bindings (same source/target)
  • Color-coded performance indicators

Threshold Indicators:

  • 🟒 Good: Total < 8ms per frame
  • 🟑 Warning: Total 8-16ms per frame
  • πŸ”΄ Critical: Total > 16ms per frame

See Performance Architecture for event-driven system details.


Validation Tab​

Project-wide error detection with auto-fix capabilities:

// Validation Summary:
Valid Bindings: 42
Warnings: 3
Errors: 2

// Issue List:
⚠️ HealthText - Default string format "{0}" (unnecessary)
⚠️ VolumeSlider - TwoWaySync + updateInterval=0 (performance)
⚠️ BossHealth - Linear curve (default, can remove)

❌ PlayButton - Missing SOAP asset reference
❌ AmmoDisplay - Target component destroyed

// Quick Actions:
[Fix Auto-fixable Issues] [Ignore All Warnings] [Export Report]

Auto-Fix Capabilities:

  • Remove default/unnecessary formats
  • Optimize update intervals for TwoWaySync
  • Remove unnecessary linear transformations
  • Detect and remove null references
  • Reset invalid configurations

Debugger Tab​

Live binding execution monitoring (Play mode only):

// Real-time Event Log:
[14:32:15.234] PlayerHealth changed: 75 β†’ 50
↳ HealthBar.fillAmount: 0.75 β†’ 0.50 (0.12ms)
↳ HealthText.text: "75%" β†’ "50%" (0.08ms)
↳ DamageOverlay.color updated (0.15ms)

[14:32:15.891] OnPlayerDied event fired
↳ GameOverPanel.SetActive(true) (0.05ms)
↳ RestartButton.onClick invoked (0.03ms)

// Filter Controls:
β˜‘ Show Variable Updates β˜‘ Show Events ☐ Performance Only
β˜‘ Auto-scroll ☐ Timestamps β˜‘ Highlight Errors

Features:

  • Real-time execution trace with timestamps
  • Value change history (before β†’ after)
  • Per-binding execution time
  • Error/exception highlighting
  • Export log to file (CSV/JSON)
  • Pause/resume monitoring
  • Clear log buffer

Scene View Integration​

Enable via "Show Gizmos In Scene" checkbox in Inspector:

Visual Connection Lines​

Color Coding:

  • Green lines - Valid VariableToTarget bindings
  • Blue lines - Valid TargetToVariable bindings
  • Purple lines - Valid TwoWaySync bindings
  • Gray lines - InitialSync (completed, inactive)
  • Red lines - Invalid/error bindings
  • Yellow flash - Binding executing (Play mode)

Gizmo Interactions​

  • Click line β†’ Select SOAPBind component in Inspector
  • Hover β†’ Tooltip with binding details
    PlayerHealth β†’ HealthBar.fillAmount
    Mode: VariableToTarget
    Status: βœ… Valid
    Last Update: 0.12ms
  • Double-click β†’ Open SOAP asset in Inspector
  • Shift+Click β†’ Multi-select bindings

Integration with SoapKit Tools​

Debug Console Integration​

  • Bindings appear in dependency graph
  • Variable changes show all connected bindings
  • Synced performance metrics across tools

See Debug Window Documentation

Asset Creator Integration​

  • Create Variable β†’ Auto-suggest binding setup wizard
  • Create Event β†’ Auto-suggest method binding templates

See Asset Creator Documentation

Dependency Visualizer Integration​

  • Binding connections in graph view
  • Highlight circular TwoWaySync dependencies
  • Export architecture diagrams with bindings

See Dependency Visualizer Documentation


Batch Operations​

Select multiple bindings using Shift+Click or Ctrl+Click:

[βœ“] Binding 1 - HealthBar.fillAmount
[βœ“] Binding 2 - HealthText.text
[βœ“] Binding 3 - HealthColor.color

Available Batch Actions:
[Set Mode: VariableToTarget]
[Set Update Interval: 0.016]
[Enable Transformation]
[Disable All Selected]
[Delete Selected]

Supported Batch Operations:

  • Change binding mode (all selected)
  • Set update interval (bulk performance tuning)
  • Enable/disable transformations
  • Enable/disable auto-update
  • Delete multiple bindings (with confirmation)

Troubleshooting with Editor Tools​

Binding Not Updating​

Inspector Checks:

  1. Status Indicator - Look for ❌ or ⚠️ symbols
  2. Validation Panel - Check error messages
  3. Performance Metrics - Verify update count is incrementing
  4. Auto Update - Ensure toggle is enabled
  5. SOAP Asset - Verify reference is assigned

Bind Manager Checks:

  1. Open Validation Tab β†’ Check for errors
  2. Open Debugger Tab (Play mode) β†’ Monitor live updates
  3. Check Performance Tab β†’ Verify binding is executing

See Full Troubleshooting Guide

Performance Issues​

Identify Bottlenecks:

  1. Open Bind Manager β†’ Performance Tab
  2. Sort by "Cost" column
  3. Look for red/orange indicators (> 2ms)
  4. Check "Optimization Potential" recommendations

Quick Fixes:

  • Increase updateInterval for non-critical bindings
  • Change mode to InitialSync for static values
  • Simplify transformation curves
  • Reduce string formatting frequency

See Performance Optimization

Type Compatibility Errors​

Inspector Validation:

  • Red underline on property field β†’ Type mismatch
  • Warning icon β†’ Automatic conversion available
  • Error message β†’ Shows expected vs actual type

Solutions:

  1. Enable transformation for numeric conversion
  2. Use string formatting for text conversion
  3. Change to compatible property/method
  4. Verify SOAP asset type matches target

See Type Compatibility


Best Practices​

Inspector Organization​

βœ… Recommended:

  • Group related bindings on the same GameObject
  • Use descriptive GameObject names ("UI_HealthPanel_Bindings")
  • Start with centralized hubs for small projects
  • Use component-level bindings for prefabs
  • Collapse bindings not actively being edited

❌ Avoid:

  • Separate SOAPBind for each single binding
  • Mixed unrelated bindings in same component
  • Generic names like "BindingHub" without context

Performance Monitoring​

βœ… Recommended:

  • Enable performance metrics during development
  • Monitor Bind Manager regularly
  • Set appropriate update intervals
  • Use event-driven bindings (interval = 0) when possible
  • Profile in target platform (mobile, PC, console)

❌ Avoid:

  • Ignoring yellow/orange performance warnings
  • Using 0ms intervals for heavy string formatting
  • Leaving debug logging enabled in builds
  • Creating excessive conditional bindings

Debugging Workflow​

βœ… Recommended:

  • Enable gizmos for visual debugging
  • Use Debugger Tab to monitor live updates
  • Check Validation Tab before builds
  • Export validation reports for team review
  • Test bindings in Play mode before finalizing

❌ Avoid:

  • Leaving "Log Bind Events" on in production
  • Ignoring validation warnings
  • Skipping edge case testing
  • Disabling auto-optimization without reason

Next Steps​

Learn Binding System:

Related Editor Tools: