private MultiWayCameraModificationSetting CloneAndTranslaceCameraModificationSetting(MultiWayCameraModificationSetting source, CameraController cameraController) { MultiWayCameraModificationSetting clone = source.Clone(); Vector3 transformPoint = parentPositionObject.transform.TransformPoint(Vector3.zero); if (clone.verticalLockSettings.enabled) { if (clone.verticalLockSettings.enableTopVerticalLock) { clone.verticalLockSettings.topBoundary = transformPoint.y + clone.verticalLockSettings.topVerticalLockPosition - cameraController.targetScreenSize.y * .5f / clone.zoomSettings.zoomPercentage; } if (clone.verticalLockSettings.enableBottomVerticalLock) { clone.verticalLockSettings.bottomBoundary = transformPoint.y + clone.verticalLockSettings.bottomVerticalLockPosition + cameraController.targetScreenSize.y * .5f / clone.zoomSettings.zoomPercentage; } } if (clone.horizontalLockSettings.enabled) { if (clone.horizontalLockSettings.enableLeftHorizontalLock) { clone.horizontalLockSettings.leftBoundary = transformPoint.x + clone.horizontalLockSettings.leftHorizontalLockPosition + cameraController.targetScreenSize.x * .5f / clone.zoomSettings.zoomPercentage; } if (clone.horizontalLockSettings.enableRightHorizontalLock) { clone.horizontalLockSettings.rightBoundary = transformPoint.x + clone.horizontalLockSettings.rightHorizontalLockPosition - cameraController.targetScreenSize.x * .5f / clone.zoomSettings.zoomPercentage; } } clone.verticalLockSettings.translatedVerticalLockPosition = transformPoint.y + clone.verticalLockSettings.defaultVerticalLockPosition; return(clone); }
private void SetCameraModificationSettings(MultiWayCameraModificationSetting source) { if (source.zoomSettings.zoomPercentage == 0f) { throw new ArgumentOutOfRangeException("Zoom Percentage must not be 0."); } MultiWayCameraModificationSetting clone = CloneAndTranslaceCameraModificationSetting(source, _cameraController); CameraMovementSettings cameraMovementSettings = new CameraMovementSettings( clone.verticalLockSettings , clone.horizontalLockSettings , clone.zoomSettings , clone.smoothDampMoveSettings , clone.offset , clone.verticalCameraFollowMode , clone.horizontalOffsetDeltaMovementFactor ); var cameraController = Camera.main.GetComponent <CameraController>(); cameraController.SetCameraMovementSettings(cameraMovementSettings); _lastMultiWayCameraModificationSetting = source; Logger.Info("Applied " + (source == redCameraModificationSettings ? "red" : "green") + " camera setting for camera modifier " + this.name); }
public MultiWayCameraModificationSetting Clone() { var multiWayCameraModificationSetting = new MultiWayCameraModificationSetting(); multiWayCameraModificationSetting.VerticalLockSettings = VerticalLockSettings.Clone(); multiWayCameraModificationSetting.HorizontalLockSettings = HorizontalLockSettings.Clone(); multiWayCameraModificationSetting.ZoomSettings = ZoomSettings.Clone(); multiWayCameraModificationSetting.SmoothDampMoveSettings = SmoothDampMoveSettings.Clone(); multiWayCameraModificationSetting.Offset = Offset; multiWayCameraModificationSetting.VerticalCameraFollowMode = VerticalCameraFollowMode; multiWayCameraModificationSetting.HorizontalOffsetDeltaMovementFactor = HorizontalOffsetDeltaMovementFactor; return(multiWayCameraModificationSetting); }
public MultiWayCameraModificationSetting Clone() { MultiWayCameraModificationSetting multiWayCameraModificationSetting = new MultiWayCameraModificationSetting(); multiWayCameraModificationSetting.verticalLockSettings = verticalLockSettings.Clone(); multiWayCameraModificationSetting.horizontalLockSettings = horizontalLockSettings.Clone(); multiWayCameraModificationSetting.zoomSettings = zoomSettings.Clone(); multiWayCameraModificationSetting.smoothDampMoveSettings = smoothDampMoveSettings.Clone(); multiWayCameraModificationSetting.offset = offset; multiWayCameraModificationSetting.verticalCameraFollowMode = verticalCameraFollowMode; multiWayCameraModificationSetting.horizontalOffsetDeltaMovementFactor = horizontalOffsetDeltaMovementFactor; return(multiWayCameraModificationSetting); }
public void ImportSettings() { if (importCameraSettings.importSource == null) { Debug.LogWarning("Unable to import settings because no object was selected"); return; } MultiWayCameraModifier multiWayCameraModifier = importCameraSettings.importSource.GetComponent <MultiWayCameraModifier>(); CameraModifier cameraModifier = importCameraSettings.importSource.GetComponent <CameraModifier>(); if (multiWayCameraModifier != null) { switch (importCameraSettings.importCameraSettingsMode) { case ImportCameraSettingsMode.FromGreenToGreen: this.greenCameraModificationSettings = multiWayCameraModifier.greenCameraModificationSettings.Clone(); Debug.Log("Successfully imported green settings from " + importCameraSettings.importSource.name + " and applied them to greenCameraModificationSettings"); break; case ImportCameraSettingsMode.FromGreenToRed: this.redCameraModificationSettings = multiWayCameraModifier.greenCameraModificationSettings.Clone(); Debug.Log("Successfully imported green settings from " + importCameraSettings.importSource.name + " and applied them to redCameraModificationSettings"); break; case ImportCameraSettingsMode.FromRedToGreen: this.greenCameraModificationSettings = multiWayCameraModifier.redCameraModificationSettings.Clone(); Debug.Log("Successfully imported red settings from " + importCameraSettings.importSource.name + " and applied them to greenCameraModificationSettings"); break; case ImportCameraSettingsMode.FromRedToRed: this.redCameraModificationSettings = multiWayCameraModifier.redCameraModificationSettings.Clone(); Debug.Log("Successfully imported red settings from " + importCameraSettings.importSource.name + " and applied them to redCameraModificationSettings"); break; case ImportCameraSettingsMode.FromModifierToGreen: case ImportCameraSettingsMode.FromModifierToRed: Debug.LogError("Unable to import modifer settings because the source is of type MultiWayCameraModifier"); break; } } else if (cameraModifier != null) { MultiWayCameraModificationSetting multiWayCameraModificationSetting = new MultiWayCameraModificationSetting(); multiWayCameraModificationSetting.verticalLockSettings = cameraModifier.verticalLockSettings.Clone(); multiWayCameraModificationSetting.horizontalLockSettings = cameraModifier.horizontalLockSettings.Clone(); multiWayCameraModificationSetting.zoomSettings = cameraModifier.zoomSettings.Clone(); multiWayCameraModificationSetting.smoothDampMoveSettings = cameraModifier.smoothDampMoveSettings.Clone(); multiWayCameraModificationSetting.offset = cameraModifier.offset; multiWayCameraModificationSetting.verticalCameraFollowMode = cameraModifier.verticalCameraFollowMode; multiWayCameraModificationSetting.horizontalOffsetDeltaMovementFactor = cameraModifier.horizontalOffsetDeltaMovementFactor; switch (importCameraSettings.importCameraSettingsMode) { case ImportCameraSettingsMode.FromGreenToGreen: case ImportCameraSettingsMode.FromRedToGreen: case ImportCameraSettingsMode.FromModifierToGreen: this.greenCameraModificationSettings = multiWayCameraModificationSetting; Debug.Log("Successfully imported settings from " + importCameraSettings.importSource.name + " and applied them to greenCameraModificationSettings"); break; case ImportCameraSettingsMode.FromGreenToRed: case ImportCameraSettingsMode.FromRedToRed: case ImportCameraSettingsMode.FromModifierToRed: this.redCameraModificationSettings = multiWayCameraModificationSetting; Debug.Log("Successfully imported settings from " + importCameraSettings.importSource.name + " and applied them to redCameraModificationSettings"); break; } } else { Debug.LogError("Unable to import settings because object does not contain MultiWayCameraModifier nor CameraModifier component."); return; } }