Перейти к содержимому

Превью дополнительной камеры

Дополнительная камера не заменяет основной вид. Она рендерит OutputTexture, которую модуль выводит как обычную текстуру.

local Preview = Cameras:CreateCamera()
if Preview == nil then
print("Camera limit reached")
else
Preview:SetRenderSize(320, 180)
Preview.Aspect = 320 / 180
Preview.Fov = 60
Preview:SetActive(true)
Scheduler:OnFrame(function()
local main = Cameras.Main
if main == nil then
return
end
Preview.Position =
main.Position + Vector3.new(0, 2, 0)
Preview.Rotation = main.Rotation
if Preview.OutputTexture ~= nil then
ImGui:DrawTexture(
Preview.OutputTexture,
Rect.new(20, 20, 320, 180)
)
end
end)
end
Preview:SetActive(false)

Камера прекращает обновлять текстуру, а последний кадр остаётся видимым. SetActive(true) продолжает рендер.

if Preview ~= nil then
Cameras:RemoveCamera(Preview)
Preview = nil
end

После удаления прежнюю ссылку использовать нельзя.

Справочник: Camera, Texture и ImGui.