CapersProject/Assets/Plugins/Pixel Crushers/Dialogue System/Demo/Scenes/New Input System/DemoInputRegistration.cs

58 lines
1.7 KiB
C#

using UnityEngine;
namespace PixelCrushers.DialogueSystem
{
/// <summary>
/// This class helps the Dialogue System's demo work with the New Input System. It
/// registers the inputs defined in DemoInputControls for use with the Dialogue
/// System's Input Device Manager.
/// </summary>
public class DemoInputRegistration : MonoBehaviour
{
#if USE_NEW_INPUT
private DemoInputControls controls;
// Track which instance of this script registered the inputs, to prevent
// another instance from accidentally unregistering them.
protected static bool isRegistered = false;
private bool didIRegister = false;
void Awake()
{
controls = new DemoInputControls();
}
void OnEnable()
{
if (!isRegistered)
{
isRegistered = true;
didIRegister = true;
controls.Enable();
InputDeviceManager.RegisterInputAction("Horizontal", controls.DemoActionMap.Horizontal);
InputDeviceManager.RegisterInputAction("Vertical", controls.DemoActionMap.Vertical);
InputDeviceManager.RegisterInputAction("Fire1", controls.DemoActionMap.Fire1);
}
}
void OnDisable()
{
if (didIRegister)
{
isRegistered = false;
didIRegister = false;
controls.Disable();
InputDeviceManager.UnregisterInputAction("Horizontal");
InputDeviceManager.UnregisterInputAction("Vertical");
InputDeviceManager.UnregisterInputAction("Fire1");
}
}
#endif
}
}