BasicSample.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. using System.Collections;
  2. using UnityEngine;
  3. using SFB;
  4. public class BasicSample : MonoBehaviour {
  5. private string _path;
  6. void OnGUI() {
  7. var guiScale = new Vector3(Screen.width / 800.0f, Screen.height / 600.0f, 1.0f);
  8. GUI.matrix = Matrix4x4.TRS(Vector3.zero, Quaternion.identity, guiScale);
  9. GUILayout.Space(20);
  10. GUILayout.BeginHorizontal();
  11. GUILayout.Space(20);
  12. GUILayout.BeginVertical();
  13. // Open File Samples
  14. if (GUILayout.Button("Open File")) {
  15. WriteResult(StandaloneFileBrowser.OpenFilePanel("Open File", "", "", false));
  16. }
  17. GUILayout.Space(5);
  18. if (GUILayout.Button("Open File Async")) {
  19. StandaloneFileBrowser.OpenFilePanelAsync("Open File", "", "", false, (string[] paths) => { WriteResult(paths); });
  20. }
  21. GUILayout.Space(5);
  22. if (GUILayout.Button("Open File Multiple")) {
  23. WriteResult(StandaloneFileBrowser.OpenFilePanel("Open File", "", "", true));
  24. }
  25. GUILayout.Space(5);
  26. if (GUILayout.Button("Open File Extension")) {
  27. WriteResult(StandaloneFileBrowser.OpenFilePanel("Open File", "", "txt", true));
  28. }
  29. GUILayout.Space(5);
  30. if (GUILayout.Button("Open File Directory")) {
  31. WriteResult(StandaloneFileBrowser.OpenFilePanel("Open File", Application.dataPath, "", true));
  32. }
  33. GUILayout.Space(5);
  34. if (GUILayout.Button("Open File Filter")) {
  35. var extensions = new [] {
  36. new ExtensionFilter("Image Files", "png", "jpg", "jpeg" ),
  37. new ExtensionFilter("Sound Files", "mp3", "wav" ),
  38. new ExtensionFilter("All Files", "*" ),
  39. };
  40. WriteResult(StandaloneFileBrowser.OpenFilePanel("Open File", "", extensions, true));
  41. }
  42. GUILayout.Space(15);
  43. // Open Folder Samples
  44. if (GUILayout.Button("Open Folder")) {
  45. var paths = StandaloneFileBrowser.OpenFolderPanel("Select Folder", "", true);
  46. WriteResult(paths);
  47. }
  48. GUILayout.Space(5);
  49. if (GUILayout.Button("Open Folder Async")) {
  50. StandaloneFileBrowser.OpenFolderPanelAsync("Select Folder", "", true, (string[] paths) => { WriteResult(paths); });
  51. }
  52. GUILayout.Space(5);
  53. if (GUILayout.Button("Open Folder Directory")) {
  54. var paths = StandaloneFileBrowser.OpenFolderPanel("Select Folder", Application.dataPath, true);
  55. WriteResult(paths);
  56. }
  57. GUILayout.Space(15);
  58. // Save File Samples
  59. if (GUILayout.Button("Save File")) {
  60. _path = StandaloneFileBrowser.SaveFilePanel("Save File", "", "", "");
  61. }
  62. GUILayout.Space(5);
  63. if (GUILayout.Button("Save File Async")) {
  64. StandaloneFileBrowser.SaveFilePanelAsync("Save File", "", "", "", (string path) => { WriteResult(path); });
  65. }
  66. GUILayout.Space(5);
  67. if (GUILayout.Button("Save File Default Name")) {
  68. _path = StandaloneFileBrowser.SaveFilePanel("Save File", "", "MySaveFile", "");
  69. }
  70. GUILayout.Space(5);
  71. if (GUILayout.Button("Save File Default Name Ext")) {
  72. _path = StandaloneFileBrowser.SaveFilePanel("Save File", "", "MySaveFile", "dat");
  73. }
  74. GUILayout.Space(5);
  75. if (GUILayout.Button("Save File Directory")) {
  76. _path = StandaloneFileBrowser.SaveFilePanel("Save File", Application.dataPath, "", "");
  77. }
  78. GUILayout.Space(5);
  79. if (GUILayout.Button("Save File Filter")) {
  80. // Multiple save extension filters with more than one extension support.
  81. var extensionList = new [] {
  82. new ExtensionFilter("Binary", "bin"),
  83. new ExtensionFilter("Text", "txt"),
  84. };
  85. _path = StandaloneFileBrowser.SaveFilePanel("Save File", "", "MySaveFile", extensionList);
  86. }
  87. GUILayout.EndVertical();
  88. GUILayout.Space(20);
  89. GUILayout.Label(_path);
  90. GUILayout.EndHorizontal();
  91. }
  92. public void WriteResult(string[] paths) {
  93. if (paths.Length == 0) {
  94. return;
  95. }
  96. _path = "";
  97. foreach (var p in paths) {
  98. _path += p + "\n";
  99. }
  100. }
  101. public void WriteResult(string path) {
  102. _path = path;
  103. }
  104. }