CinemachineBasicMultiChannelPerlinEditor.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using UnityEngine;
  2. using UnityEditor;
  3. namespace Cinemachine.Editor
  4. {
  5. [CustomEditor(typeof(CinemachineBasicMultiChannelPerlin))]
  6. [CanEditMultipleObjects]
  7. internal sealed class CinemachineBasicMultiChannelPerlinEditor
  8. : BaseEditor<CinemachineBasicMultiChannelPerlin>
  9. {
  10. private void OnEnable()
  11. {
  12. NoiseSettingsPropertyDrawer.InvalidateProfileList();
  13. }
  14. public override void OnInspectorGUI()
  15. {
  16. BeginInspector();
  17. bool needWarning = false;
  18. for (int i = 0; !needWarning && i < targets.Length; ++i)
  19. needWarning = (targets[i] as CinemachineBasicMultiChannelPerlin).m_NoiseProfile == null;
  20. if (needWarning)
  21. EditorGUILayout.HelpBox(
  22. "A Noise Profile is required. You may choose from among the NoiseSettings assets defined in the project.",
  23. MessageType.Warning);
  24. DrawRemainingPropertiesInInspector();
  25. Rect rect = EditorGUILayout.GetControlRect(true);
  26. rect.width -= EditorGUIUtility.labelWidth; rect.x += EditorGUIUtility.labelWidth;
  27. if (GUI.Button(rect, "New random seed"))
  28. {
  29. for (int i = 0; i < targets.Length; ++i)
  30. (targets[i] as CinemachineBasicMultiChannelPerlin).ReSeed();
  31. }
  32. }
  33. }
  34. }