using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//這裏的特性也可以使用ProjectSettings中Script Execution Order 進行調節和替代
[DefaultExecutionOrder(-200)]
public class InputManager : MonoBehaviour
{
public float Horizontal { get; private set; }
public bool JumpPressed { get; private set; }
public bool JumpHold { get; private set; }
public bool CrouchPressed { get; private set; }
public bool CrouchHold { get; private set; }
private bool isReadyClearUp;
void Start()
{
}
void Update()
{
//如果遊戲結束
//清除輸入
ClearInput();
//電腦輸入
ProcessInputs();
//移動端輸入
Horizontal = Mathf.Clamp(Horizontal, -1f, 1f);
}
private void FixedUpdate()
{
//每0.02s清除一次
isReadyClearUp = true;
}
void ClearInput()
{
if (!isReadyClearUp)
{
return;
}
Horizontal = 0f;
JumpHold = false;
JumpPressed = false;
CrouchHold = false;
CrouchPressed = false;
isReadyClearUp = false;
}
void ProcessInputs()
{
Horizontal += Input.GetAxis("Horizontal");
JumpPressed = JumpPressed || Input.GetButtonDown("Jump");
JumpHold = JumpHold || Input.GetButton("Jump");
CrouchPressed = CrouchPressed || Input.GetButtonDown("Crouch");
CrouchHold = CrouchHold || Input.GetButton("Crouch");
}
}