C# Linux上的Unity鼠标输入不适用于编辑器中的新输入系统
当我在C#脚本中锁定鼠标并尝试访问滚动值(在我的例子中是C# Linux上的Unity鼠标输入不适用于编辑器中的新输入系统,c#,linux,unity3d,input,user-input,C#,Linux,Unity3d,Input,User Input,当我在C#脚本中锁定鼠标并尝试访问滚动值(在我的例子中是Scroll.y)时,我总是得到0。 当我按下esc并解锁鼠标时,当我使用方向盘时,该值正确显示(-1或1)。如果我制作游戏,它也可以工作 我已创建InputData来管理我的输入: using UnityEngine; using UnityEngine.InputSystem; [CreateAssetMenu] public class InputData : ScriptableObject { public Input
Scroll.y
)时,我总是得到0。
当我按下esc
并解锁鼠标时,当我使用方向盘时,该值正确显示(-1或1)。如果我制作游戏,它也可以工作
我已创建InputData来管理我的输入:
using UnityEngine;
using UnityEngine.InputSystem;
[CreateAssetMenu]
public class InputData : ScriptableObject
{
public InputAction MovementAction;
public InputAction LookAction;
public InputAction ScrollAction;
private void OnEnable()
{
MovementAction.Enable();
LookAction.Enable();
ScrollAction.Enable();
}
private void OnDisable()
{
MovementAction.Disable();
LookAction.Disable();
ScrollAction.Disable();
}
}
在这个脚本中,我得到了滚动增量:
using UnityEngine;
public class weaponSwitching : MonoBehaviour
{
private int selectedWeapon = 0;
public InputData actions;
private float prevVal = 0;
void Start()
{
SelectWeapon();
}
void Update()
{
Vector2 scroll = actions.ScrollAction.ReadValue<Vector2>();
Debug.Log(scroll.y);
if (scroll.y > 0f)
{
selectedWeapon++;
SelectWeapon();
}
else if (scroll.y < 0f)
{
}
}
使用UnityEngine;
公共级武器交换:单一行为
{
私人int SELECTED武器=0;
公共输入数据行动;
私有浮动prevVal=0;
void Start()
{
选择武器();
}
无效更新()
{
Vector2 scroll=actions.ScrollAction.ReadValue();
Debug.Log(scroll.y);
如果(滚动.y>0f)
{
选择武器++;
选择武器();
}
否则如果(滚动y<0f)
{
}
}
谢谢您的帮助!:)请向我们展示您的代码-不是全部,只是问题的一个小副本(即a)。我添加了一些代码。请向我们展示您的代码-不是全部,只是问题的一个小副本(即a)。我添加了一些代码