您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
72 行
1.8 KiB
72 行
1.8 KiB
using UnityEngine;
|
|
#if ENABLE_INPUT_SYSTEM
|
|
using UnityEngine.InputSystem;
|
|
using UnityEngine.InputSystem.Controls;
|
|
#endif
|
|
|
|
namespace GameplayIngredients.Controllers
|
|
{
|
|
public abstract class PlayerInput : GameplayIngredientsBehaviour
|
|
{
|
|
public enum ButtonState
|
|
{
|
|
Released = 0,
|
|
JustPressed = 1,
|
|
Pressed = 2,
|
|
JustReleased = 3
|
|
}
|
|
|
|
public abstract Vector2 Look { get; }
|
|
public abstract Vector2 Movement { get; }
|
|
public abstract ButtonState Jump { get; }
|
|
|
|
public abstract void UpdateInput();
|
|
|
|
#if ENABLE_INPUT_SYSTEM
|
|
protected static ButtonState GetButtonControlState(ButtonControl bc)
|
|
{
|
|
if(bc == null)
|
|
{
|
|
return ButtonState.Released;
|
|
}
|
|
|
|
if (bc.isPressed)
|
|
{
|
|
if(bc.wasPressedThisFrame)
|
|
return ButtonState.JustPressed;
|
|
else
|
|
return ButtonState.Pressed;
|
|
}
|
|
else
|
|
{
|
|
if(bc.wasReleasedThisFrame)
|
|
return ButtonState.JustReleased;
|
|
else
|
|
return ButtonState.Released;
|
|
}
|
|
}
|
|
#endif
|
|
|
|
|
|
#if ENABLE_LEGACY_INPUT_MANAGER
|
|
protected static ButtonState GetButtonState(string Button)
|
|
{
|
|
if (Input.GetButton(Button))
|
|
{
|
|
if (Input.GetButtonDown(Button))
|
|
return ButtonState.JustPressed;
|
|
else
|
|
return ButtonState.Pressed;
|
|
}
|
|
else
|
|
{
|
|
if (Input.GetButtonUp(Button))
|
|
return ButtonState.JustReleased;
|
|
else
|
|
return ButtonState.Released;
|
|
|
|
}
|
|
}
|
|
#endif
|
|
}
|
|
}
|