97 lines
3.2 KiB
C#
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
|
|
}
|
|
|
|
}
|