# KinematicMU (Pro)

The `KinematicMU` component enables **purely kinematic movement** of [Moving Unity (MUs) ](https://doc.realvirtual.io/components-and-scripts/mu-movable-unit)along a [`GuidedTransport`](https://doc.realvirtual.io/components-and-scripts/motion/guided-transport). This is essential in scenarios where **position-controlled transport surfaces** are used (e.g., from a PLC), and traditional physics-based transport would violate physical constraints due to rapid or unpredictable position updates.

`KinematicMU` allows sensor interaction but **disables collisions** with other colliders or MUs during guided motion. This makes it ideal for precision transport systems or integration with external control systems like PLCs.

## Use Case

Standard [`GuidedMU`](https://doc.realvirtual.io/components-and-scripts/motion/guided-transport) movement applies forces and obeys Unity physics. This works well in most guided transport scenarios but fails for **position-driven conveyor belts** that update positions in cycles. In these cases, using physics-based motion can lead to instability or incorrect behavior.

<figure><img src="https://260262196-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpYxFg97YnJX96UzNNTSd%2Fuploads%2Fgit-blob-d52a72c7d7989d09e16afabd2ef06e13054950ba%2Fkinematicmu.gif?alt=media" alt=""><figcaption><p>KinematicMU demo model</p></figcaption></figure>

#### Setup Instructions

1. **Prefab**: Use the standard `TransportGuided` prefab\
   Path: `Assets/realvirtual/TransportGuided.prefab`
2. **Scene**: Try the demo scene to see it in action\
   Path: `Assets/realvirtual/Professional/KinematicMU/DemoKinematicMU.unity`
3. **Material Unit (MU) Setup**:
   * Add the `KinematicMU` script to your MU GameObject.
   * Remove the `GuidedMU` script (if present).
   * Keep the `MU` and `Source` components.
   * Ensure a `Rigidbody` is present (used for switching modes).
   * Assign appropriate layers to the **Raycast Layer** (typically `rvTransport`, `rvSimStatic`).

<figure><img src="https://260262196-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpYxFg97YnJX96UzNNTSd%2Fuploads%2Fgit-blob-f5fcf02d324f1acefabc424a098dd01d9fdccb86%2Fkinematicmu-inspector.png?alt=media" alt=""><figcaption></figcaption></figure>

#### Inspector Properties

| Property           | Description                                                                                |
| ------------------ | ------------------------------------------------------------------------------------------ |
| **Active**         | Controls whether the MU should behave kinematically (`Always`, `Never`, or conditionally). |
| **Raycast Length** | Distance for downward raycast to detect the transport surface. Default is `0.3`.           |
| **Raycast Layer**  | Layers that are considered for detecting transport surfaces.                               |
| **Debug Mode**     | Enables debug visualization of raycasts.                                                   |
