using UnityEngine; #if UNITY_EDITOR using UnityEditor; #endif using System; namespace RTG { [Serializable] public class CameraLimit : Settings { [SerializeField] private float minX; [SerializeField] private float maxX; [SerializeField] private float minY; [SerializeField] private float maxY; [SerializeField] private float minZ; [SerializeField] private float maxZ; public float LimitMinX { get { return minX; } set { minX = Mathf.Max(value, -1000f); } } public float LimitMaxX { get { return maxX; } set { maxX = Mathf.Max(value, 1e-2f); } } public float LimitMinY { get { return minY; } set { minY = Mathf.Max(value, -1000f); } } public float LimitMaxY { get { return maxY; } set { maxY = Mathf.Max(value, 1e-2f); } } public float LimitMinZ { get { return minZ; } set { minZ = Mathf.Max(value, -1000f); } } public float LimitMaxZ { get { return maxZ; } set { maxZ = Mathf.Max(value, 1e-2f); } } #if UNITY_EDITOR protected override void RenderContent(UnityEngine.Object undoRecordObject) { EditorGUILayout.BeginVertical(); GUIContent content = new GUIContent(); content.text = "Camera PosX Min Limit"; content.tooltip = "???"; var newMinX = EditorGUILayout.FloatField(content, minX); if (newMinX != LimitMinX) { EditorUndoEx.Record(undoRecordObject); LimitMinX = newMinX; } content.text = "Camera PosX Max Limit"; content.tooltip = "???"; var newMaxX = EditorGUILayout.FloatField(content, maxX); if(newMaxX != LimitMaxX) { EditorUndoEx.Record(undoRecordObject); LimitMaxX = newMaxX; } content.text = "Camera PosY Min Limit"; content.tooltip = "???"; var newMinY = EditorGUILayout.FloatField(content, minY); if (newMinY != LimitMinY) { EditorUndoEx.Record(undoRecordObject); LimitMinY = newMinY; } content.text = "Camera PosY Max Limit"; content.tooltip = "???"; var newMaxY = EditorGUILayout.FloatField(content, maxY); if (newMaxY != LimitMaxY) { EditorUndoEx.Record(undoRecordObject); LimitMaxY = newMaxY; } content.text = "Camera PosZ Min Limit"; content.tooltip = "???"; var newMinZ = EditorGUILayout.FloatField(content, minZ); if (newMinZ != LimitMinZ) { EditorUndoEx.Record(undoRecordObject); LimitMinZ = newMinZ; } content.text = "Camera Pos Z Max Limit"; content.tooltip = "???"; var newMaxZ = EditorGUILayout.FloatField(content, maxZ); if (newMaxZ != LimitMaxZ) { EditorUndoEx.Record(undoRecordObject); LimitMaxZ = newMaxZ; } EditorGUILayout.EndVertical(); } #endif } }