private void OnEnable() { _viewTarget = (CameraViewTarget)serializedObject.targetObject; _nextView = serializedObject.FindProperty("nextView"); _viewPosition = serializedObject.FindProperty("viewPosition"); _viewRotation = serializedObject.FindProperty("viewRotation"); _duration = serializedObject.FindProperty("duration"); }
/// <summary> /// Called when the camera view target changes. /// </summary> /// <param name="newCameraViewTarget">The new camera view target.</param> public void OnCameraViewChanged(CameraViewTarget newCameraViewTarget) { if (!activated) { return; } for (int i = 0; i < hudComponents.Count; ++i) { hudComponents[i].OnCameraViewChanged(newCameraViewTarget); } }
/// <summary> /// Finds the GenerationController associated with targetCamera and starts the next generation sequence. /// The GenerationController's seed is incremented by one. /// </summary> /// <param name="targetCamera"></param> /// <param name="viewTarget"></param> public virtual void GenerateAndRestartSequence(Camera targetCamera, CameraViewTarget viewTarget) { if (numReadyGenerators < 0) { numReadyGenerators = 0; } int i = Array.IndexOf(cameras, targetCamera); generationControllers[i].Seed++; generationControllers[i].cityGenerator.OnGenerationComplete.AddListener(UpdateReadyGenerators); generationControllers[i].SetupAndGenerate(); }
private void ShowIndexProperties(int index) { EditorGUILayout.BeginVertical("box"); EditorGUILayout.PropertyField(_camProperties.GetArrayElementAtIndex(index), new GUIContent("Camera")); showCamProperties = EditorGUILayout.Foldout(showCamProperties, "Camera Properties"); if (showCamProperties) { Object camObj = _camProperties.GetArrayElementAtIndex(index).objectReferenceValue; if (camObj) { CreateEditor(camObj).OnInspectorGUI(); if (GUILayout.Button("Remove Camera")) { _camController.RemoveCamera(_cameraTab); UpdateCameraTabs(); } } } EditorGUILayout.EndVertical(); EditorGUILayout.Separator(); EditorGUILayout.BeginVertical("box"); EditorGUILayout.PropertyField(_seqProperties.GetArrayElementAtIndex(index), new GUIContent("View Target")); CameraViewTarget viewObj = (CameraViewTarget)_seqProperties.GetArrayElementAtIndex(index).objectReferenceValue; if (viewObj) { showViewTargetProperties = EditorGUILayout.Foldout(showViewTargetProperties, "View Target Properties"); if (showViewTargetProperties) { int len = viewObj.GetNumRemaining(); EditorGUILayout.LabelField("View Sequence Length", (1 + len).ToString()); CameraViewTargetEditor editor = (CameraViewTargetEditor)CreateEditor(viewObj); previewIndex = EditorGUILayout.IntSlider("Sequence Preview Index", previewIndex, 0, len); if (previewIndex > 0) { editor.ShowPropertiesAt(previewIndex); } else { editor.OnInspectorGUI(); } } } else if (GUILayout.Button("Create Target From Scene View")) { _seqProperties.GetArrayElementAtIndex(index).objectReferenceValue = CameraViewTargetEditor.CreateViewTarget(); } EditorGUILayout.EndVertical(); }
public static CameraViewTarget CreateViewTarget() { int i = AssetDatabase.FindAssets("CameraViewTarget").Length; CameraViewTarget nextViewtarget = ScriptableObject.CreateInstance <CameraViewTarget>(); nextViewtarget.viewPosition = SceneView.lastActiveSceneView.pivot; nextViewtarget.viewRotation = SceneView.lastActiveSceneView.rotation.eulerAngles; AssetDatabase.CreateAsset(nextViewtarget, "Assets/CameraViewTarget_" + i + ".asset"); Debug.Log("View Target created at " + AssetDatabase.GetAssetPath(nextViewtarget)); return(nextViewtarget); }
public void ShowPropertiesAt(int sequencePosition) { if (sequencePosition > 0) { CameraViewTarget previewTarget = _viewTarget.nextView; for (int i = 1; i < sequencePosition; i++) { if (previewTarget == null) { return; } previewTarget = previewTarget.nextView; } CreateEditor(previewTarget).OnInspectorGUI(); } }
/// <summary> /// Creates a new CameraViewTarget from the editor's current scene view and /// sets it as the currently selected CameraViewTarget's next view. /// </summary> public void CreateNextViewTarget() { CameraViewTarget nextViewtarget = ScriptableObject.CreateInstance <CameraViewTarget>(); nextViewtarget.viewPosition = SceneView.lastActiveSceneView.pivot; nextViewtarget.viewRotation = SceneView.lastActiveSceneView.rotation.eulerAngles; _viewTarget.nextView = nextViewtarget; string newName = AssetDatabase.GetAssetPath(_viewTarget); int i = newName.LastIndexOf('_'); int k = newName.LastIndexOf('.'); newName = newName.Substring(0, k); if (i > 0) { int j; if (Int32.TryParse(newName.Substring(i + 1), out j)) { j++; newName = newName.Substring(0, i + 1) + j.ToString(); } else { newName += "0"; } } else { newName += "0"; } string createPath = newName + ".asset"; AssetDatabase.CreateAsset(nextViewtarget, createPath); Debug.Log("View Target created at " + AssetDatabase.GetAssetPath(nextViewtarget)); }
protected virtual void OnCameraTargetChanged(CameraViewTarget newTarget) { offset = gimballedVehicleController.GimbalController.VerticalPivot.transform.InverseTransformPoint(newTarget.transform.position); }