local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local plr = game:GetService("Players").LocalPlayer
local char = plr.Character or plr.CharacterAdded:Wait()
local hum = char:WaitForChild("Humanoid")
local root = hum.RootPart
local pcKey = Enum.KeyCode.LeftShift
local xboxKey = Enum.KeyCode.DPadLeft
local isActive = false
function shiftLock()
isActive = not isActive
if isActive then
hum.CameraOffset = Vector3.new(1.75, 0, 0)
hum.AutoRotate = false
RunService:BindToRenderStep("ShiftLock", Enum.RenderPriority.Character.Value, function()
UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
local rootCFrame = root.CFrame
local cameraLookVector = workspace.CurrentCamera.CFrame.LookVector
local newCFrame = CFrame.new(rootCFrame.Position, rootCFrame.Position + Vector3.new(cameraLookVector.X, 0, cameraLookVector.Z))
root.CFrame = newCFrame
end)
else
hum.CameraOffset = Vector3.new(0, 0, 0)
hum.AutoRotate = true
RunService:UnbindFromRenderStep("ShiftLock")
UserInputService.MouseBehavior = Enum.MouseBehavior.Default
end
end
shiftLock()
UserInputService.InputBegan:Connect(function(input, process)
if process then return end
if input.KeyCode == pcKey or input.KeyCode == xboxKey then
shiftLock()
end
end)
我正在尝试为 Xbox 和 PC 制作一个
Custom
Roblox Shift 锁定脚本,并且很快就会添加移动支持,但我的旋转速度真的很慢。就像高速行驶时相机抖动一样。有没有更好的方法可以在不改变原始 Roblox ShiftLock 脚本的情况下做到这一点?喜欢新的计算或更好的平滑器,没有任何延迟。
为了帮助这是一个简单的错误,您首先需要不要执行如此大块的代码块,并将其变小,以使代码不会与玩家可以注意到的抖动风险捆绑在一起,并且最终可能会出现以下部分你的玩家的身体在一帧中不正常,然后变得更糟!
避免大代码并使用更内置的 ROBLOX 锁定鼠标,它已经是为您量身定制的 Shift 锁定代码! ROBLOX 实际上已经拥有所有这些插件,因此您可以轻松地使用它并编辑它,如果您愿意,助手们,ROBLOX 充满了超过 200 万个使用这些插件的游戏,我打赌您会找到一些有用的东西为了你!