В других «языках программирования» интерфейсов для игровых движков наблюдал вариацию разрезания картинки, чтобы получалась красивая рамочка обрамления без искажения общего вида.
Нашёл картинку для подтверждения. Итак, главная красота состоит в том, что отрезанные углы не подвергаются деформациям, а вот остальные части дублируются или растягиваются. Тут уж от движка зависит.
https://devforum.roblox.com/t/how-to-use-slicecenter-robloxs-9-slice-gui-property/18313
https://developer.roblox.com/en-us/api-reference/property/ImageLabel/SliceCenter
В качестве примера использую свеже созданную заготовку ImageLabel:
Создадим картиночку заготовку UI:
Локальный скрипт для демонстрации работы Slince:
me = script.Parent me.ImageLabel.ScaleType = Enum.ScaleType.Slice -- обрезание me.ImageLabel.SliceCenter = Rect.new(120, 160, 190, 167) -- отступ от лево верх me.ImageLabel.SliceScale=0.4 -- размер while true do x=20 y=20 for x=20,60 do me.ImageLabel.Size=UDim2.new(x/100,0,y/100,0) wait(0.1) end x=60 for y=20,60 do me.ImageLabel.Size=UDim2.new(x/100,0,y/100,0) wait(0.1) end y=60 for x=60,20,-1 do me.ImageLabel.Size=UDim2.new(x/100,0,y/100,0) wait(0.1) end x=20 for y=60,20,-1 do me.ImageLabel.Size=UDim2.new(x/100,0,y/100,0) wait(0.1) end end print("end")
Посмотреть на это в действии можно тут:
P.s. Забыл указать, чтобы можно было использовать свои рисунки игра должна быть опубликована.