private ECamerasRenderPreset GetPresetByCameraRenderState() { ECamerasRenderPreset camerasRenderPreset = default; foreach (var currentPresetMask in PresetMasks.Keys) { var isMatchPresetMask = true; for (var i = 0; i < currentPresetMask.Length; i++) { if (currentPresetMask[i] == 'x') { continue; } var targetMap = MapOfPresetMaskToCameraRenderStateProperty[i]; var matchedProperty = _cameraRenderStates[targetMap.CameraPriorityType][targetMap.FunctionalPropertyName]; var convertedPresetMaskElement = currentPresetMask[i].ToBoolean(); isMatchPresetMask &= convertedPresetMaskElement == matchedProperty; } if (isMatchPresetMask) { camerasRenderPreset = PresetMasks[currentPresetMask]; break; } } return(camerasRenderPreset); }
private void UpdateCamerasRenderStateByPreset(ECamerasRenderPreset preset) { if (PresetMasks.ContainsValue(preset) == false) { throw new NullReferenceException("The preset was not found in actual presets"); } var matchedPresetMask = PresetMasks.First(mask => mask.Value == preset).Key; for (var i = 0; i < matchedPresetMask.Length; i++) { var targetMap = MapOfPresetMaskToCameraRenderStateProperty[i]; var targetCameraState = _cameraRenderStates[targetMap.CameraPriorityType]; targetCameraState[targetMap.EnabledPropertyName] = matchedPresetMask[i] != 'x'; if (matchedPresetMask[i] == 'x') { continue; } var convertedPresetMaskElement = matchedPresetMask[i].ToBoolean(); targetCameraState[targetMap.FunctionalPropertyName] = convertedPresetMaskElement; } if (SlaveCameraState.IsActive == false) { MasterCameraState.IsEnabledActive = false; } if (MasterCameraState.IsActive == false) { SlaveCameraState.IsEnabledActive = false; } if (MasterCameraState.IsActive == false && SlaveCameraState.IsEnabledActive == false) { SlaveCameraState.IsActive = true; } if (SlaveCameraState.IsActive == false && MasterCameraState.IsEnabledActive == false) { MasterCameraState.IsActive = true; } }
public void SetCamerasRenderPreset(ECamerasRenderPreset preset) { UpdateCamerasRenderStateByPreset(preset); CamerasRenderPreset = preset; }