private void DoShake(MainCamera mainCam, float _intensity, float _duration) { if (mainCam.attachedCamera is GameCamera) { mainCam.Shake(_intensity / 67f, _duration, true); } else if (mainCam.attachedCamera is GameCamera25D) { mainCam.Shake(_intensity / 67f, _duration, true); GameCamera25D gameCamera = (GameCamera25D)mainCam.attachedCamera; if (gameCamera.backgroundImage) { gameCamera.backgroundImage.Shake(_intensity / 0.67f, _duration); } } else if (mainCam.attachedCamera is GameCamera2D) { mainCam.Shake(_intensity / 33f, _duration, false); } else { mainCam.Shake(_intensity / 67f, _duration, false); } }
protected void DoShake (MainCamera mainCam, float _intensity, float _duration) { if (mainCam.attachedCamera is GameCamera) { mainCam.Shake (_intensity / 67f, _duration, cameraShakeEffect, intensityCurve); } else if (mainCam.attachedCamera is GameCamera25D) { mainCam.Shake (_intensity / 67f, _duration, cameraShakeEffect, intensityCurve); GameCamera25D gameCamera = (GameCamera25D) mainCam.attachedCamera; if (gameCamera.backgroundImage) { gameCamera.backgroundImage.Shake (_intensity / 0.67f, _duration, intensityCurve); } } else if (mainCam.attachedCamera is GameCamera2D) { mainCam.Shake (_intensity / 33f, _duration, cameraShakeEffect, intensityCurve); } else { mainCam.Shake (_intensity / 67f, _duration, cameraShakeEffect, intensityCurve); } }
public override void OnInspectorGUI () { GameCamera25D _target = (GameCamera25D) target; EditorGUILayout.BeginVertical ("Button"); EditorGUILayout.LabelField ("Background image", EditorStyles.boldLabel); EditorGUILayout.BeginHorizontal (); _target.backgroundImage = (BackgroundImage) EditorGUILayout.ObjectField ("Prefab:", _target.backgroundImage, typeof (BackgroundImage), true); if (_target.backgroundImage) { if (GUILayout.Button ("Set as active", GUILayout.MaxWidth (90f))) { Undo.RecordObject (_target, "Set active background"); _target.SetActiveBackground (); SnapCameraInEditor (_target); } } else { if (GUILayout.Button ("Create", GUILayout.MaxWidth (90f))) { Undo.RecordObject (_target, "Create Background Image"); BackgroundImage newBackgroundImage = SceneManager.AddPrefab ("SetGeometry", "BackgroundImage", true, false, true).GetComponent <BackgroundImage>(); string cameraName = _target.gameObject.name; newBackgroundImage.gameObject.name = AdvGame.UniqueName (cameraName + ": Background"); _target.backgroundImage = newBackgroundImage; } } EditorGUILayout.EndHorizontal (); if (!_target.GetComponent <Camera>().orthographic) { EditorGUILayout.Space (); EditorGUILayout.LabelField ("Perspective offset", EditorStyles.boldLabel); _target.perspectiveOffset.x = EditorGUILayout.Slider ("Horizontal:", _target.perspectiveOffset.x, -0.05f, 0.05f); _target.perspectiveOffset.y = EditorGUILayout.Slider ("Vertical:", _target.perspectiveOffset.y, -0.05f, 0.05f); } EditorGUILayout.EndVertical (); if (_target.isActiveEditor) { UpdateCameraSnap (_target); } UnityVersionHandler.CustomSetDirty (_target); }
public override void OnInspectorGUI() { GameCamera25D _target = (GameCamera25D)target; CustomGUILayout.BeginVertical(); EditorGUILayout.LabelField("Background image", EditorStyles.boldLabel); EditorGUILayout.BeginHorizontal(); _target.backgroundImage = (BackgroundImage)CustomGUILayout.ObjectField <BackgroundImage> ("Background:", _target.backgroundImage, true, "", "The BackgroundImage to display underneath all scene objects"); if (_target.backgroundImage) { if (!Application.isPlaying && GUILayout.Button("Set as active", GUILayout.MaxWidth(90f))) { Undo.RecordObject(_target, "Set active background"); _target.SetActiveBackground(); } } else { if (GUILayout.Button("Create", GUILayout.MaxWidth(90f))) { Undo.RecordObject(_target, "Create Background Image"); BackgroundImage newBackgroundImage = SceneManager.AddPrefab("SetGeometry", "BackgroundImage", true, false, true).GetComponent <BackgroundImage>(); string cameraName = _target.gameObject.name; newBackgroundImage.gameObject.name = AdvGame.UniqueName(cameraName + ": Background"); _target.backgroundImage = newBackgroundImage; } } EditorGUILayout.EndHorizontal(); if (MainCamera.AllowProjectionShifting(_target.GetComponent <Camera>())) { EditorGUILayout.Space(); EditorGUILayout.LabelField("Perspective offset", EditorStyles.boldLabel); _target.perspectiveOffset.x = CustomGUILayout.Slider("Horizontal:", _target.perspectiveOffset.x, -0.05f, 0.05f, "", "The horizontal offset in perspective from the camera's centre"); _target.perspectiveOffset.y = CustomGUILayout.Slider("Vertical:", _target.perspectiveOffset.y, -0.05f, 0.05f, "", "The vertical offset in perspective from the camera's centre"); } CustomGUILayout.EndVertical(); if (_target.isActiveEditor) { _target.UpdateCameraSnap(); } UnityVersionHandler.CustomSetDirty(_target); }
private void UpdateCameraSnap(GameCamera25D _target) { if (KickStarter.mainCamera) { KickStarter.mainCamera.transform.position = _target.transform.position; KickStarter.mainCamera.transform.rotation = _target.transform.rotation; Camera.main.orthographic = _target.GetComponent <Camera>().orthographic; Camera.main.fieldOfView = _target.GetComponent <Camera>().fieldOfView; Camera.main.farClipPlane = _target.GetComponent <Camera>().farClipPlane; Camera.main.nearClipPlane = _target.GetComponent <Camera>().nearClipPlane; Camera.main.orthographicSize = _target.GetComponent <Camera>().orthographicSize; } }
override public float Run() { MainCamera mainCam = KickStarter.mainCamera; if (mainCam) { if (!isRunning) { isRunning = true; if (mainCam.attachedCamera is GameCamera) { mainCam.Shake((float)shakeIntensity / 67f, duration, true); } else if (mainCam.attachedCamera is GameCamera25D) { mainCam.Shake((float)shakeIntensity / 67f, duration, true); GameCamera25D gameCamera = (GameCamera25D)mainCam.attachedCamera; if (gameCamera.backgroundImage) { gameCamera.backgroundImage.Shake(shakeIntensity / 0.67f, duration); } } else if (mainCam.attachedCamera is GameCamera2D) { mainCam.Shake((float)shakeIntensity / 33f, duration, false); } else { mainCam.Shake((float)shakeIntensity / 67f, duration, false); } if (willWait) { return(duration); } } else { isRunning = false; return(0f); } } return(0f); }
public override void OnInspectorGUI() { GameCamera25D _target = (GameCamera25D)target; EditorGUILayout.BeginVertical("Button"); EditorGUILayout.LabelField("Background image", EditorStyles.boldLabel); EditorGUILayout.BeginHorizontal(); _target.backgroundImage = (BackgroundImage)EditorGUILayout.ObjectField("Prefab:", _target.backgroundImage, typeof(BackgroundImage), true); if (_target.backgroundImage) { if (GUILayout.Button("Set as active", GUILayout.MaxWidth(90f))) { Undo.RecordObject(_target, "Set active background"); _target.SetActiveBackground(); SnapCameraInEditor(_target); } } else { if (GUILayout.Button("Create", GUILayout.MaxWidth(90f))) { Undo.RecordObject(_target, "Create Background Image"); BackgroundImage newBackgroundImage = SceneManager.AddPrefab("SetGeometry", "BackgroundImage", true, false, true).GetComponent <BackgroundImage>(); string cameraName = _target.gameObject.name; newBackgroundImage.gameObject.name = AdvGame.UniqueName(cameraName + ": Background"); _target.backgroundImage = newBackgroundImage; } } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); if (_target.isActiveEditor) { UpdateCameraSnap(_target); } if (GUI.changed) { EditorUtility.SetDirty(_target); } }
private void SnapCameraInEditor (GameCamera25D _target) { GameCamera25D[] camera25Ds = FindObjectsOfType (typeof (GameCamera25D)) as GameCamera25D[]; foreach (GameCamera25D camera25D in camera25Ds) { if (camera25D == _target) { _target.isActiveEditor = true; } else { camera25D.isActiveEditor = false; } } UpdateCameraSnap (_target); }
private void SnapCameraInEditor(GameCamera25D _target) { GameCamera25D[] camera25Ds = FindObjectsOfType (typeof (GameCamera25D)) as GameCamera25D[]; foreach (GameCamera25D camera25D in camera25Ds) { if (camera25D == _target) { _target.isActiveEditor = true; } else { camera25D.isActiveEditor = false; } } UpdateCameraSnap (_target); }
private void UpdateCameraSnap (GameCamera25D _target) { if (KickStarter.mainCamera) { KickStarter.mainCamera.transform.position = _target.transform.position; KickStarter.mainCamera.transform.rotation = _target.transform.rotation; Camera.main.orthographic = _target.GetComponent <Camera>().orthographic; Camera.main.fieldOfView = _target.GetComponent <Camera>().fieldOfView; Camera.main.farClipPlane = _target.GetComponent <Camera>().farClipPlane; Camera.main.nearClipPlane = _target.GetComponent <Camera>().nearClipPlane; Camera.main.orthographicSize = _target.GetComponent <Camera>().orthographicSize; if (!Camera.main.orthographic) { Camera.main.projectionMatrix = AdvGame.SetVanishingPoint (Camera.main, _target.perspectiveOffset); } } }
public void SetGameCamera(_Camera newCamera) { if (newCamera == null) { return; } if (attachedCamera != null && attachedCamera is GameCamera25D) { if (newCamera is GameCamera25D) { } else { RemoveBackground(); } } if (_camera == null && GetComponent <Camera>()) { _camera = GetComponent <Camera>(); } _camera.ResetProjectionMatrix(); attachedCamera = newCamera; attachedCamera.SetCameraComponent(); if (attachedCamera && attachedCamera._camera) { _camera.farClipPlane = attachedCamera._camera.farClipPlane; _camera.nearClipPlane = attachedCamera._camera.nearClipPlane; _camera.orthographic = attachedCamera._camera.orthographic; } // Set LookAt if (attachedCamera is GameCamera) { GameCamera gameCam = (GameCamera)attachedCamera; cursorAffectsRotation = gameCam.followCursor; lookAtAmount = gameCam.cursorInfluence; } else if (attachedCamera is GameCameraAnimated) { GameCameraAnimated gameCam = (GameCameraAnimated)attachedCamera; if (gameCam.animatedCameraType == AnimatedCameraType.SyncWithTargetMovement) { cursorAffectsRotation = gameCam.followCursor; lookAtAmount = gameCam.cursorInfluence; } else { cursorAffectsRotation = false; } } else { cursorAffectsRotation = false; } // Set background if (attachedCamera is GameCamera25D) { GameCamera25D cam25D = (GameCamera25D)attachedCamera; cam25D.SetActiveBackground(); } // TransparencySortMode if (attachedCamera is GameCamera2D) { _camera.transparencySortMode = TransparencySortMode.Orthographic; } else if (attachedCamera) { if (attachedCamera._camera.orthographic) { _camera.transparencySortMode = TransparencySortMode.Orthographic; } else { _camera.transparencySortMode = TransparencySortMode.Perspective; } } // UFPS if (KickStarter.settingsManager.movementMethod == MovementMethod.UltimateFPS) { UltimateFPSIntegration._Update(KickStarter.stateHandler.gameState); } }
public void ShowGUI() { GUILayout.Label("Basic structure", EditorStyles.boldLabel); if (GUILayout.Button("Organise room objects")) { InitialiseObjects(); } if (AdvGame.GetReferences().settingsManager == null) { EditorGUILayout.HelpBox("No Settings Manager defined - cannot display full Editor without it!", MessageType.Warning); return; } if (KickStarter.sceneSettings == null) { return; } SettingsManager settingsManager = AdvGame.GetReferences().settingsManager; EditorGUILayout.BeginHorizontal(); newFolderName = EditorGUILayout.TextField(newFolderName); if (GUILayout.Button("Create new folder", buttonWidth)) { if (newFolderName != "") { GameObject newFolder = new GameObject(); if (!newFolderName.StartsWith("_")) { newFolder.name = "_" + newFolderName; } else { newFolder.name = newFolderName; } Undo.RegisterCreatedObjectUndo(newFolder, "Create folder " + newFolder.name); if (Selection.activeGameObject) { newFolder.transform.parent = Selection.activeGameObject.transform; } Selection.activeObject = newFolder; } } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); GUILayout.Label("Scene settings", EditorStyles.boldLabel); KickStarter.sceneSettings.navigationMethod = (AC_NavigationMethod)EditorGUILayout.EnumPopup("Pathfinding method:", KickStarter.sceneSettings.navigationMethod); KickStarter.navigationManager.ResetEngine(); if (KickStarter.navigationManager.navigationEngine != null) { KickStarter.navigationManager.navigationEngine.SceneSettingsGUI(); } if (settingsManager.IsUnity2D() && KickStarter.sceneSettings.navigationMethod != AC_NavigationMethod.PolygonCollider) { EditorGUILayout.HelpBox("This pathfinding method is not compatible with 'Unity 2D'.", MessageType.Warning); } EditorGUILayout.BeginHorizontal(); KickStarter.sceneSettings.defaultPlayerStart = (PlayerStart)EditorGUILayout.ObjectField("Default PlayerStart:", KickStarter.sceneSettings.defaultPlayerStart, typeof(PlayerStart), true); if (KickStarter.sceneSettings.defaultPlayerStart == null) { if (GUILayout.Button("Create", GUILayout.MaxWidth(60f))) { PlayerStart newPlayerStart = AddPrefab("Navigation", "PlayerStart", true, false, true).GetComponent <PlayerStart>(); newPlayerStart.gameObject.name = "Default PlayerStart"; KickStarter.sceneSettings.defaultPlayerStart = newPlayerStart; } } EditorGUILayout.EndHorizontal(); if (KickStarter.sceneSettings.defaultPlayerStart) { EditorGUILayout.BeginHorizontal(); KickStarter.sceneSettings.defaultPlayerStart.cameraOnStart = (_Camera)EditorGUILayout.ObjectField("Default Camera:", KickStarter.sceneSettings.defaultPlayerStart.cameraOnStart, typeof(_Camera), true); if (KickStarter.sceneSettings.defaultPlayerStart.cameraOnStart == null) { if (GUILayout.Button("Create", GUILayout.MaxWidth(60f))) { if (settingsManager == null || settingsManager.cameraPerspective == CameraPerspective.ThreeD) { GameCamera newCamera = AddPrefab("Camera", "GameCamera", true, false, true).GetComponent <GameCamera>(); newCamera.gameObject.name = "NavCam 1"; KickStarter.sceneSettings.defaultPlayerStart.cameraOnStart = newCamera; } else if (settingsManager.cameraPerspective == CameraPerspective.TwoD) { GameCamera2D newCamera = AddPrefab("Camera", "GameCamera2D", true, false, true).GetComponent <GameCamera2D>(); newCamera.gameObject.name = "NavCam 1"; KickStarter.sceneSettings.defaultPlayerStart.cameraOnStart = newCamera; } else if (settingsManager.cameraPerspective == CameraPerspective.TwoPointFiveD) { GameCamera25D newCamera = AddPrefab("Camera", "GameCamera2.5D", true, false, true).GetComponent <GameCamera25D>(); newCamera.gameObject.name = "NavCam 1"; KickStarter.sceneSettings.defaultPlayerStart.cameraOnStart = newCamera; } } } EditorGUILayout.EndHorizontal(); } EditorGUILayout.BeginHorizontal(); KickStarter.sceneSettings.sortingMap = (SortingMap)EditorGUILayout.ObjectField("Default Sorting map:", KickStarter.sceneSettings.sortingMap, typeof(SortingMap), true); if (KickStarter.sceneSettings.sortingMap == null) { if (GUILayout.Button("Create", GUILayout.MaxWidth(60f))) { SortingMap newSortingMap = AddPrefab("Navigation", "SortingMap", true, false, true).GetComponent <SortingMap>(); newSortingMap.gameObject.name = "Default SortingMap"; KickStarter.sceneSettings.sortingMap = newSortingMap; } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); KickStarter.sceneSettings.defaultSound = (Sound)EditorGUILayout.ObjectField("Default Sound prefab:", KickStarter.sceneSettings.defaultSound, typeof(Sound), true); if (KickStarter.sceneSettings.defaultSound == null) { if (GUILayout.Button("Create", GUILayout.MaxWidth(60f))) { Sound newSound = AddPrefab("Logic", "Sound", true, false, true).GetComponent <Sound>(); newSound.gameObject.name = "Default Sound"; KickStarter.sceneSettings.defaultSound = newSound; newSound.playWhilePaused = true; } } EditorGUILayout.EndHorizontal(); GUILayout.Label("Scene cutscenes", EditorStyles.boldLabel); EditorGUILayout.BeginHorizontal(); KickStarter.sceneSettings.cutsceneOnStart = (Cutscene)EditorGUILayout.ObjectField("On start:", KickStarter.sceneSettings.cutsceneOnStart, typeof(Cutscene), true); if (KickStarter.sceneSettings.cutsceneOnStart == null) { if (GUILayout.Button("Create", GUILayout.MaxWidth(60f))) { Cutscene newCutscene = AddPrefab("Logic", "Cutscene", true, false, true).GetComponent <Cutscene>(); newCutscene.gameObject.name = "OnStart"; KickStarter.sceneSettings.cutsceneOnStart = newCutscene; } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); KickStarter.sceneSettings.cutsceneOnLoad = (Cutscene)EditorGUILayout.ObjectField("On load:", KickStarter.sceneSettings.cutsceneOnLoad, typeof(Cutscene), true); if (KickStarter.sceneSettings.cutsceneOnLoad == null) { if (GUILayout.Button("Create", GUILayout.MaxWidth(60f))) { Cutscene newCutscene = AddPrefab("Logic", "Cutscene", true, false, true).GetComponent <Cutscene>(); newCutscene.gameObject.name = "OnLoad"; KickStarter.sceneSettings.cutsceneOnLoad = newCutscene; } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); KickStarter.sceneSettings.cutsceneOnVarChange = (Cutscene)EditorGUILayout.ObjectField("On variable change:", KickStarter.sceneSettings.cutsceneOnVarChange, typeof(Cutscene), true); if (KickStarter.sceneSettings.cutsceneOnVarChange == null) { if (GUILayout.Button("Create", GUILayout.MaxWidth(60f))) { Cutscene newCutscene = AddPrefab("Logic", "Cutscene", true, false, true).GetComponent <Cutscene>(); newCutscene.gameObject.name = "OnVarChange"; KickStarter.sceneSettings.cutsceneOnVarChange = newCutscene; } } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); GUILayout.Label("Visibility", EditorStyles.boldLabel); GUILayout.BeginHorizontal(); GUILayout.Label("Triggers", buttonWidth); if (GUILayout.Button("On", EditorStyles.miniButtonLeft)) { SetTriggerVisibility(true); } if (GUILayout.Button("Off", EditorStyles.miniButtonRight)) { SetTriggerVisibility(false); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Collision", buttonWidth); if (GUILayout.Button("On", EditorStyles.miniButtonLeft)) { SetCollisionVisiblity(true); } if (GUILayout.Button("Off", EditorStyles.miniButtonRight)) { SetCollisionVisiblity(false); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Hotspots", buttonWidth); if (GUILayout.Button("On", EditorStyles.miniButtonLeft)) { SetHotspotVisibility(true); } if (GUILayout.Button("Off", EditorStyles.miniButtonRight)) { SetHotspotVisibility(false); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("NavMesh", buttonWidth); if (GUILayout.Button("On", EditorStyles.miniButtonLeft)) { KickStarter.navigationManager.navigationEngine.SetVisibility(true); } if (GUILayout.Button("Off", EditorStyles.miniButtonRight)) { KickStarter.navigationManager.navigationEngine.SetVisibility(false); } GUILayout.EndHorizontal(); ListPrefabs(); if (GUI.changed) { EditorUtility.SetDirty(KickStarter.sceneSettings); EditorUtility.SetDirty(KickStarter.playerMovement); if (KickStarter.sceneSettings.defaultPlayerStart) { EditorUtility.SetDirty(KickStarter.sceneSettings.defaultPlayerStart); } } }