Beispiel #1
0
    public override void OnInspectorGUI()
    {
        CompositeCamera compositeCamera;

        compositeCamera = target as CompositeCamera;

        if (compositeCamera == null)
        {
            return;
        }

        camerasFoldout = EditorGUILayout.Foldout(camerasFoldout, "Cameras");
        if (camerasFoldout)
        {
            if (compositeCamera.cameras == null)
            {
                compositeCamera.cameras = new AbstractCamera[0];
            }
            EditorGUILayout.BeginHorizontal();
            string sp      = "    ";
            int    newSize = EditorGUILayout.IntField(sp + "Size", compositeCamera.cameras.Length);
            EditorGUILayout.EndHorizontal();


            if (newSize != compositeCamera.cameras.Length)
            {
                AbstractCamera[] newArray = new AbstractCamera[newSize];
                Array.Copy(compositeCamera.cameras, newArray, Math.Min(newSize, compositeCamera.cameras.Length));
                compositeCamera.cameras = newArray;
            }
            for (int i = 0; i < compositeCamera.cameras.Length; i++)
            {
                EditorGUILayout.BeginHorizontal();
                compositeCamera.cameras[i] = (AbstractCamera)EditorGUILayout.ObjectField(sp + "Element " + i, compositeCamera.cameras[i], typeof(AbstractCamera));
                EditorGUILayout.EndHorizontal();
            }
        }
        EditorGUILayout.Separator();
        EditorGUILayout.BeginHorizontal();
        compositeCamera.currentCamera = EditorGUILayout.IntSlider("Current camera", Math.Min(compositeCamera.currentCamera, compositeCamera.cameras.Length - 1), 0, compositeCamera.cameras.Length - 1);
        EditorGUILayout.EndHorizontal();
        EditorGUILayout.BeginHorizontal();
        compositeCamera.curve = EditorGUILayout.CurveField("Interpolation", compositeCamera.curve);
        EditorGUILayout.EndHorizontal();

        lookAtDamping = EditorGUILayout.Foldout(lookAtDamping, "LookAt");
        if (lookAtDamping)
        {
            ChaseCameraGUI.EditorGUISmoothLookAt(compositeCamera);
        }
    }
Beispiel #2
0
    public override void OnInspectorGUI()
    {
        ChaseCamera chaseCamera;

        chaseCamera = target as ChaseCamera;

        if (chaseCamera == null)
        {
            return;
        }
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.PrefixLabel("Target");
        chaseCamera.target = (Transform)EditorGUILayout.ObjectField(chaseCamera.target, typeof(Transform));
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        chaseCamera.targetHeight = EditorGUILayout.FloatField("Target height", chaseCamera.targetHeight);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        chaseCamera.targetMinimumRenderingDistance = EditorGUILayout.FloatField("Min. distance", chaseCamera.targetMinimumRenderingDistance);
        EditorGUILayout.EndHorizontal();


        EditorGUILayout.BeginHorizontal();
        chaseCamera.cameraType = (ChaseCamera.ChaseCameraType)EditorGUILayout.EnumPopup("Camera type", chaseCamera.cameraType);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.PrefixLabel("Distance");
        chaseCamera.distance = EditorGUILayout.FloatField(chaseCamera.distance);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();

        EditorGUILayout.PrefixLabel("Camera pitch");
        chaseCamera.cameraPitch = EditorGUILayout.Slider(chaseCamera.cameraPitch * Mathf.Rad2Deg, 0, 90) * Mathf.Deg2Rad;
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();
        string cameraHeight = "" + chaseCamera.GetCameraHeight();

        EditorGUILayout.LabelField("Camera height", cameraHeight);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.Separator();
        EditorGUILayout.BeginHorizontal();
        chaseCamera.virtualCameraCollisionTest =
            EditorGUILayout.Toggle("Collision Test", chaseCamera.virtualCameraCollisionTest);
        EditorGUILayout.EndHorizontal();
        if (chaseCamera.virtualCameraCollisionTest)
        {
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.PrefixLabel("CollisionRadius");
            chaseCamera.virtualCameraCollisionRadius = EditorGUILayout.FloatField(chaseCamera.virtualCameraCollisionRadius);
            EditorGUILayout.EndHorizontal();

            moveBackSpringFoldout = EditorGUILayout.Foldout(moveBackSpringFoldout, "Moveback spring");
            if (moveBackSpringFoldout)
            {
                EditorGUISpringDampingStat(ref chaseCamera.vccMoveBackSpringStiffness,
                                           ref chaseCamera.vccMoveBackSpringDamping);
                EditorGUILayout.Separator();
            }
        }

        springFoldout = EditorGUILayout.Foldout(springFoldout, "Movement spring damping");
        if (springFoldout)
        {
            EditorGUILayout.BeginHorizontal();
            chaseCamera.movementSpringDampingEnabled =
                EditorGUILayout.Toggle("Enabled", chaseCamera.movementSpringDampingEnabled);
            EditorGUILayout.EndHorizontal();


            if (chaseCamera.movementSpringDampingEnabled)
            {
                EditorGUISpringDampingStat(ref chaseCamera.movementSpringStiffness,
                                           ref chaseCamera.movementSpringDamping);
            }
        }
        if (chaseCamera.cameraType == ChaseCamera.ChaseCameraType.StayBehind)
        {
            lookVertical = EditorGUILayout.Foldout(lookVertical, "User look horizontal damping");
            if (lookVertical)
            {
                EditorGUILayout.BeginHorizontal();
                chaseCamera.lookHorizontalSpringDamped =
                    EditorGUILayout.Toggle("Enabled", chaseCamera.lookHorizontalSpringDamped);
                EditorGUILayout.EndHorizontal();

                if (chaseCamera.movementSpringDampingEnabled)
                {
                    EditorGUISpringDampingStat(ref chaseCamera.lookHorizontalSpringStiffness,
                                               ref chaseCamera.lookHorizontalSpringDamping);
                }
            }

            lookHorizontal = EditorGUILayout.Foldout(lookHorizontal, "User look vertical damping");
            if (lookHorizontal)
            {
                EditorGUILayout.BeginHorizontal();
                chaseCamera.lookVerticalSpringDamped =
                    EditorGUILayout.Toggle("Enabled", chaseCamera.lookVerticalSpringDamped);
                EditorGUILayout.EndHorizontal();

                if (chaseCamera.lookVerticalSpringDamped)
                {
                    EditorGUISpringDampingStat(ref chaseCamera.lookHorizontalSpringStiffness,
                                               ref chaseCamera.lookHorizontalSpringDamping);
                }
            }
        }

        lookAtDamping = EditorGUILayout.Foldout(lookAtDamping, "LookAt");
        if (lookAtDamping)
        {
            ChaseCameraGUI.EditorGUISmoothLookAt(chaseCamera);
        }
        debug = EditorGUILayout.Foldout(debug, "Debug");
        if (debug)
        {
            this.DrawDefaultInspector();
        }
    }