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); } }
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(); } }