如何检测其他玩家

问题描述 投票:0回答:1
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 脚本的情况下做到这一点?喜欢新的计算或更好的平滑器,没有任何延迟。

lua roblox luau
1个回答
0
投票

为了帮助这是一个简单的错误,您首先需要不要执行如此大块的代码块,并将其变小,以使代码不会与玩家可以注意到的抖动风险捆绑在一起,并且最终可能会出现以下部分你的玩家的身体在一帧中不正常,然后变得更糟!

避免大代码并使用更内置的 ROBLOX 锁定鼠标,它已经是为您量身定制的 Shift 锁定代码! ROBLOX 实际上已经拥有所有这些插件,因此您可以轻松地使用它并编辑它,如果您愿意,助手们,ROBLOX 充满了超过 200 万个使用这些插件的游戏,我打赌您会找到一些有用的东西为了你!

© www.soinside.com 2019 - 2024. All rights reserved.