Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Roblox Studio и ServerStorage

сорри не скажу Ученик (54), на голосовании 1 неделю назад
Я клонирую люк из ServerStorage в Workspace но он клонируется не в том месте где должен быть а именно в позиции нужного мне блока,вот сам скрипт

local ClonePart=script.Parent
local PositionPart=script.Parent.Position

function CloneModel()
local ServerModel= game.ServerStorage.Game _Models.Model1:Clone()
ServerModel.Parent=game.Workspace
ServerModel.Position=PositionPart
wait(60)
ServerModel:Destroy()
end

CloneModel()
Голосование за лучший ответ
** Эгоист ** Знаток (483) 1 месяц назад
Проблема в вашем скрипте заключается в том, что вы устанавливаете позицию клонированной модели не у объекта, а у её родителя. В Roblox модели имеют свойство Position, но оно не применяется ко всем типам объектов. Вам нужно установить позицию для конкретной части внутри модели.
Вот исправленный вариант вашего скрипта, который устанавливает позицию для конкретной части модели:

local ClonePart = script.Parent
local PositionPart = ClonePart.Position

function CloneModel()
local ServerModel = game.ServerStorage.Game _Models.Model1:Clone()
ServerModel.Parent = game.Workspace

-- Перебираем все части в клонированной модели и устанавливаем позицию
for _, part in ipairs(ServerModel:GetDescendants()) do
if part:IsA("BasePart") then
part.Position = PositionPart
end
end

wait(60)
ServerModel:Destroy()
end

CloneModel()


Объяснение изменений:
Цикл по частям: Мы перебираем все потомки модели с помощью GetDescendants(), и если объект является частью (проверка с IsA("BasePart")), устанавливаем его позицию.
Установка позиции для всех частей: Если ваша модель состоит из нескольких частей, теперь каждая часть будет установлена в нужную позицию.
Таким образом, модель будет клонирована и установлена в нужном месте, как вы и планировали.
Похожие вопросы