Files
Simulation/Assets/Scripts/CameraLimit.cs

97 lines
3.2 KiB
C#

using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif
using System;
namespace RTG
{
[Serializable]
public class CameraLimit : Settings
{
[SerializeField]
private float minX = -100f;
[SerializeField]
private float maxX = 100f;
[SerializeField]
private float minY = 0f;
[SerializeField]
private float maxY = 100f;
[SerializeField]
private float minZ = -100f;
[SerializeField]
private float maxZ = 100f;
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
}
}