CameraFOVAdapterEditor.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #if UNITY_EDITOR
  2. using UnityEditor;
  3. using UnityEngine;
  4. namespace AdaptUI
  5. {
  6. [CustomEditor(typeof(CameraFOVAdapter))]
  7. public class CameraFOVAdapterEditor : Editor
  8. {
  9. public override void OnInspectorGUI()
  10. {
  11. CameraFOVAdapter adapter = (CameraFOVAdapter)target;
  12. Camera cam = adapter.GetComponent<Camera>();
  13. EditorGUILayout.Space();
  14. EditorGUILayout.LabelField("相机 FOV 适配", EditorStyles.boldLabel);
  15. // 默认值只显示,不允许修改
  16. EditorGUILayout.LabelField("默认 FOV(挂载时记录)", adapter.defaultFOV.ToString("F2"));
  17. EditorGUILayout.Space();
  18. adapter.iPhoneFOV = EditorGUILayout.FloatField("iPhone FOV", adapter.iPhoneFOV);
  19. adapter.iPadFOV = EditorGUILayout.FloatField("iPad FOV", adapter.iPadFOV);
  20. EditorGUILayout.Space();
  21. EditorGUILayout.LabelField("操作", EditorStyles.boldLabel);
  22. if (GUILayout.Button("根据当前设备自动应用 FOV"))
  23. {
  24. adapter.ApplyDeviceFOV();
  25. EditorUtility.SetDirty(adapter);
  26. }
  27. if (GUILayout.Button("应用 iPhone 配置到相机"))
  28. {
  29. cam.fieldOfView = adapter.iPhoneFOV;
  30. }
  31. if (GUILayout.Button("记录当前 FOV 为 iPhone 配置"))
  32. {
  33. adapter.SetFOVForDevice(DeviceTypeHelper.DeviceType.iPhone, cam.fieldOfView);
  34. EditorUtility.SetDirty(adapter);
  35. }
  36. if (GUILayout.Button("应用 iPad 配置到相机"))
  37. {
  38. cam.fieldOfView = adapter.iPadFOV;
  39. }
  40. if (GUILayout.Button("记录当前 FOV 为 iPad 配置"))
  41. {
  42. adapter.SetFOVForDevice(DeviceTypeHelper.DeviceType.iPad, cam.fieldOfView);
  43. EditorUtility.SetDirty(adapter);
  44. }
  45. if (GUILayout.Button("重置为默认 FOV"))
  46. {
  47. cam.fieldOfView = adapter.defaultFOV;
  48. }
  49. }
  50. }
  51. }
  52. #endif