Я новичок в написании сценариев Roblox (хотя в прошлом я много работал с разработчиками Unity). По сути, я пытаюсь позволить пользователю летать.Превратил гравитацию в 0 и написал ControlScript ниже.Я хочу, чтобы Space / Shift позволял людям подниматься / опускаться.По какой-то причине, это просто не меняет положение оси Y, хотя.Я возился с этим уже около 4 часов и не могу понять, в чем проблема.
Заранее спасибо за помощь!
-- Declare variables
local userInputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local player = game.Players.LocalPlayer
local moveVector = Vector3.new(0,0,0)
-- Handle inputBegan event (when player first presses a key)
userInputService.InputBegan:connect(function(inputObject)
if player.Character then
if inputObject.KeyCode == Enum.KeyCode.W then
moveVector = moveVector + Vector3.new(0,0,-1)
end
if inputObject.KeyCode == Enum.KeyCode.A then
moveVector = moveVector + Vector3.new(-1,0,0)
end
if inputObject.KeyCode == Enum.KeyCode.S then
moveVector = moveVector + Vector3.new(0,0,1)
end
if inputObject.KeyCode == Enum.KeyCode.D then
moveVector = moveVector + Vector3.new(1,0,0)
end
if inputObject.KeyCode == Enum.KeyCode.Space then
moveVector = moveVector + Vector3.new(0,-1,0)
end
if inputObject.KeyCode == Enum.KeyCode.LeftShift then
moveVector = moveVector + Vector3.new(0,1,0)
end
end
end)
-- Handle inputEnded event (when player releases a key)
userInputService.InputEnded:connect(function(inputObject)
if player.Character then
if inputObject.KeyCode == Enum.KeyCode.W then
moveVector = moveVector + Vector3.new(0,0,1)
end
if inputObject.KeyCode == Enum.KeyCode.A then
moveVector = moveVector + Vector3.new(1,0,0)
end
if inputObject.KeyCode == Enum.KeyCode.S then
moveVector = moveVector + Vector3.new(0,0,-1)
end
if inputObject.KeyCode == Enum.KeyCode.D then
moveVector = moveVector + Vector3.new(-1,0,0)
end
if inputObject.KeyCode == Enum.KeyCode.Space then
moveVector = moveVector + Vector3.new(0,1,0)
end
if inputObject.KeyCode == Enum.KeyCode.LeftShift then
moveVector = moveVector + Vector3.new(0,-1,0)
end
end
end)
-- On renderstepped update the character's motion based on what keys
-- are currently being pressed
runService.RenderStepped:connect(function()
if player.Character then
player:Move(moveVector, true)
end
end)