npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

com.koiusa.inputguide

v0.3.3

Published

Runtime input guide with device visualization, compact operation panels, map filtering, and input navigation.

Readme

Koiusa Input Guide

Input Systemの操作一覧、接続デバイス表示、入力ハイライトを提供します。現在のバージョンは0.2.0です。

構成

公式Prefab Runtime/Resources/System/InputGuideOverlay.prefab を使用します。

  • InputGuideOverlay: Input Actions Configと表示
  • InputGuideSelectionController: Action Map/Binding Group選択
  • InputGuideNavigationController: Mapタブ切替/一覧スクロール

ControllerはOverlayを参照し、Input Actions Configを重複保持しません。UIDocument.sortingOrderは利用側で設定します。

コンパクト表示

CompactOperationsは右上約440pxの操作一覧です。複数Mapはタブ表示され、UI/PreviousSectionUI/NextSectionUI/Navigateで切替・スクロールできます。固定トグルヒントは既定で非表示です。

Inspectorで個別Mapを選ぶ場合はInputGuideSelectionControllerMap FilterSpecifiedにします。選択値は並び替えに影響されないMap名として保存されます。

IInputGuideOverlay guide = overlay;
var previousView = guide.CaptureConfiguration();
var previousSelection = selectionController.Current;

selectionController.ApplySelection(
    InputGuideSelection.Specified(new[] { "ScreenLayout" }));
guide.ApplyConfiguration(InputGuideConfiguration.CompactOperations());

// 左側へ配置する場合
guide.ApplyConfiguration(InputGuideConfiguration.CompactOperations(
    InputGuidePanelAnchor.TopLeft));

// 中央へ配置する場合
guide.ApplyConfiguration(InputGuideConfiguration.CompactOperations(
    InputGuidePanelAnchor.Center));

`InputGuidePanelAnchor`は`TopLeft`、`TopCenter`、`TopRight`、`MiddleLeft`、
`Center`、`MiddleRight`、`BottomLeft`、`BottomCenter`、`BottomRight`の9方向です。
公式PrefabにはDevice本体、Mouse表示、Operations用の`InputGuidePanelLayout`が含まれ、
`InputGuidePanelCollection`がそれらを明示的な一覧として保持します。Device本体とMouse表示は
どちらも`InputGuidePanelSlot.Device`に属しますが、アンカーは各コンポーネントが個別に保持します。
`InputGuideConfiguration.DevicePanelAnchor`は一覧先頭の代表Deviceパネルだけを制御し、追加した
Deviceパネルのアンカーを上書きしません。
Mouse専用の固定スロットや専用コンポーネント型はありません。`InputGuideOverlay`は
このCollectionだけを参照します。各パネルは`Default Layout`、`Layout Override`、Anchorを
所有し、VisualTree再構築後も同じ設定が再適用されます。Override未指定時は
Default Layoutを使用します。

```csharp
guide.SetPanelAnchor(InputGuidePanelSlot.Device, InputGuidePanelAnchor.BottomCenter);
guide.SetPanelAnchor(InputGuidePanelSlot.Operations, InputGuidePanelAnchor.TopLeft);

CompactOperations(anchor)の引数はOperationsパネルのアンカーです。全パネルの位置を 一括適用・復元する場合はInputGuideConfigurationを使用します。実行中のUXML差し替えは SetPanelLayoutOverride(panelSlot, layout)を使用し、共有Asset自体は変更しません。

公開API

ランタイム制御はIInputGuideOverlayを入口にします。InputGuideConfigurationは表示モード、 プリセット、ヒント、2パネルのAnchorをまとめてCapture/Applyする不変の表示設定です。 パネルUXMLはGetPanelLayoutOverrideSetPanelLayoutOverrideで個別に差し替えます。

InputGuidePanelLayoutInputGuidePanelCollectionはPrefab/Inspector構成用コンポーネントです。 同じスロットへ複数のInputGuidePanelLayoutを登録できるため、Mouseや左右XR表示などを Deviceの一部として視覚的に分離しつつ、利用側の固定スロットを増やさず構成できます。 各InputGuideDeviceLayoutの描画先はHost Element Nameで指定できます。MouseもIDによる 特別分岐はなく、標準Prefabでは描画先にmouse-device-layouts-hostを指定した通常のDeviceです。 Layoutの構築、Target再適用、Collection検索はパッケージ内部APIであり、利用側から直接呼びません。 特に実行中のAnchorやLayout Overrideをコンポーネントへ直接代入せず、Overlay APIを使用します。

疑似デバイスレイアウト

InputGuideDeviceLayoutCollectionは疑似デバイスを文字列IDの一覧として保持します。標準Prefabは keyboardmousegamepadをDeviceパネルへ登録しています。各項目にはDefault Layout、 Layout Override、対応するInput System Control Layout、排他グループ、初期表示を設定できます。

同じControl Layoutを持つ左右XRコントローラーなどは、必要な場合だけRequired UsagesLeftHandまたはRightHandを指定します。条件に一致する非排他レイアウトはすべて表示されるため、 左右コントローラーやMouseを同時表示できます。通常のKeyboard/Mouse/Gamepadでは設定不要です。

KeyboardとGamepadは標準で同じprimary排他グループ、Mouseは排他グループなしのため、 Keyboard+Mouseを同時表示できます。Joystickなどは新しいIDとUXMLを一覧へ追加するだけで、 InputGuide本体のenumやBinding Groupを変更せず対応できます。

guide.ShowDeviceLayout("joystick");
guide.SetDeviceLayoutVisible("mouse", true);
guide.SetDeviceLayoutOverride("joystick", customJoystickLayout);

配置は各InputGuidePanelLayoutのInspectorにある3×3グリッドで設定します。 操作行生成、Mapタブ、Keyboard/Gamepad切替、スクロールはInputGuideOverlayが 現在のVisualTreeに接続して制御します。

疑似デバイス表示のカスタマイズ

DeviceとOperationsはそれぞれパネル単位でUXMLを差し替えられます。この表示は BothDeviceOnlyの両方で使われます。カスタムDevice UXMLでも既存の入力ハイライトを 使う場合は、標準UXMLと同じcontrol-*名を付けます。

// 終了時 selectionController.ApplySelection(previousSelection); guide.ApplyConfiguration(previousView);


表示モードは`Both`、`DeviceOnly`、`OperationsOnly`、`Hidden`です。Play Mode中のInspector変更も即時反映されます。

変更内容は[CHANGELOG](CHANGELOG.md)、プロジェクトでの設定詳細は[Keyconfig](../../../../../Documentation/Keyconfig.md)を参照してください。