鼠标是否可移动 MouseMoveActivate
- 属性 CursorLockMode
- 所属对象:UserInputService
编辑器不可见
在编辑器属性界面中不显示,可用脚本访问其值,不建议广泛使用
数据流向
数据由服务器同步给客户端,客户端无法同步给服务器
描述
MouseMoveActivate属性确定用户的鼠标是否可以自由移动或锁定
该属性共有三个不同的属性值,默认为None,即无限制,鼠标可自由移动。在属性为Locked时,鼠标进入锁定模式,鼠标被限制在游戏界面屏幕正中间,移动鼠标会调整摄像机视角。当属性为Confined时,鼠标被限制在编辑器界面内。
鼠标锁定类型 | 枚举属性项 | 枚举ID |
---|---|---|
无 | None | 0 |
上锁的 | Locked | 1 |
有限制的 | Confined | 2 |
实例
实例1:脚本读取鼠标是否可移动
在客户端脚本下运行脚本,3秒后使鼠标进入锁定模式,再过3秒退出锁定模式,观察该属性的值的变化以及鼠标的使用效果
local uis=GetService("UserInputService") --获取用户输入服务
print("当前鼠标移动模式为:"..tostring(uis.MouseMoveActivate)) --打印属性值
wait(3)
uis.MouseMoveActivate=Enum.CursorLockMode.Locked --3秒后进入鼠标锁定模式
print("当前鼠标移动模式为:"..tostring(uis.MouseMoveActivate)) --打印属性值
wait(3)
uis.MouseMoveActivate=Enum.CursorLockMode.None --再过3秒退出鼠标锁定模式
print("当前鼠标移动模式为:"..tostring(uis.MouseMoveActivate)) --打印属性值
wait(3)
uis.MouseMoveActivate=Enum.CursorLockMode.Confined --3秒后进入编辑器锁定模式
print("当前鼠标移动模式为:"..tostring(uis.MouseMoveActivate)) --打印属性值
实例2:使用快捷键使鼠标进入和离开锁定模式
在客户端脚本下运行脚本,通过键位绑定服务
,使得按下快捷键Q时,进入/离开鼠标锁定模式
local uis = GetService("UserInputService") --获取用户输入服务
local cas = GetService("ContextActionService") --获取键位绑定服务
local function MouseLock()
if uis.MouseMoveActivate == Enum.CursorLockMode.None then --若当前鼠标未被锁定,则将其锁定,并打印消息
uis.MouseMoveActivate = Enum.CursorLockMode.Locked
print("Enter Mouse Lock Mode")
else if uis.MouseMoveActivate == Enum.CursorLockMode.Locked then --若当前鼠标已被锁定,则将其解除锁定,并打印消息
uis.MouseMoveActivate = Enum.CursorLockMode.None
print("Exit Mouse Lock Mode")
end
end
end
cas.BindInput("lock mouse",MouseLock,Enum.KeyCode.Q) --将锁定鼠标的函数绑定到快捷键Q上
文档更新时间: 2020-09-23 14:22 作者:王辰剑