---
tags:
    - "Keyboard"
    - "Mouse"
    - "Gamepad"
    - "Prompt"
    - "Scheme"
    - "Switch"
---

# Last Input Device

[Input](index.md) / **Last Input Device**

<div class="grid cards" markdown>

* :green_circle: Can Read

* :red_circle: Cannot Write

</div>

## Description

The name of the input device that was used most recently

## Code

```cs
using System;
using UnityEngine.InputSystem;
using VisualScript.Icons;

namespace VisualScript.Runtime
{
    [Get]

    [Title("Last Input Device")]
    [Category("Input/Last Input Device")]

    [Description("The name of the input device that was used most recently")]
    [Image(typeof(IconComputer), ColorTheme.Type.Blue, typeof(BadgeString))]

    [Keywords("Keyboard", "Mouse", "Gamepad", "Prompt", "Scheme", "Switch")]

    [Serializable]
    public class TypeStringInputLastDevice : TypeString
    {
        public override string Get(Args args)
        {
            InputDevice lastDevice = null;
            double lastUpdateTime = 0d;

            foreach (InputDevice device in InputSystem.devices)
            {
                if (device.lastUpdateTime <= lastUpdateTime) continue;

                lastUpdateTime = device.lastUpdateTime;
                lastDevice = device;
            }

            return lastDevice != null ? lastDevice.displayName : string.Empty;
        }

        public override string ToString()
        {
            return "Last Input Device";
        }

        protected override SubscriptionMode Subscription => SubscriptionMode.OnChange;
    }
}

```

