Fix using Camera refs

This commit is contained in:
Wojtek Figat
2021-04-12 12:57:15 +02:00
parent 8a725ec243
commit 5ab554f61c
3 changed files with 6 additions and 5 deletions

View File

@@ -251,7 +251,7 @@ public:
/// <summary>
/// The scene rendering camera. Can be used to override the rendering view properties based on the current camera setup.
/// </summary>
API_FIELD() Camera* Camera = nullptr;
API_FIELD() ScriptingObjectReference<Camera> Camera;
/// <summary>
/// The render view description.

View File

@@ -17,12 +17,13 @@
Array<Camera*> Camera::Cameras;
Camera* Camera::CutSceneCamera = nullptr;
Camera* Camera::OverrideMainCamera = nullptr;
ScriptingObjectReference<Camera> 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;

View File

@@ -28,7 +28,7 @@ DECLARE_SCENE_OBJECT(Camera);
static Camera* CutSceneCamera;
// The overriden main camera.
API_FIELD() static Camera* OverrideMainCamera;
API_FIELD() static ScriptingObjectReference<Camera> OverrideMainCamera;
// Gets the main camera.
API_PROPERTY() static Camera* GetMainCamera();