From 5ab554f61cc378ce0e917eb4b8f9b7ed1da77385 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Mon, 12 Apr 2021 12:57:15 +0200 Subject: [PATCH] Fix using Camera refs --- Source/Engine/Graphics/RenderTask.h | 2 +- Source/Engine/Level/Actors/Camera.cpp | 7 ++++--- Source/Engine/Level/Actors/Camera.h | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Source/Engine/Graphics/RenderTask.h b/Source/Engine/Graphics/RenderTask.h index 5d6a47861..96048bcc2 100644 --- a/Source/Engine/Graphics/RenderTask.h +++ b/Source/Engine/Graphics/RenderTask.h @@ -251,7 +251,7 @@ public: /// /// The scene rendering camera. Can be used to override the rendering view properties based on the current camera setup. /// - API_FIELD() Camera* Camera = nullptr; + API_FIELD() ScriptingObjectReference Camera; /// /// The render view description. diff --git a/Source/Engine/Level/Actors/Camera.cpp b/Source/Engine/Level/Actors/Camera.cpp index 1f9de6d41..c37e30607 100644 --- a/Source/Engine/Level/Actors/Camera.cpp +++ b/Source/Engine/Level/Actors/Camera.cpp @@ -17,12 +17,13 @@ Array Camera::Cameras; Camera* Camera::CutSceneCamera = nullptr; -Camera* Camera::OverrideMainCamera = nullptr; +ScriptingObjectReference Camera::OverrideMainCamera; Camera* Camera::GetMainCamera() { - if (OverrideMainCamera) - return OverrideMainCamera; + Camera* overrideMainCamera = OverrideMainCamera.Get(); + if (overrideMainCamera) + return overrideMainCamera; if (CutSceneCamera) return CutSceneCamera; return Cameras.HasItems() ? Cameras.First() : nullptr; diff --git a/Source/Engine/Level/Actors/Camera.h b/Source/Engine/Level/Actors/Camera.h index 4bf277279..ecd93cef0 100644 --- a/Source/Engine/Level/Actors/Camera.h +++ b/Source/Engine/Level/Actors/Camera.h @@ -28,7 +28,7 @@ DECLARE_SCENE_OBJECT(Camera); static Camera* CutSceneCamera; // The overriden main camera. - API_FIELD() static Camera* OverrideMainCamera; + API_FIELD() static ScriptingObjectReference OverrideMainCamera; // Gets the main camera. API_PROPERTY() static Camera* GetMainCamera();