Преглед изворни кода

Fixed an issue where main camera wasn't being properly removed from scene

BearishSun пре 10 година
родитељ
комит
9fb1ab0dc7
1 измењених фајлова са 9 додато и 0 уклоњено
  1. 9 0
      BansheeEngine/Source/BsSceneManager.cpp

+ 9 - 0
BansheeEngine/Source/BsSceneManager.cpp

@@ -27,6 +27,15 @@ namespace BansheeEngine
 	void SceneManager::_unregisterCamera(const SPtr<Camera>& camera)
 	{
 		mCameras.erase(camera.get());
+
+		auto iterFind = std::find_if(mMainCameras.begin(), mMainCameras.end(), 
+			[&](const SceneCameraData& x)
+		{
+			return x.camera == camera;
+		});
+
+		if (iterFind != mMainCameras.end())
+			mMainCameras.erase(iterFind);
 	}
 
 	void SceneManager::_notifyMainCameraStateChanged(const SPtr<Camera>& camera)