private void DisplayInputList(GameCameraThirdPerson _target) { string result = ""; if (_target.allowMouseWheelZooming) { result += "\n"; result += "- Mouse ScrollWheel"; } if (!_target.isDragControlled) { if (_target.spinLock == GameCameraThirdPerson.RotationLock.Free) { result += "\n"; result += "- " + _target.spinAxis; } if (_target.pitchLock == GameCameraThirdPerson.RotationLock.Free) { result += "\n"; result += "- " + _target.pitchAxis; } } if (_target.toggleCursor) { result += "\n"; result += "- ToggleCursor"; } if (result != "") { EditorGUILayout.Space(); EditorGUILayout.LabelField("Required inputs:", EditorStyles.boldLabel); EditorGUILayout.HelpBox("The following input axes are available for the chosen settings:" + result, MessageType.Info); } }
public override void OnInspectorGUI() { GameCameraThirdPerson _target = (GameCameraThirdPerson)target; // Target EditorGUILayout.BeginVertical("Button"); EditorGUILayout.LabelField("Target", EditorStyles.boldLabel); _target.targetIsPlayer = EditorGUILayout.Toggle("Is player?", _target.targetIsPlayer); if (!_target.targetIsPlayer) { _target.target = (Transform)EditorGUILayout.ObjectField("Target transform:", _target.target, typeof(Transform), true); } _target.verticalOffset = EditorGUILayout.FloatField("Vertical offset:", _target.verticalOffset); _target.horizontalOffset = EditorGUILayout.FloatField("Horizontal offset:", _target.horizontalOffset); EditorGUILayout.EndVertical(); // Distance EditorGUILayout.BeginVertical("Button"); EditorGUILayout.LabelField("Distance", EditorStyles.boldLabel); _target.distance = EditorGUILayout.FloatField("Distance from target:", _target.distance); _target.allowMouseWheelZooming = EditorGUILayout.Toggle("Mousewheel zooming?", _target.allowMouseWheelZooming); _target.detectCollisions = EditorGUILayout.Toggle("Detect wall collisions?", _target.detectCollisions); if (_target.allowMouseWheelZooming || _target.detectCollisions) { _target.minDistance = EditorGUILayout.FloatField("Mininum distance:", _target.minDistance); } if (_target.allowMouseWheelZooming) { _target.maxDistance = EditorGUILayout.FloatField("Maximum distance:", _target.maxDistance); } EditorGUILayout.EndVertical(); // Spin EditorGUILayout.BeginVertical("Button"); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Spin rotation", EditorStyles.boldLabel, GUILayout.Width(130f)); _target.spinLock = (GameCameraThirdPerson.RotationLock)EditorGUILayout.EnumPopup(_target.spinLock); EditorGUILayout.EndHorizontal(); if (_target.spinLock != GameCameraThirdPerson.RotationLock.Locked) { _target.spinSpeed = EditorGUILayout.FloatField("Speed:", _target.spinSpeed); _target.spinAccleration = EditorGUILayout.FloatField("Acceleration:", _target.spinAccleration); _target.spinDeceleration = EditorGUILayout.FloatField("Deceleration:", _target.spinDeceleration); _target.isDragControlled = EditorGUILayout.Toggle("Drag-controlled?", _target.isDragControlled); if (!_target.isDragControlled) { _target.spinAxis = EditorGUILayout.TextField("Input axis:", _target.spinAxis); } _target.invertSpin = EditorGUILayout.Toggle("Invert?", _target.invertSpin); _target.toggleCursor = EditorGUILayout.Toggle("Cursor must be locked?", _target.toggleCursor); _target.resetSpinWhenSwitch = EditorGUILayout.Toggle("Reset angle on switch?", _target.resetSpinWhenSwitch); if (_target.spinLock == GameCameraThirdPerson.RotationLock.Limited) { _target.maxSpin = EditorGUILayout.FloatField("Maximum angle:", _target.maxSpin); } } else { _target.alwaysBehind = EditorGUILayout.Toggle("Always behind target?", _target.alwaysBehind); if (_target.alwaysBehind) { _target.spinAccleration = EditorGUILayout.FloatField("Acceleration:", _target.spinAccleration); _target.spinOffset = EditorGUILayout.FloatField("Offset angle:", _target.spinOffset); } } EditorGUILayout.EndVertical(); // Pitch EditorGUILayout.BeginVertical("Button"); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Pitch rotation", EditorStyles.boldLabel, GUILayout.Width(130f)); _target.pitchLock = (GameCameraThirdPerson.RotationLock)EditorGUILayout.EnumPopup(_target.pitchLock); EditorGUILayout.EndHorizontal(); if (_target.pitchLock != GameCameraThirdPerson.RotationLock.Locked) { _target.pitchSpeed = EditorGUILayout.FloatField("Speed:", _target.pitchSpeed); _target.pitchAccleration = EditorGUILayout.FloatField("Acceleration:", _target.pitchAccleration); _target.pitchDeceleration = EditorGUILayout.FloatField("Deceleration:", _target.pitchDeceleration); _target.isDragControlled = EditorGUILayout.Toggle("Drag-controlled?", _target.isDragControlled); if (!_target.isDragControlled) { _target.pitchAxis = EditorGUILayout.TextField("Input axis:", _target.pitchAxis); } _target.invertPitch = EditorGUILayout.Toggle("Invert?", _target.invertPitch); _target.resetPitchWhenSwitch = EditorGUILayout.Toggle("Reset angle on switch?", _target.resetPitchWhenSwitch); if (_target.pitchLock == GameCameraThirdPerson.RotationLock.Limited) { _target.maxPitch = EditorGUILayout.FloatField("Maximum angle:", _target.maxPitch); } } else { _target.maxPitch = EditorGUILayout.FloatField("Fixed angle:", _target.maxPitch); } EditorGUILayout.EndVertical(); DisplayInputList(_target); if (GUI.changed) { EditorUtility.SetDirty(_target); } }