Unity输入系统笔记

本文讲述了用户在使用Win11时遇到的多显示器自动切换到屏幕1的问题,以及小米电脑键盘灯不亮的解决方法。作者提供了稳定复现问题和解决步骤,包括设置自定义背景后自动变回系统背景和外接屏幕对键盘灯的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Unity有两套输入系统,旧的叫Input Manager,新的叫Input System。旧的在Project Settings-Input Manager里配置。

新的以PlayerInput组件和InputActions资源文件的方式使用。

Input System

有几个playerInput组件意味着有几个玩家。如果是单机游戏,场景里应该只有一个playerInput。

实现打开一个菜单时禁用人物的所有动作输入

定义两个ActionMap,打开菜单的Action定义在Player,关闭菜单的Action定义在UI。一般是同一个按键。

在打开菜单的回调方法里修改playerInput组件使用的ActionMap。通过字符串指定。

playerInput.SwitchCurrentActionMap("UI");

关闭菜单的回调方法里再修改playerInput组件使用的ActionMap。

playerInput.SwitchCurrentActionMap("PLayer");

输入管理框架设计

在多个游戏场景中经常需要一套相同的输入、管理器、相机、游戏界面等对象组成的整体,这些对象经常打成预制体。众所周知,预制体里的字段不能指向外面的对象,为了在新场景使用时不用重新配PlayerInput的回调事件,需要把所有输入回调事件写在自己的输入管理脚本里,对其他对象的操作在输入脚本里封装一下,再使用单例调用其他对象。

就是这一列的对象不要有预制体之外的:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值