public void StopFollowing() { following = false; cameraController.enabled = true; camera.nearClipPlane = 1.0f; FPSCamera.onCameraModeChanged(false); }
public void SetFollowInstance(ushort instance) { FPSCamera.instance.SetMode(false); followInstance = instance; following = true; camera.nearClipPlane = 0.1f; cameraController.enabled = false; FPSCamera.onCameraModeChanged(true); }
public void SetFollowInstance(uint instance) { FPSCamera.instance.SetMode(false); followInstance = instance; following = true; camera.nearClipPlane = 0.1f; cameraController.enabled = false; camera.fieldOfView = FPSCamera.instance.config.fieldOfView; FPSCamera.onCameraModeChanged(true); }
public override void OnLevelLoaded(LoadMode mode) { var uiView = GameObject.FindObjectOfType <UIView>(); cameraModeButton = uiView.AddUIComponent(typeof(UIButton)) as UIButton; cameraModeButton.width = 36; cameraModeButton.height = 36; cameraModeButton.pressedBgSprite = "OptionBasePressed"; cameraModeButton.normalBgSprite = "OptionBase"; cameraModeButton.hoveredBgSprite = "OptionBaseHovered"; cameraModeButton.disabledBgSprite = "OptionBaseDisabled"; cameraModeButton.normalFgSprite = "InfoPanelIconFreecamera"; cameraModeButton.foregroundSpriteMode = UIForegroundSpriteMode.Scale; cameraModeButton.scaleFactor = 1.0f; cameraModeButton.tooltip = "FPS Camera configuration"; cameraModeButton.tooltipBox = uiView.defaultTooltipBox; UIComponent escbutton = uiView.FindUIComponent("Esc"); cameraModeButton.relativePosition = new Vector2 ( escbutton.relativePosition.x + escbutton.width / 2.0f - cameraModeButton.width / 2.0f - escbutton.width - 8.0f, escbutton.relativePosition.y + escbutton.height / 2.0f - cameraModeButton.height / 2.0f ); cameraModeButton.eventClick += ButtonClick; var labelObject = new GameObject(); labelObject.transform.parent = uiView.transform; cameraModeLabel = labelObject.AddComponent <UILabel>(); cameraModeLabel.textColor = new Color32(255, 255, 255, 255); cameraModeLabel.transformPosition = new Vector3(1.15f, 0.90f); cameraModeLabel.Hide(); FPSCamera.Initialize(); FPSCamera.onCameraModeChanged = state => { if (state) { cameraModeLabel.text = String.Format("Press ({0}) to exit first-person mode", FPSCamera.GetToggleUIKey()); cameraModeLabel.Show(); } else { cameraModeLabel.Hide(); } }; }
public void StopFollowing() { following = false; cameraController.enabled = true; camera.nearClipPlane = 1.0f; FPSCamera.onCameraModeChanged(false); if (FPSCamera.instance.hideUIComponent != null && FPSCamera.instance.config.integrateHideUI) { FPSCamera.instance.hideUIComponent.SendMessage("Show"); } }
public void StopFollowing() { following = false; cameraController.enabled = true; camera.nearClipPlane = 1.0f; FPSCamera.onCameraModeChanged(false); userOffset = Vector3.zero; camera.fieldOfView = FPSCamera.instance.originalFieldOfView; if (FPSCamera.instance.hideUIComponent != null && FPSCamera.instance.config.integrateHideUI) { FPSCamera.instance.hideUIComponent.SendMessage("Show"); } }
private void ButtonClick(UIComponent component, UIMouseEventParameter eventParam) { FPSCamera.ToggleUI(); }
public override void OnLevelUnloading() { GameObject.Destroy(cameraModeButton); FPSCamera.Deinitialize(); }
private FPSCameraUI() { var uiView = FindObjectOfType <UIView>(); var fullscreenContainer = uiView.FindUIComponent("FullScreenContainer"); cameraModeButton = uiView.AddUIComponent(typeof(UIButton)) as UIButton; cameraModeButton.name = "FPSCameraConfigurationButton"; cameraModeButton.gameObject.name = "FPSCameraConfigurationButton"; cameraModeButton.width = 36; cameraModeButton.height = 36; cameraModeButton.pressedBgSprite = "OptionBasePressed"; cameraModeButton.normalBgSprite = "OptionBase"; cameraModeButton.hoveredBgSprite = "OptionBaseHovered"; cameraModeButton.disabledBgSprite = "OptionBaseDisabled"; cameraModeButton.normalFgSprite = "InfoPanelIconFreecamera"; cameraModeButton.foregroundSpriteMode = UIForegroundSpriteMode.Scale; cameraModeButton.scaleFactor = 1.0f; cameraModeButton.tooltip = "FPS Camera configuration"; cameraModeButton.tooltipBox = uiView.defaultTooltipBox; UIComponent escbutton = uiView.FindUIComponent("Esc"); cameraModeButton.relativePosition = new Vector2 ( escbutton.relativePosition.x + escbutton.width / 2.0f - cameraModeButton.width / 2.0f - escbutton.width - 8.0f, escbutton.relativePosition.y + escbutton.height / 2.0f - cameraModeButton.height / 2.0f ); cameraModeButton.eventClick += (component, param) => { panel.isVisible = !panel.isVisible; }; var labelObject = new GameObject(); labelObject.transform.parent = uiView.transform; cameraModeLabel = labelObject.AddComponent <UILabel>(); cameraModeLabel.textColor = new Color32(255, 255, 255, 255); cameraModeLabel.Hide(); FPSCamera.onCameraModeChanged = state => { if (state) { cameraModeLabel.text = String.Format("Press ({0}) to exit first-person mode", FPSCamera.GetToggleUIKey()); cameraModeLabel.color = new Color32(255, 255, 255, 255); cameraModeLabel.AlignTo(cameraModeButton, UIAlignAnchor.BottomRight); cameraModeLabel.relativePosition += new Vector3(-38.0f, -8.0f); cameraModeLabel.Show(); } else { cameraModeLabel.Hide(); } }; FPSCamera.onUpdate = () => { if (cameraModeLabel.color.a > 0) { var c = cameraModeLabel.color; cameraModeLabel.color = new Color32(c.r, c.g, c.b, (byte)(c.a - 1)); } }; panel = fullscreenContainer.AddUIComponent <UIPanel>(); panel.size = new Vector2(400, 700); panel.isVisible = false; panel.backgroundSprite = "SubcategoriesPanel"; panel.relativePosition = new Vector3(cameraModeButton.relativePosition.x - panel.size.x, cameraModeButton.relativePosition.y + 60.0f); panel.name = "FPSCameraConfigPanel"; var titleLabel = panel.AddUIComponent <UILabel>(); titleLabel.name = "Title"; titleLabel.text = "First-person camera configuration"; titleLabel.autoSize = false; titleLabel.size = new Vector2(panel.size.x, 24.0f); titleLabel.AlignTo(panel, UIAlignAnchor.TopLeft); titleLabel.relativePosition = new Vector3(titleLabel.relativePosition.x, titleLabel.relativePosition.y + 2.0f); titleLabel.textAlignment = UIHorizontalAlignment.Center; float y = 48.0f; var hotkeyToggleLabel = panel.AddUIComponent <UILabel>(); hotkeyToggleLabel.name = "ToggleFirstpersonLabel"; hotkeyToggleLabel.text = "Hotkey to toggle first-person"; hotkeyToggleLabel.relativePosition = new Vector3(4.0f, y); hotkeyToggleLabel.textScale = 0.8f; hotkeyToggleButton = MakeButton(panel, "ToggleFirstpersonButton", FPSCamera.instance.config.toggleFPSCameraHotkey.ToString(), y, () => { if (!waitingForChangeCameraHotkey) { waitingForChangeCameraHotkey = true; waitingForShowMouseHotkey = false; waitingForGoFasterHotkey = false; hotkeyToggleButton.text = "Waiting"; } }); y += 28.0f; var hotkeyShowMouseLabel = panel.AddUIComponent <UILabel>(); hotkeyShowMouseLabel.name = "ShowMouseLabel"; hotkeyShowMouseLabel.text = "Hotkey to show cursor (hold)"; hotkeyShowMouseLabel.relativePosition = new Vector3(4.0f, y); hotkeyShowMouseLabel.textScale = 0.8f; hotkeyShowMouseButton = MakeButton(panel, "ShowMouseButton", FPSCamera.instance.config.showMouseHotkey.ToString(), y, () => { if (!waitingForChangeCameraHotkey) { waitingForChangeCameraHotkey = false; waitingForShowMouseHotkey = true; waitingForGoFasterHotkey = false; hotkeyShowMouseButton.text = "Waiting"; } }); y += 28.0f + 16.0f; var hotkeyGoFasterLabel = panel.AddUIComponent <UILabel>(); hotkeyGoFasterLabel.name = "GoFasterLabel"; hotkeyGoFasterLabel.text = "Hotkey to go faster (hold)"; hotkeyGoFasterLabel.relativePosition = new Vector3(4.0f, y); hotkeyGoFasterLabel.textScale = 0.8f; hotkeyGoFasterButton = MakeButton(panel, "GoFasterButton", FPSCamera.instance.config.goFasterHotKey.ToString(), y, () => { if (!waitingForGoFasterHotkey) { waitingForChangeCameraHotkey = false; waitingForShowMouseHotkey = false; waitingForGoFasterHotkey = true; hotkeyGoFasterButton.text = "Waiting"; } }); y += 28.0f; MakeSlider(panel, "GoFasterMultiplier", "\"Go faster\" speed multiplier", y, FPSCamera.instance.config.goFasterSpeedMultiplier, 2.0f, 20.0f, value => { FPSCamera.instance.config.goFasterSpeedMultiplier = value; FPSCamera.instance.SaveConfig(); }); y += 28.0f + 16.0f; if (FPSCamera.instance.hideUIComponent != null) { MakeCheckbox(panel, "HideUI", "HideUI integration", y, FPSCamera.instance.config.integrateHideUI, value => { FPSCamera.instance.config.integrateHideUI = value; FPSCamera.instance.SaveConfig(); }); y += 28.0f + 8.0f; } MakeSlider(panel, "FieldOfView", "Field of view", y, FPSCamera.instance.config.fieldOfView, 30.0f, 120.0f, value => { FPSCamera.instance.SetFieldOfView(value); }); y += 28.0f; MakeSlider(panel, "MovementSpeed", "Movement speed", y, FPSCamera.instance.config.cameraMoveSpeed, 0.25f, 128.0f, value => { FPSCamera.instance.config.cameraMoveSpeed = value; FPSCamera.instance.SaveConfig(); }); y += 28.0f + 16.0f; MakeSlider(panel, "Sensitivity", "Sensitivity", y, FPSCamera.instance.config.cameraRotationSensitivity, 0.25f, 3.0f, value => { FPSCamera.instance.config.cameraRotationSensitivity = value; FPSCamera.instance.SaveConfig(); }); y += 28.0f; MakeCheckbox(panel, "InvertYAxis", "Invert Y-Axis", y, FPSCamera.instance.config.invertYAxis, value => { FPSCamera.instance.config.invertYAxis = value; FPSCamera.instance.SaveConfig(); }); y += 28.0f + 16.0f; MakeCheckbox(panel, "SnapToGround", "Snap to ground", y, FPSCamera.instance.config.snapToGround, value => { FPSCamera.instance.config.snapToGround = value; FPSCamera.instance.SaveConfig(); }); y += 28.0f; MakeSlider(panel, "GroundDistance", "Ground distance", y, FPSCamera.instance.config.groundOffset, 0.25f, 32.0f, value => { FPSCamera.instance.config.groundOffset = value; FPSCamera.instance.SaveConfig(); }); y += 28.0f; MakeCheckbox(panel, "PreventGroundClipping", "Prevent ground clipping", y, FPSCamera.instance.config.preventClipGround, value => { FPSCamera.instance.config.preventClipGround = value; FPSCamera.instance.SaveConfig(); }); y += 28.0f + 16.0f; MakeCheckbox(panel, "AnimatedTransitions", "Animated transitions", y, FPSCamera.instance.config.animateTransitions, value => { FPSCamera.instance.config.animateTransitions = value; FPSCamera.instance.SaveConfig(); }); y += 28.0f; MakeSlider(panel, "TransitionSpeed", "Transition speed", y, FPSCamera.instance.config.animationSpeed, 0.1f, 4.0f, value => { FPSCamera.instance.config.animationSpeed = value; FPSCamera.instance.SaveConfig(); }); y += 28.0f + 16.0f; if (!FPSCamera.editorMode) { MakeCheckbox(panel, "AllowMovementVehicleMode", "Allow movement in vehicle/ citizen mode", y, FPSCamera.instance.config.allowUserOffsetInVehicleCitizenMode, value => { FPSCamera.instance.config.allowUserOffsetInVehicleCitizenMode = value; FPSCamera.instance.SaveConfig(); }); y += 28.0f; MakeCheckbox(panel, "ManualWalkthrough", "Manual switching in walkthrough- mode", y, FPSCamera.instance.config.walkthroughModeManual, value => { FPSCamera.instance.config.walkthroughModeManual = value; FPSCamera.instance.SaveConfig(); }); y += 28.0f; MakeSlider(panel, "StayDuration", "Walkthrough stay duration", y, FPSCamera.instance.config.walkthroughModeTimer, 10.0f, 60.0f, value => { FPSCamera.instance.config.walkthroughModeTimer = value; FPSCamera.instance.SaveConfig(); }); y += 28.0f; var walkthroughModeButton = MakeButton(panel, "WalkthroughModeButton", "Enter walkthrough mode", y, () => { FPSCamera.instance.EnterWalkthroughMode(); }); walkthroughModeButton.relativePosition = new Vector3(2.0f, y - 6.0f); walkthroughModeButton.size = new Vector2(200.0f, 24.0f); y += 28.0f + 16.0f; } var resetConfig = MakeButton(panel, "ResetConfigButton", "Reset configuration", y, () => { FPSCamera.instance.ResetConfig(); }); resetConfig.relativePosition = new Vector3(2.0f, y); resetConfig.size = new Vector2(200.0f, 24.0f); }
public override void OnLevelUnloading() { FPSCamera.Deinitialize(); }
public override void OnLevelLoaded(LoadMode mode) { FPSCamera.Initialize(mode); }