unity中進行輸入的模板代碼

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");
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章