Вращение в Роблокс

-- Скрипт для вращения объекта вокруг заданной оси с заданной скоростью


-- Настройки вращения

local rotationSpeed = 30 -- скорость вращения в градусах в секунду

local rotationAxis = Vector3.new(0, 1, 0) -- ось вращения (пример: Vector3.new(0, 1, 0) для вращения вокруг оси Y)


-- Получаем ссылку на объект, который нужно вращать

local part = script.Parent


-- Проверяем, что объект существует

if not part:IsA("BasePart") then

    error("Скрипт должен быть помещен в BasePart (например, Part или MeshPart)")

end


-- Нормализуем вектор оси вращения

rotationAxis = rotationAxis.Unit


-- Функция, выполняющая вращение

local function rotate()

    local deltaTime = game:GetService("RunService").Heartbeat:Wait()

    local rotationAngle = math.rad(rotationSpeed) * deltaTime

    

    -- Создаем CFrame для вращения

    local rotationCFrame = CFrame.fromAxisAngle(rotationAxis, rotationAngle)

    

    -- Применяем вращение к объекту

    part.CFrame = part.CFrame * rotationCFrame

end


-- Запуск цикла вращения

while true do

    rotate()

end


Last modified: Wednesday, 11 December 2024, 10:32 AM