FbxExportPresetSelectorReceiver.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #if UNITY_2018_1_OR_NEWER
  2. using UnityEditor.Presets;
  3. namespace UnityEditor.Formats.Fbx.Exporter
  4. {
  5. internal delegate void SelectionChangedDelegate();
  6. internal delegate void DialogClosedDelegate();
  7. internal class FbxExportPresetSelectorReceiver : PresetSelectorReceiver
  8. {
  9. UnityEngine.Object m_Target;
  10. Preset m_InitialValue;
  11. public event SelectionChangedDelegate SelectionChanged;
  12. public event DialogClosedDelegate DialogClosed;
  13. public override void OnSelectionClosed(Preset selection)
  14. {
  15. OnSelectionChanged(selection);
  16. if (DialogClosed != null)
  17. {
  18. DialogClosed();
  19. }
  20. DestroyImmediate(this);
  21. }
  22. public override void OnSelectionChanged(Preset selection)
  23. {
  24. if (selection != null)
  25. {
  26. selection.ApplyTo(m_Target);
  27. }
  28. else
  29. {
  30. m_InitialValue.ApplyTo(m_Target);
  31. }
  32. if (SelectionChanged != null)
  33. {
  34. SelectionChanged();
  35. }
  36. }
  37. public void SetTarget(UnityEngine.Object target)
  38. {
  39. m_Target = target;
  40. }
  41. public void SetInitialValue(Preset initialValue)
  42. {
  43. m_InitialValue = initialValue;
  44. }
  45. }
  46. }
  47. #endif