Unity InputSystem viejo y nuevo contraste

 

 

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
public class Test_input_System : MonoBehaviour
{
    public Mycontrols inputActions;
    // Start is called before the first frame update
    void Start()
    {
        //Mycontrols 自定义Actions类,内涵多个输入函数,每次更新时要apply,或者auto更新
        inputActions = new Mycontrols();
        inputActions.Enable();

        //vector2 Move-Actions  : 可以自定义四个键模拟(此处添加wsad的键)  Input.GetAxis("horizontal")||Input.GetAxis("Vertical"),返回值vector2波动较大,以1递增递减
        inputActions.Player.Move.performed += ctx =>
        {
            print("Move:" + ctx.ReadValue<Vector2>());
            transform.Translate(ctx.ReadValue<Vector2>());
        };
        //vector2 MouseDown-Actions :自定义MouseDown名称,可以添加任意键,这块模拟添加鼠标左键按下的事件
        inputActions.Player.MouseDown.performed += ctx =>
        {
            print("按下position:" + UnityEngine.InputSystem.Mouse.current.position.ReadValue());
        };
        //vector2 MouseDrag-Actions :自定义MouseDrag名称,返回鼠标位置
        inputActions.Player.MouseDrag.performed += ctx =>
        {
            print("拖拽position:" + ctx.ReadValue<Vector2>());
        };
        //vector2 MouseUp-Actions :自定义MouseUp名称,可以添加任意键,这块模拟添加鼠标左键抬起的事件
        inputActions.Player.MouseUp.performed += ctx =>
        {
            print("释放position:" + UnityEngine.InputSystem.Mouse.current.position.ReadValue());
        };
        //vector2 GetAxis_arrow-Actions  : 可以自定义四个键模拟(此处添加↑↓←→arrow的键)  Input.GetAxis("horizontal")||Input.GetAxis("Vertical"),返回值vector2波动较大,以1递增递减
        inputActions.Player.GetAxis_arrow.performed += ctx =>
        {
            print("GetAxis-position:" + ctx.ReadValue<Vector2>());
        };

        //老的输入模式-1~1 以0.1递增
        float x_input_old = Input.GetAxis("Mouse X");
        float y_input_old = Input.GetAxis("Mouse Y");
        //新的替代  以1为增量鼠标偏移量
        float x_inputSystem =Mouse.current.delta.ReadValue().x ;
        float y_inputSystem = Mouse.current.delta.ReadValue().y;

        //旧的长按鼠标左键
        if (Input.GetMouseButton(0))
        {

        }
        //新的长按鼠标左键
        if (Mouse.current.leftButton.isPressed)
        {

        }
        //**********************************
        //旧的按下鼠标右键
        if (Input.GetMouseButtonDown(1))
        {

        }
        //新的按下鼠标右键
        if (Mouse.current.rightButton.wasPressedThisFrame)
        {

        }
        //**********************************
        //旧的抬起鼠标中键
        if (Input.GetMouseButtonUp(2))
        {

        }
        //新的抬起鼠标中键
        if (Mouse.current.middleButton.wasReleasedThisFrame)
        {

        }
        //新的长按鼠标中键
        if (Mouse.current.middleButton.isPressed|| Mouse.current.middleButton.ReadValue()>0.5f)
        {

        }
        //新的长按space键
        if (Keyboard.current.spaceKey.isPressed)
        {

        }
        //旧鼠标位置
         Vector3 vector3=  Input.mousePosition;
        //新鼠标位置
        Vector3 vector3_new = Mouse.current.position.ReadValue();

        //旧版api,返回为float值,默认为0.1,往前为+0.1,往后为-0.1
        float scroll_value = Input.GetAxis("Mouse ScrollWheel");
        //获取鼠标滚轮值,新输入系统为Vector2,滚动一下默认是(0,+120),正为往前,负为往后
        float scroll_value_new = Mouse.current.scroll.ReadValue().y;


    }
    private void Update()
    {
        //新的长按鼠标中键
        if (Mouse.current.middleButton.ReadValue() > 0.5f)
        {
            print("999");
        }
    }

}

Supongo que te gusta

Origin blog.csdn.net/fanfan_hongyun/article/details/131539585
Recomendado
Clasificación