private void TrySetAsActiveCamera(CustomCameraContainer camContainer) { CustomCameraContainer previousActiveCam; if (_activeCustomCams.TryGetValue(camContainer.type, out previousActiveCam)) { if (previousActiveCam != null) { previousActiveCam.Hide(); } } _hud.ToggleCustomCameraScreen(camContainer.type, true); _activeCustomCams[camContainer.type] = camContainer; camContainer.Show(); }
public void Unregister(CustomCameraContainer camContainer) { var type = camContainer.type; if (_customCams.ContainsKey(type)) { _customCams[type].Remove(camContainer); } if (_activeCustomCams.ContainsKey(type)) { _activeCustomCams[type] = null; } if (!TrySetNextActiveCamera(type)) { _hud.ToggleCustomCameraScreen(type, false); } }
public Rect RegisterAndGetViewportPixelRect(CustomCameraContainer camContainer) { var type = camContainer.type; if (!_customCams.ContainsKey(type)) { _customCams[type] = new List <CustomCameraContainer> { camContainer }; } else { _customCams[type].Add(camContainer); } TrySetAsActiveCamera(camContainer); return(_hud.GetPixelRectForCamViewport(type)); }