diff --git a/Assets/Config.unity b/Assets/Config.unity index 2f4d2c6..6a8e2dd 100644 Binary files a/Assets/Config.unity and b/Assets/Config.unity differ diff --git a/Assets/Cryville/Crtr/InputConfig.cs b/Assets/Cryville/Crtr/InputConfig.cs new file mode 100644 index 0000000..5684b7c --- /dev/null +++ b/Assets/Cryville/Crtr/InputConfig.cs @@ -0,0 +1,49 @@ +using Cryville.Common.Unity; +using Cryville.Common.Unity.Input; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace Cryville.Crtr { + public class InputConfig : MonoBehaviour { + [SerializeField] + GameObject m_inputDialog; + + [SerializeField] + Transform m_deviceList; + + [SerializeField] + GameObject m_prefabListItem; + + public void OpenDialog() { + m_inputDialog.SetActive(true); + Game.InputManager.Activate(); + CallHelper.Purge(m_deviceList); + _recvsrcs.Clear(); + } + + public void CloseDialog() { + CloseDialog(null); + } + + public void CloseDialog(InputSource? src) { + m_inputDialog.SetActive(false); + Game.InputManager.Deactivate(); + } + + List _recvsrcs = new List(); + void Update() { + if (m_inputDialog.activeSelf) { + Game.InputManager.EnumerateEvents(ev => { + var src = ev.Id.Source; + if (!_recvsrcs.Contains(src)) { + _recvsrcs.Add(src); + var obj = Instantiate(m_prefabListItem); + obj.transform.SetParent(m_deviceList); + obj.transform.Find("Text").GetComponent().text = src.Handler.GetTypeName(src.Type); + } + }); + } + } + } +} diff --git a/Assets/Cryville/Crtr/InputConfig.cs.meta b/Assets/Cryville/Crtr/InputConfig.cs.meta new file mode 100644 index 0000000..5cddb7b --- /dev/null +++ b/Assets/Cryville/Crtr/InputConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d27589834da67984d98c6147c8b6b5bb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/ListItem.prefab b/Assets/Prefabs/ListItem.prefab new file mode 100644 index 0000000..b801efa Binary files /dev/null and b/Assets/Prefabs/ListItem.prefab differ diff --git a/Assets/Prefabs/ListItem.prefab.meta b/Assets/Prefabs/ListItem.prefab.meta new file mode 100644 index 0000000..238c429 --- /dev/null +++ b/Assets/Prefabs/ListItem.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 84d87bd16ff7ad6458e59728150d7a14 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: