# Enable the Input System About 15 minutes. Budget extra time for Editor restarts. ## Learning objectives - Confirm whether the Input System package is already installed - Install it from Package Manager only if it is missing - Set **Active Input Handling** to **Input System Package (New)** - Create and assign the default project-wide actions asset if needed Official install steps: [Installation guide | Input System](https://docs.unity3d.com/Packages/[email protected]/manual/Installation.html) ## Check Package Manager first Many Unity 6 templates already include the Input System package. Some also create `InputSystem_Actions.inputactions` under `Assets`. Check before you install anything. 1. Open **Window > Package Manager**. 2. Select **Unity Registry** in the left navigation. 3. Select **Input System** in the list (use the search box if the list is long). ![Package Manager showing Input System](images/03-package-manager-input-system.png) 4. Read the button in the details panel. | What you see | What to do | | --- | --- | | **Install** | The package is missing. Continue with [Install the package](#install-the-package). | | **Remove** / **Update**, or a version number already listed as installed | The package is already there. Skip install. Go to [Enable the new backends](#enable-the-new-backends). | You should see: the Input System package selected, with either **Install** or an installed version. ## Install the package Skip this section if Package Manager already shows Input System as installed. 1. With **Input System** selected, select **Install**. 2. If Unity asks to enable the new input backends, select **Yes**. ![Dialog asking to enable new input backends](images/03-enable-backends-dialog.png) 3. Wait for the Editor to restart. You should see: the Editor closes and reopens on the same project. ## Enable the new backends Installing the package is not the same as making it the active input stack. 1. Open **Edit > Project Settings**. 2. Select **Player**. 3. Open **Other Settings**. 4. Under **Configuration**, find **Active Input Handling**. 5. Set it to **Input System Package (New)**. ![Active Input Handling set to Input System Package (New)](images/03-active-input-handling.png) > **Why this matters:** This course uses **Input System Package (New)** so `Input.GetAxis` and `Input.GetKey` are not available. If you leave it on **Input Manager (Old)**, New Input System scripts will not run. **Both** is only for migrating an old project that still contains legacy input code. Do not use **Both** for this starter. | Setting | C# defines | Use in this course | | --- | --- | --- | | Input Manager (Old) | `ENABLE_LEGACY_INPUT_MANAGER` | No | | Input System Package (New) | `ENABLE_INPUT_SYSTEM` | Yes | | Both | both defines | Migration only | 6. Close Project Settings. If Unity asks to restart the Editor, accept and wait. You should see: the Editor restarts. After it returns, **Active Input Handling** still reads **Input System Package (New)**. > **Warning:** Changing **Active Input Handling** does nothing until the Editor restarts. If you skip the restart, later scripts fail in confusing ways. ## Project-wide actions Unity 6 stores the default actions in a project-wide Action Asset. Scripts then call `InputSystem.actions.FindAction(...)`. 1. Open **Edit > Project Settings**. 2. Select **Input System Package**. ![Input System Package project settings with actions assigned](images/03-project-wide-actions.png) 3. Look at the **Input Actions** section. | What you see | What to do | | --- | --- | | An actions asset is already assigned (often `InputSystem_Actions`) | Done. Close Project Settings. | | A button labeled **Create and assign a default project-wide Action Asset** | Click it. | 4. If you created the asset, confirm a file named `InputSystem_Actions.inputactions` (or similar) appeared under `Assets`. You should see: Project Settings > Input System Package shows an assigned Action Asset, and the default maps **Player** and **UI** are listed. The default **Player** map includes **Move**, **Look**, **Jump**, **Attack**, and related actions. **Move** is typically WASD + arrows + gamepad left stick. **Jump** is typically Space + the gamepad south button. ## UI input (read this once) When **Active Input Handling** is **New** or **Both**, Unity UI (uGUI) uses **Input System UI Input Module**, not **Standalone Input Module**. If you later add a Canvas and clicks do nothing, select the **EventSystem** object. If it still has **Standalone Input Module**, replace that component with **Input System UI Input Module**. Unity often offers a button in the Inspector to do this swap. This starter does not need a Canvas. ## Checkpoint Before you continue to [Input Actions](04-input-actions.md): - **Window > Package Manager** shows **Input System** installed - **Active Input Handling** is **Input System Package (New)** (after a restart) - **Edit > Project Settings > Input System Package** has a project-wide Action Asset assigned