Bei anderen Schaltflächen wie z. B. ist mir das gleiche Problem nicht aufgefallen B. die Bewegungs- und Sprungsteuerung auf dem Bildschirm, die gut funktioniert – möglicherweise, weil die Sprungtaste beispielsweise einen Sprung nur zulässt, wenn der Spieler am Boden ist..
I' Ich habe dieses Tutorial verwendet, um das neue Eingabesystem zu erlernen, und so habe ich es eingestellt ein Eingabesteuerelement-Asset erstellen und den folgenden Code in meinem InputHandler haben:
Code: Select all
public class InputHandler : MonoBehaviour
{
[SerializeField] private InputActionAsset inputControls;
[SerializeField] private string actionMapName = "Unit";
[SerializeField] private string rollup = "Rollup";
private InputAction rollupAction;
public bool RollupTriggered { get; private set; }
public static InputHandler Instance {get; private set; }
private void Awake()
{
...
rollupAction = inputControls.FindActionMap(actionMapName).Find(rollup);
RegisterInputActions();
}
void RegisterInputActions()
{
...
rollupAction.performed += context => RollupTriggered = true;
rollupAction.canceled += context => RollupTriggered = false;
}
private void OnEnable()
{
...
rollupAction.Enable();
}
private void OnDisable()
{
...
rollupAction.Disable();
}
}
Code: Select all
public class UnitController : MonoBehaviour
{
private InputHandler inputHandler;
public GameObject hudPanel;
void Update()
{
...
ShowHideHUD();
}
void ShowHideHUD()
{
if (inputHandler.RollupTriggered)
{
if (hudPanel.activeSelf)
{
hudPanel.SetActive(false);
}
else
{
hudPanel.SetActive(true);
}
}
}
}