У меня есть код, который позволяет кубу двигаться за счет нажатий игрока и не проходить сквозь объект x:
local cube = game.Workspace.cubik local uis = game:GetService('UserInputService') local walls = game.Workspace.walls.x
local function roundV(vctr) vctr = Vector3.new (math.round(vctr.X), math.round(vctr.Y), math.round(vctr.Z)) return vctr end
local function moving(input) if input.KeyCode == Enum.KeyCode.D and not(roundV(cube.Position) + Vector3.new (0, 0, 4) == roundV(walls.Position)) then cube.Position += Vector3.new (0, 0, 4)
elseif (input.KeyCode == Enum.KeyCode.A) and not(roundV(cube.Position) - Vector3.new (0, 0, 4) == roundV(walls.Position)) then cube.Position -= Vector3.new (0, 0, 4)
elseif input.KeyCode == Enum.KeyCode.W and not(roundV(cube.Position) + Vector3.new (4, 0, 0) == roundV(walls.Position)) then cube.Position += Vector3.new (4, 0, 0)
elseif input.KeyCode == Enum.KeyCode.S and not(roundV(cube.Position) - Vector3.new (4, 0, 0) == roundV(walls.Position)) then cube.Position -= Vector3.new (4, 0, 0) end end
uis.InputBegan:Connect(moving)
walls - модель или папка в которой находится объект х, а так же другие элементы стены, через которые куб тоже не должен проходить, но как это сделать я не знаю
local cube = game.Workspace.cubik
local uis = game:GetService('UserInputService')
local walls = game.Workspace.walls.x
local function roundV(vctr)
vctr = Vector3.new (math.round(vctr.X), math.round(vctr.Y), math.round(vctr.Z))
return vctr
end
local function moving(input)
if input.KeyCode == Enum.KeyCode.D and not(roundV(cube.Position) + Vector3.new (0, 0, 4) == roundV(walls.Position)) then
cube.Position += Vector3.new (0, 0, 4)
elseif (input.KeyCode == Enum.KeyCode.A) and not(roundV(cube.Position) - Vector3.new (0, 0, 4) == roundV(walls.Position)) then
cube.Position -= Vector3.new (0, 0, 4)
elseif input.KeyCode == Enum.KeyCode.W and not(roundV(cube.Position) + Vector3.new (4, 0, 0) == roundV(walls.Position)) then
cube.Position += Vector3.new (4, 0, 0)
elseif input.KeyCode == Enum.KeyCode.S and not(roundV(cube.Position) - Vector3.new (4, 0, 0) == roundV(walls.Position)) then
cube.Position -= Vector3.new (4, 0, 0)
end
end
uis.InputBegan:Connect(moving)
walls - модель или папка в которой находится объект х, а так же другие элементы стены, через которые куб тоже не должен проходить, но как это сделать я не знаю