Exemplo n.º 1
0
 private void OnEnable()
 {
     _viewTarget   = (CameraViewTarget)serializedObject.targetObject;
     _nextView     = serializedObject.FindProperty("nextView");
     _viewPosition = serializedObject.FindProperty("viewPosition");
     _viewRotation = serializedObject.FindProperty("viewRotation");
     _duration     = serializedObject.FindProperty("duration");
 }
Exemplo n.º 2
0
        /// <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();
    }
Exemplo n.º 5
0
    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);
    }
Exemplo n.º 6
0
    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();
        }
    }
Exemplo n.º 7
0
    /// <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));
    }
Exemplo n.º 8
0
 protected virtual void OnCameraTargetChanged(CameraViewTarget newTarget)
 {
     offset = gimballedVehicleController.GimbalController.VerticalPivot.transform.InverseTransformPoint(newTarget.transform.position);
 }