Bladeren bron

【图文题添加】

lxd 6 maanden geleden
bovenliggende
commit
5b5607aaac
51 gewijzigde bestanden met toevoegingen van 5248 en 43 verwijderingen
  1. 8 0
      Framework/Toolkits/FileKits.meta
  2. 85 0
      Framework/Toolkits/FileKits/FileToolkit.cs
  3. 11 0
      Framework/Toolkits/FileKits/FileToolkit.cs.meta
  4. 8 0
      Framework/Toolkits/FileKits/Plugins.meta
  5. 8 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser.meta
  6. 13 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/IStandaloneFileBrowser.cs
  7. 12 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/IStandaloneFileBrowser.cs.meta
  8. 8 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Plugins.meta
  9. BIN
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Plugins/Ookii.Dialogs.dll
  10. 130 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Plugins/Ookii.Dialogs.dll.meta
  11. BIN
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Plugins/System.Windows.Forms.dll
  12. 130 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Plugins/System.Windows.Forms.dll.meta
  13. 8 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample.meta
  14. 119 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/BasicSample.cs
  15. 12 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/BasicSample.cs.meta
  16. 63 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleOpenFileImage.cs
  17. 12 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleOpenFileImage.cs.meta
  18. 53 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleOpenFileText.cs
  19. 12 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleOpenFileText.cs.meta
  20. 62 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleOpenFileTextMultiple.cs
  21. 11 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleOpenFileTextMultiple.cs.meta
  22. 65 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleSaveFileImage.cs
  23. 12 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleSaveFileImage.cs.meta
  24. 52 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleSaveFileText.cs
  25. 12 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleSaveFileText.cs.meta
  26. 153 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowser.cs
  27. 12 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowser.cs.meta
  28. 56 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowserEditor.cs
  29. 12 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowserEditor.cs.meta
  30. 115 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowserLinux.cs
  31. 3 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowserLinux.cs.meta
  32. 119 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowserMac.cs
  33. 12 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowserMac.cs.meta
  34. 137 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowserWindows.cs
  35. 12 0
      Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowserWindows.cs.meta
  36. 1 1
      OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNamePanel.cs
  37. 67 0
      OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNameSetPanel.Designer.cs
  38. 11 0
      OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNameSetPanel.Designer.cs.meta
  39. 136 0
      OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNameSetPanel.cs
  40. 11 0
      OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNameSetPanel.cs.meta
  41. 8 0
      OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNameSetPanel.meta
  42. 31 0
      OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNameSetPanel/ImageOptionSetItem.Designer.cs
  43. 11 0
      OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNameSetPanel/ImageOptionSetItem.Designer.cs.meta
  44. 95 0
      OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNameSetPanel/ImageOptionSetItem.cs
  45. 11 0
      OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNameSetPanel/ImageOptionSetItem.cs.meta
  46. 13 1
      OperationUIFrame/OperationUIFrameV2/Scripts/UI/PC_OperatePanel.cs
  47. 15 6
      OperationUIFrame/OperationUIFrameV2/Scripts/UI/QuestionPanel.cs
  48. 46 33
      OperationUIFrame/OperationUIFrameV2/Scripts/UI/QuestionSetPanel.cs
  49. 3244 0
      OperationUIFrame/OperationUIFrameV2/UIPrefabs/ImageAndTextNameSetPanel.prefab
  50. 7 0
      OperationUIFrame/OperationUIFrameV2/UIPrefabs/ImageAndTextNameSetPanel.prefab.meta
  51. 4 2
      OperationUIFrame/OperationUIFrameV2/UIPrefabs/QuestionSetPanel.prefab

+ 8 - 0
Framework/Toolkits/FileKits.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 317fc868ddde5d645b52c2d3dfa821c4
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 85 - 0
Framework/Toolkits/FileKits/FileToolkit.cs

@@ -0,0 +1,85 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using System.IO;
+using SFB;
+
+public class FileToolkit 
+{
+	public static ExtensionFilter extensionFilter = new ExtensionFilter("图像/视频文件", "wmv", "mp4", "avi", "mov", "WMV", "MP4", "AVI", "MOV", "jpg", "png", "JPG", "PNG", "jpeg", "JPEG");
+
+	public static List<ExtensionFilter> GetExtensionFilters() 
+	{
+		List<ExtensionFilter> extensionFilters = new List<ExtensionFilter>();
+		extensionFilters.Add(extensionFilter);
+		return extensionFilters;
+	}
+
+	/// <summary>
+	/// 读取本地数据并保存到指定位置
+	/// </summary>
+	/// <param name="fliePath"></param>
+	/// <param name="targetFilePath"></param>
+	public static void ReadLocalFileDataAndSaveToTargetPath(string fliePath, string targetFilePath)
+	{
+		byte[] buffer = GetLoaclFileData(fliePath);
+
+		FileLocalSave(targetFilePath,buffer);
+	}
+
+	/// <summary>
+	/// 获取本地文件数据
+	/// </summary>
+	/// <param name="filePath"></param>
+	/// <returns></returns>
+	public static byte[] GetLoaclFileData(string filePath)
+	{
+		using (FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate))
+		{
+			byte[] buffer = new byte[fs.Length];
+			fs.Read(buffer, 0, buffer.Length);
+			fs.Close();
+			return buffer;
+		}
+	}
+
+	/// <summary>
+	/// 文件本地保存
+	/// </summary>
+	public static void FileLocalSave(string savePath,byte[] data) 
+	{
+		Debug.Log(data.Length);
+		using (FileStream fs = new FileStream(savePath,FileMode.OpenOrCreate,FileAccess.ReadWrite))
+		{
+			fs.Write(data, 0, data.Length);
+			fs.Flush();
+		}
+	}
+
+	/// <summary>
+	/// 删除本地文件
+	/// </summary>
+	public static void DeleteLocalFile(string filePath)
+	{
+		if (File.Exists(filePath)) File.Delete(filePath);
+	}
+
+	/// <summary>
+	/// 本地是否包含文件
+	/// </summary>
+	public static bool LoaclIsContainFile(string filePath) 
+	{
+		return File.Exists(filePath);
+	}
+
+	/// <summary>
+	/// 通过WinForm获取上传文件路径
+	/// </summary>
+	/// <param name="extensions"></param>
+	/// <returns></returns>
+	public static string[] GetAssetPathsByWinForm(List<ExtensionFilter> extensions)
+	{
+	    string[] paths = StandaloneFileBrowser.OpenFilePanel(" 上传文件", "", extensions.ToArray(), true);
+		return paths;
+	}
+}

+ 11 - 0
Framework/Toolkits/FileKits/FileToolkit.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b0f20ef94cb989c4fbfa67ed44695351
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Framework/Toolkits/FileKits/Plugins.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 77e27628a02348d4b9cbe84ecca02505
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5d6b8bd261c6f4647aec1f6e581d0f8e
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 13 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/IStandaloneFileBrowser.cs

@@ -0,0 +1,13 @@
+using System;
+
+namespace SFB {
+    public interface IStandaloneFileBrowser {
+        string[] OpenFilePanel(string title, string directory, ExtensionFilter[] extensions, bool multiselect);
+        string[] OpenFolderPanel(string title, string directory, bool multiselect);
+        string SaveFilePanel(string title, string directory, string defaultName, ExtensionFilter[] extensions);
+
+        void OpenFilePanelAsync(string title, string directory, ExtensionFilter[] extensions, bool multiselect, Action<string[]> cb);
+        void OpenFolderPanelAsync(string title, string directory, bool multiselect, Action<string[]> cb);
+        void SaveFilePanelAsync(string title, string directory, string defaultName, ExtensionFilter[] extensions, Action<string> cb);
+    }
+}

+ 12 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/IStandaloneFileBrowser.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 7609f7b6787a54496aa41a3053fcc76a
+timeCreated: 1483902788
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Plugins.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0d12a0199c3c3d34faeedae25f937e86
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Plugins/Ookii.Dialogs.dll


+ 130 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Plugins/Ookii.Dialogs.dll.meta

@@ -0,0 +1,130 @@
+fileFormatVersion: 2
+guid: e60958662eed5413d86143a0a69b731e
+PluginImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  iconMap: {}
+  executionOrder: {}
+  defineConstraints: []
+  isPreloaded: 0
+  isOverridable: 0
+  isExplicitlyReferenced: 0
+  validateReferences: 1
+  platformData:
+  - first:
+      : Any
+    second:
+      enabled: 0
+      settings:
+        Exclude Android: 1
+        Exclude Editor: 0
+        Exclude Linux: 1
+        Exclude Linux64: 1
+        Exclude LinuxUniversal: 1
+        Exclude OSXIntel: 1
+        Exclude OSXIntel64: 1
+        Exclude OSXUniversal: 1
+        Exclude WebGL: 1
+        Exclude Win: 0
+        Exclude Win64: 0
+        Exclude iOS: 1
+  - first:
+      : Editor
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+        OS: AnyOS
+  - first:
+      Android: Android
+    second:
+      enabled: 0
+      settings:
+        CPU: ARMv7
+  - first:
+      Any: 
+    second:
+      enabled: 0
+      settings: {}
+  - first:
+      Editor: Editor
+    second:
+      enabled: 1
+      settings:
+        DefaultValueInitialized: true
+  - first:
+      Facebook: Win
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  - first:
+      Facebook: Win64
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  - first:
+      Standalone: Linux
+    second:
+      enabled: 0
+      settings:
+        CPU: None
+  - first:
+      Standalone: Linux64
+    second:
+      enabled: 0
+      settings:
+        CPU: None
+  - first:
+      Standalone: LinuxUniversal
+    second:
+      enabled: 0
+      settings:
+        CPU: None
+  - first:
+      Standalone: OSXIntel
+    second:
+      enabled: 0
+      settings:
+        CPU: None
+  - first:
+      Standalone: OSXIntel64
+    second:
+      enabled: 0
+      settings:
+        CPU: None
+  - first:
+      Standalone: OSXUniversal
+    second:
+      enabled: 0
+      settings:
+        CPU: None
+  - first:
+      Standalone: Win
+    second:
+      enabled: 1
+      settings:
+        CPU: AnyCPU
+  - first:
+      Standalone: Win64
+    second:
+      enabled: 1
+      settings:
+        CPU: AnyCPU
+  - first:
+      Windows Store Apps: WindowsStoreApps
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  - first:
+      iPhone: iOS
+    second:
+      enabled: 0
+      settings:
+        CompileFlags: 
+        FrameworkDependencies: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Plugins/System.Windows.Forms.dll


+ 130 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Plugins/System.Windows.Forms.dll.meta

@@ -0,0 +1,130 @@
+fileFormatVersion: 2
+guid: 7d459a96865cc4aaab657012c6dc4833
+PluginImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  iconMap: {}
+  executionOrder: {}
+  defineConstraints: []
+  isPreloaded: 0
+  isOverridable: 0
+  isExplicitlyReferenced: 0
+  validateReferences: 1
+  platformData:
+  - first:
+      : Any
+    second:
+      enabled: 0
+      settings:
+        Exclude Android: 1
+        Exclude Editor: 0
+        Exclude Linux: 1
+        Exclude Linux64: 1
+        Exclude LinuxUniversal: 1
+        Exclude OSXIntel: 1
+        Exclude OSXIntel64: 1
+        Exclude OSXUniversal: 1
+        Exclude WebGL: 1
+        Exclude Win: 0
+        Exclude Win64: 0
+        Exclude iOS: 1
+  - first:
+      : Editor
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+        OS: AnyOS
+  - first:
+      Android: Android
+    second:
+      enabled: 0
+      settings:
+        CPU: ARMv7
+  - first:
+      Any: 
+    second:
+      enabled: 0
+      settings: {}
+  - first:
+      Editor: Editor
+    second:
+      enabled: 1
+      settings:
+        DefaultValueInitialized: true
+  - first:
+      Facebook: Win
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  - first:
+      Facebook: Win64
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  - first:
+      Standalone: Linux
+    second:
+      enabled: 0
+      settings:
+        CPU: None
+  - first:
+      Standalone: Linux64
+    second:
+      enabled: 0
+      settings:
+        CPU: None
+  - first:
+      Standalone: LinuxUniversal
+    second:
+      enabled: 0
+      settings:
+        CPU: None
+  - first:
+      Standalone: OSXIntel
+    second:
+      enabled: 0
+      settings:
+        CPU: None
+  - first:
+      Standalone: OSXIntel64
+    second:
+      enabled: 0
+      settings:
+        CPU: None
+  - first:
+      Standalone: OSXUniversal
+    second:
+      enabled: 0
+      settings:
+        CPU: None
+  - first:
+      Standalone: Win
+    second:
+      enabled: 1
+      settings:
+        CPU: AnyCPU
+  - first:
+      Standalone: Win64
+    second:
+      enabled: 1
+      settings:
+        CPU: AnyCPU
+  - first:
+      Windows Store Apps: WindowsStoreApps
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  - first:
+      iPhone: iOS
+    second:
+      enabled: 0
+      settings:
+        CompileFlags: 
+        FrameworkDependencies: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 404809f5e9ed6424b9983a4a932fe0ca
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 119 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/BasicSample.cs

@@ -0,0 +1,119 @@
+using System.Collections;
+using UnityEngine;
+using SFB;
+
+public class BasicSample : MonoBehaviour {
+    private string _path;
+
+    void OnGUI() {
+        var guiScale = new Vector3(Screen.width / 800.0f, Screen.height / 600.0f, 1.0f);
+        GUI.matrix = Matrix4x4.TRS(Vector3.zero, Quaternion.identity, guiScale);
+
+        GUILayout.Space(20);
+        GUILayout.BeginHorizontal();
+        GUILayout.Space(20);
+        GUILayout.BeginVertical();
+
+        // Open File Samples
+
+        if (GUILayout.Button("Open File")) {
+            WriteResult(StandaloneFileBrowser.OpenFilePanel("Open File", "", "", false));
+        }
+        GUILayout.Space(5);
+        if (GUILayout.Button("Open File Async")) {
+            StandaloneFileBrowser.OpenFilePanelAsync("Open File", "", "", false, (string[] paths) => { WriteResult(paths); });
+        }
+        GUILayout.Space(5);
+        if (GUILayout.Button("Open File Multiple")) {
+            WriteResult(StandaloneFileBrowser.OpenFilePanel("Open File", "", "", true));
+        }
+        GUILayout.Space(5);
+        if (GUILayout.Button("Open File Extension")) {
+            WriteResult(StandaloneFileBrowser.OpenFilePanel("Open File", "", "txt", true));
+        }
+        GUILayout.Space(5);
+        if (GUILayout.Button("Open File Directory")) {
+            WriteResult(StandaloneFileBrowser.OpenFilePanel("Open File", Application.dataPath, "", true));
+        }
+        GUILayout.Space(5);
+        if (GUILayout.Button("Open File Filter")) {
+            var extensions = new [] {
+                new ExtensionFilter("Image Files", "png", "jpg", "jpeg" ),
+                new ExtensionFilter("Sound Files", "mp3", "wav" ),
+                new ExtensionFilter("All Files", "*" ),
+            };
+            WriteResult(StandaloneFileBrowser.OpenFilePanel("Open File", "", extensions, true));
+        }
+
+        GUILayout.Space(15);
+
+        // Open Folder Samples
+
+        if (GUILayout.Button("Open Folder")) {
+            var paths = StandaloneFileBrowser.OpenFolderPanel("Select Folder", "", true);
+            WriteResult(paths);
+        }
+        GUILayout.Space(5);
+        if (GUILayout.Button("Open Folder Async")) {
+            StandaloneFileBrowser.OpenFolderPanelAsync("Select Folder", "", true, (string[] paths) => { WriteResult(paths); });
+        }
+        GUILayout.Space(5);
+        if (GUILayout.Button("Open Folder Directory")) {
+            var paths = StandaloneFileBrowser.OpenFolderPanel("Select Folder", Application.dataPath, true);
+            WriteResult(paths);
+        }
+
+        GUILayout.Space(15);
+
+        // Save File Samples
+
+        if (GUILayout.Button("Save File")) {
+            _path = StandaloneFileBrowser.SaveFilePanel("Save File", "", "", "");
+        }
+        GUILayout.Space(5);
+        if (GUILayout.Button("Save File Async")) {
+            StandaloneFileBrowser.SaveFilePanelAsync("Save File", "", "", "", (string path) => { WriteResult(path); });
+        }
+        GUILayout.Space(5);
+        if (GUILayout.Button("Save File Default Name")) {
+            _path = StandaloneFileBrowser.SaveFilePanel("Save File", "", "MySaveFile", "");
+        }
+        GUILayout.Space(5);
+        if (GUILayout.Button("Save File Default Name Ext")) {
+            _path = StandaloneFileBrowser.SaveFilePanel("Save File", "", "MySaveFile", "dat");
+        }
+        GUILayout.Space(5);
+        if (GUILayout.Button("Save File Directory")) {
+            _path = StandaloneFileBrowser.SaveFilePanel("Save File", Application.dataPath, "", "");
+        }
+        GUILayout.Space(5);
+        if (GUILayout.Button("Save File Filter")) {
+            // Multiple save extension filters with more than one extension support.
+            var extensionList = new [] {
+                new ExtensionFilter("Binary", "bin"),
+                new ExtensionFilter("Text", "txt"),
+            };
+            _path = StandaloneFileBrowser.SaveFilePanel("Save File", "", "MySaveFile", extensionList);
+        }
+
+        GUILayout.EndVertical();
+        GUILayout.Space(20);
+        GUILayout.Label(_path);
+        GUILayout.EndHorizontal();
+    }
+
+    public void WriteResult(string[] paths) {
+        if (paths.Length == 0) {
+            return;
+        }
+
+        _path = "";
+        foreach (var p in paths) {
+            _path += p + "\n";
+        }
+    }
+
+    public void WriteResult(string path) {
+        _path = path;
+    }
+}

+ 12 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/BasicSample.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 5148400295519405d82bb0fa65246ea2
+timeCreated: 1483902788
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 63 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleOpenFileImage.cs

@@ -0,0 +1,63 @@
+using System.Text;
+using System.Collections;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.EventSystems;
+using SFB;
+
+[RequireComponent(typeof(Button))]
+public class CanvasSampleOpenFileImage : MonoBehaviour, IPointerDownHandler
+{
+    public RawImage output;
+
+#if UNITY_WEBGL && !UNITY_EDITOR
+    //
+    // WebGL
+    //
+    [DllImport("__Internal")]
+    private static extern void UploadFile(string gameObjectName, string methodName, string filter, bool multiple);
+
+    public void OnPointerDown(PointerEventData eventData) {
+        UploadFile(gameObject.name, "OnFileUpload", ".png, .jpg", false);
+    }
+
+    // Called from browser
+    public void OnFileUpload(string url) {
+        StartCoroutine(OutputRoutine(url));
+    }
+#else
+    //
+    // Standalone platforms & editor
+    //
+    public void OnPointerDown(PointerEventData eventData) { }
+
+    void Start()
+    {
+        var button = GetComponent<Button>();
+        button.onClick.AddListener(OnClick);
+    }
+
+    private void OnClick()
+    {
+        var extensions = new[] {
+                new ExtensionFilter("Image Files", "png", "jpg", "jpeg" ),
+                new ExtensionFilter("Sound Files", "mp3", "wav" ),
+                new ExtensionFilter("All Files", "*" ),
+            };
+        var paths = StandaloneFileBrowser.OpenFilePanel("Title", "", extensions, false);
+        if (paths.Length > 0)
+        {
+            StartCoroutine(OutputRoutine(new System.Uri(paths[0]).AbsoluteUri));
+        }
+    }
+#endif
+
+    private IEnumerator OutputRoutine(string url)
+    {
+        var loader = new WWW(url);
+        yield return loader;
+        output.texture = loader.texture;
+    }
+}

+ 12 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleOpenFileImage.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 331c95b7bf39e4792acecff50a972040
+timeCreated: 1489946149
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 53 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleOpenFileText.cs

@@ -0,0 +1,53 @@
+using System.Text;
+using System.Collections;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.EventSystems;
+using SFB;
+
+[RequireComponent(typeof(Button))]
+public class CanvasSampleOpenFileText : MonoBehaviour, IPointerDownHandler {
+    public Text output;
+
+#if UNITY_WEBGL && !UNITY_EDITOR
+    //
+    // WebGL
+    //
+    [DllImport("__Internal")]
+    private static extern void UploadFile(string gameObjectName, string methodName, string filter, bool multiple);
+
+    public void OnPointerDown(PointerEventData eventData) {
+        UploadFile(gameObject.name, "OnFileUpload", ".txt", false);
+    }
+
+    // Called from browser
+    public void OnFileUpload(string url) {
+        StartCoroutine(OutputRoutine(url));
+    }
+#else
+    //
+    // Standalone platforms & editor
+    //
+    public void OnPointerDown(PointerEventData eventData) { }
+
+    void Start() {
+        var button = GetComponent<Button>();
+        button.onClick.AddListener(OnClick);
+    }
+
+    private void OnClick() {
+        var paths = StandaloneFileBrowser.OpenFilePanel("Title", "", "txt", false);
+        if (paths.Length > 0) {
+            StartCoroutine(OutputRoutine(new System.Uri(paths[0]).AbsoluteUri));
+        }
+    }
+#endif
+
+    private IEnumerator OutputRoutine(string url) {
+        var loader = new WWW(url);
+        yield return loader;
+        output.text = loader.text;
+    }
+}

+ 12 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleOpenFileText.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 99a65d6437df64949b37cba4eadc67a2
+timeCreated: 1489946149
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 62 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleOpenFileTextMultiple.cs

@@ -0,0 +1,62 @@
+using System.Text;
+using System.Collections;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.EventSystems;
+using SFB;
+
+[RequireComponent(typeof(Button))]
+public class CanvasSampleOpenFileTextMultiple : MonoBehaviour, IPointerDownHandler {
+    public Text output;
+
+#if UNITY_WEBGL && !UNITY_EDITOR
+    //
+    // WebGL
+    //
+    [DllImport("__Internal")]
+    private static extern void UploadFile(string gameObjectName, string methodName, string filter, bool multiple);
+
+    public void OnPointerDown(PointerEventData eventData) {
+        UploadFile(gameObject.name, "OnFileUpload", ".txt", true);
+    }
+
+    // Called from browser
+    public void OnFileUpload(string urls) {
+        StartCoroutine(OutputRoutine(urls.Split(',')));
+    }
+#else
+    //
+    // Standalone platforms & editor
+    //
+    public void OnPointerDown(PointerEventData eventData) { }
+
+    void Start() {
+        var button = GetComponent<Button>();
+        button.onClick.AddListener(OnClick);
+    }
+
+    private void OnClick() {
+        // var paths = StandaloneFileBrowser.OpenFilePanel("Title", "", "txt", true);
+        var paths = StandaloneFileBrowser.OpenFilePanel("Open File", "", "", true);
+        if (paths.Length > 0) {
+            var urlArr = new List<string>(paths.Length);
+            for (int i = 0; i < paths.Length; i++) {
+                urlArr.Add(new System.Uri(paths[i]).AbsoluteUri);
+            }
+            StartCoroutine(OutputRoutine(urlArr.ToArray()));
+        }
+    }
+#endif
+
+    private IEnumerator OutputRoutine(string[] urlArr) {
+        var outputText = "";
+        for (int i = 0; i < urlArr.Length; i++) {
+            var loader = new WWW(urlArr[i]);
+            yield return loader;
+            outputText += loader.text;
+        }
+        output.text = outputText;
+    }
+}

+ 11 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleOpenFileTextMultiple.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 71c09849449d61e47a4599e06b964998
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 65 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleSaveFileImage.cs

@@ -0,0 +1,65 @@
+using System.IO;
+using System.Text;
+using System.Runtime.InteropServices;
+using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.EventSystems;
+using SFB;
+
+[RequireComponent(typeof(Button))]
+public class CanvasSampleSaveFileImage : MonoBehaviour, IPointerDownHandler {
+    public Text output;
+
+    private byte[] _textureBytes;
+
+    void Awake() {
+        // Create red texture
+        var width = 100;
+        var height = 100;
+        Texture2D tex = new Texture2D(width, height, TextureFormat.RGB24, false);
+        for (int i = 0; i < width; i++) {
+            for (int j = 0; j < height; j++) {
+                tex.SetPixel(i, j, Color.red);
+            }
+        }
+        tex.Apply();
+        _textureBytes = tex.EncodeToPNG();
+        UnityEngine.Object.Destroy(tex);
+    }
+
+#if UNITY_WEBGL && !UNITY_EDITOR
+    //
+    // WebGL
+    //
+    [DllImport("__Internal")]
+    private static extern void DownloadFile(string gameObjectName, string methodName, string filename, byte[] byteArray, int byteArraySize);
+
+    // Broser plugin should be called in OnPointerDown.
+    public void OnPointerDown(PointerEventData eventData) {
+        DownloadFile(gameObject.name, "OnFileDownload", "sample.png", _textureBytes, _textureBytes.Length);
+    }
+
+    // Called from browser
+    public void OnFileDownload() {
+        output.text = "File Successfully Downloaded";
+    }
+#else
+    //
+    // Standalone platforms & editor
+    //
+    public void OnPointerDown(PointerEventData eventData) { }
+
+    // Listen OnClick event in standlone builds
+    void Start() {
+        var button = GetComponent<Button>();
+        button.onClick.AddListener(OnClick);
+    }
+
+    public void OnClick() {
+        var path = StandaloneFileBrowser.SaveFilePanel("Title", "", "sample", "png");
+        if (!string.IsNullOrEmpty(path)) {
+            File.WriteAllBytes(path, _textureBytes);
+        }
+    }
+#endif
+}

+ 12 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleSaveFileImage.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 6e681018aa67241a69b8447678ec3b4e
+timeCreated: 1489946149
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 52 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleSaveFileText.cs

@@ -0,0 +1,52 @@
+using System.IO;
+using System.Text;
+using System.Runtime.InteropServices;
+using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.EventSystems;
+using SFB;
+
+[RequireComponent(typeof(Button))]
+public class CanvasSampleSaveFileText : MonoBehaviour, IPointerDownHandler {
+    public Text output;
+
+    // Sample text data
+    private string _data = "Example text created by StandaloneFileBrowser";
+
+#if UNITY_WEBGL && !UNITY_EDITOR
+    //
+    // WebGL
+    //
+    [DllImport("__Internal")]
+    private static extern void DownloadFile(string gameObjectName, string methodName, string filename, byte[] byteArray, int byteArraySize);
+
+    // Broser plugin should be called in OnPointerDown.
+    public void OnPointerDown(PointerEventData eventData) {
+        var bytes = Encoding.UTF8.GetBytes(_data);
+        DownloadFile(gameObject.name, "OnFileDownload", "sample.txt", bytes, bytes.Length);
+    }
+
+    // Called from browser
+    public void OnFileDownload() {
+        output.text = "File Successfully Downloaded";
+    }
+#else
+    //
+    // Standalone platforms & editor
+    //
+    public void OnPointerDown(PointerEventData eventData) { }
+
+    // Listen OnClick event in standlone builds
+    void Start() {
+        var button = GetComponent<Button>();
+        button.onClick.AddListener(OnClick);
+    }
+
+    public void OnClick() {
+        var path = StandaloneFileBrowser.SaveFilePanel("Title", "", "sample", "txt");
+        if (!string.IsNullOrEmpty(path)) {
+            File.WriteAllText(path, _data);
+        }
+    }
+#endif
+}

+ 12 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/Sample/CanvasSampleSaveFileText.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 8e97f52f0bd664ee78305dae0094a755
+timeCreated: 1489946149
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 153 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowser.cs

@@ -0,0 +1,153 @@
+using System;
+
+namespace SFB {
+    public struct ExtensionFilter {
+        public string Name;
+        public string[] Extensions;
+
+        public ExtensionFilter(string filterName, params string[] filterExtensions) {
+            Name = filterName;
+            Extensions = filterExtensions;
+        }
+    }
+
+    public class StandaloneFileBrowser {
+        private static IStandaloneFileBrowser _platformWrapper = null;
+
+        static StandaloneFileBrowser() {
+#if UNITY_STANDALONE_OSX
+            _platformWrapper = new StandaloneFileBrowserMac();
+#elif UNITY_STANDALONE_WIN
+            _platformWrapper = new StandaloneFileBrowserWindows();
+#elif UNITY_STANDALONE_LINUX
+            _platformWrapper = new StandaloneFileBrowserLinux();
+#elif UNITY_EDITOR
+            _platformWrapper = new StandaloneFileBrowserEditor();
+#endif
+        }
+
+        /// <summary>
+        /// Native open file dialog
+        /// </summary>
+        /// <param name="title">Dialog title</param>
+        /// <param name="directory">Root directory</param>
+        /// <param name="extension">Allowed extension</param>
+        /// <param name="multiselect">Allow multiple file selection</param>
+        /// <returns>Returns array of chosen paths. Zero length array when cancelled</returns>
+        public static string[] OpenFilePanel(string title, string directory, string extension, bool multiselect) {
+            var extensions = string.IsNullOrEmpty(extension) ? null : new [] { new ExtensionFilter("", extension) };
+            return OpenFilePanel(title, directory, extensions, multiselect);
+        }
+
+        /// <summary>
+        /// Native open file dialog
+        /// </summary>
+        /// <param name="title">Dialog title</param>
+        /// <param name="directory">Root directory</param>
+        /// <param name="extensions">List of extension filters. Filter Example: new ExtensionFilter("Image Files", "jpg", "png")</param>
+        /// <param name="multiselect">Allow multiple file selection</param>
+        /// <returns>Returns array of chosen paths. Zero length array when cancelled</returns>
+        public static string[] OpenFilePanel(string title, string directory, ExtensionFilter[] extensions, bool multiselect) {
+            return _platformWrapper.OpenFilePanel(title, directory, extensions, multiselect);
+        }
+
+        /// <summary>
+        /// Native open file dialog async
+        /// </summary>
+        /// <param name="title">Dialog title</param>
+        /// <param name="directory">Root directory</param>
+        /// <param name="extension">Allowed extension</param>
+        /// <param name="multiselect">Allow multiple file selection</param>
+        /// <param name="cb">Callback")</param>
+        public static void OpenFilePanelAsync(string title, string directory, string extension, bool multiselect, Action<string[]> cb) {
+            var extensions = string.IsNullOrEmpty(extension) ? null : new [] { new ExtensionFilter("", extension) };
+            OpenFilePanelAsync(title, directory, extensions, multiselect, cb);
+        }
+
+        /// <summary>
+        /// Native open file dialog async
+        /// </summary>
+        /// <param name="title">Dialog title</param>
+        /// <param name="directory">Root directory</param>
+        /// <param name="extensions">List of extension filters. Filter Example: new ExtensionFilter("Image Files", "jpg", "png")</param>
+        /// <param name="multiselect">Allow multiple file selection</param>
+        /// <param name="cb">Callback")</param>
+        public static void OpenFilePanelAsync(string title, string directory, ExtensionFilter[] extensions, bool multiselect, Action<string[]> cb) {
+            _platformWrapper.OpenFilePanelAsync(title, directory, extensions, multiselect, cb);
+        }
+
+        /// <summary>
+        /// Native open folder dialog
+        /// NOTE: Multiple folder selection doesn't supported on Windows
+        /// </summary>
+        /// <param name="title"></param>
+        /// <param name="directory">Root directory</param>
+        /// <param name="multiselect"></param>
+        /// <returns>Returns array of chosen paths. Zero length array when cancelled</returns>
+        public static string[] OpenFolderPanel(string title, string directory, bool multiselect) {
+            return _platformWrapper.OpenFolderPanel(title, directory, multiselect);
+        }
+
+        /// <summary>
+        /// Native open folder dialog async
+        /// NOTE: Multiple folder selection doesn't supported on Windows
+        /// </summary>
+        /// <param name="title"></param>
+        /// <param name="directory">Root directory</param>
+        /// <param name="multiselect"></param>
+        /// <param name="cb">Callback")</param>
+        public static void OpenFolderPanelAsync(string title, string directory, bool multiselect, Action<string[]> cb) {
+            _platformWrapper.OpenFolderPanelAsync(title, directory, multiselect, cb);
+        }
+
+        /// <summary>
+        /// Native save file dialog
+        /// </summary>
+        /// <param name="title">Dialog title</param>
+        /// <param name="directory">Root directory</param>
+        /// <param name="defaultName">Default file name</param>
+        /// <param name="extension">File extension</param>
+        /// <returns>Returns chosen path. Empty string when cancelled</returns>
+        public static string SaveFilePanel(string title, string directory, string defaultName , string extension) {
+            var extensions = string.IsNullOrEmpty(extension) ? null : new [] { new ExtensionFilter("", extension) };
+            return SaveFilePanel(title, directory, defaultName, extensions);
+        }
+
+        /// <summary>
+        /// Native save file dialog
+        /// </summary>
+        /// <param name="title">Dialog title</param>
+        /// <param name="directory">Root directory</param>
+        /// <param name="defaultName">Default file name</param>
+        /// <param name="extensions">List of extension filters. Filter Example: new ExtensionFilter("Image Files", "jpg", "png")</param>
+        /// <returns>Returns chosen path. Empty string when cancelled</returns>
+        public static string SaveFilePanel(string title, string directory, string defaultName, ExtensionFilter[] extensions) {
+            return _platformWrapper.SaveFilePanel(title, directory, defaultName, extensions);
+        }
+
+        /// <summary>
+        /// Native save file dialog async
+        /// </summary>
+        /// <param name="title">Dialog title</param>
+        /// <param name="directory">Root directory</param>
+        /// <param name="defaultName">Default file name</param>
+        /// <param name="extension">File extension</param>
+        /// <param name="cb">Callback")</param>
+        public static void SaveFilePanelAsync(string title, string directory, string defaultName , string extension, Action<string> cb) {
+            var extensions = string.IsNullOrEmpty(extension) ? null : new [] { new ExtensionFilter("", extension) };
+            SaveFilePanelAsync(title, directory, defaultName, extensions, cb);
+        }
+
+        /// <summary>
+        /// Native save file dialog async
+        /// </summary>
+        /// <param name="title">Dialog title</param>
+        /// <param name="directory">Root directory</param>
+        /// <param name="defaultName">Default file name</param>
+        /// <param name="extensions">List of extension filters. Filter Example: new ExtensionFilter("Image Files", "jpg", "png")</param>
+        /// <param name="cb">Callback")</param>
+        public static void SaveFilePanelAsync(string title, string directory, string defaultName, ExtensionFilter[] extensions, Action<string> cb) {
+            _platformWrapper.SaveFilePanelAsync(title, directory, defaultName, extensions, cb);
+        }
+    }
+}

+ 12 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowser.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 3c708be74128e4ced9b79eaaf80e8443
+timeCreated: 1483902788
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 56 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowserEditor.cs

@@ -0,0 +1,56 @@
+#if UNITY_EDITOR
+
+using System;
+using UnityEditor;
+
+namespace SFB {
+    public class StandaloneFileBrowserEditor : IStandaloneFileBrowser  {
+        public string[] OpenFilePanel(string title, string directory, ExtensionFilter[] extensions, bool multiselect) {
+            string path = "";
+
+            if (extensions == null) {
+                path = EditorUtility.OpenFilePanel(title, directory, "");
+            }
+            else {
+                path = EditorUtility.OpenFilePanelWithFilters(title, directory, GetFilterFromFileExtensionList(extensions));
+            }
+
+            return string.IsNullOrEmpty(path) ? new string[0] : new[] { path };
+        }
+
+        public void OpenFilePanelAsync(string title, string directory, ExtensionFilter[] extensions, bool multiselect, Action<string[]> cb) {
+            cb.Invoke(OpenFilePanel(title, directory, extensions, multiselect));
+        }
+
+        public string[] OpenFolderPanel(string title, string directory, bool multiselect) {
+            var path = EditorUtility.OpenFolderPanel(title, directory, "");
+            return string.IsNullOrEmpty(path) ? new string[0] : new[] {path};
+        }
+
+        public void OpenFolderPanelAsync(string title, string directory, bool multiselect, Action<string[]> cb) {
+            cb.Invoke(OpenFolderPanel(title, directory, multiselect));
+        }
+
+        public string SaveFilePanel(string title, string directory, string defaultName, ExtensionFilter[] extensions) {
+            var ext = extensions != null ? extensions[0].Extensions[0] : "";
+            var name = string.IsNullOrEmpty(ext) ? defaultName : defaultName + "." + ext;
+            return EditorUtility.SaveFilePanel(title, directory, name, ext);
+        }
+
+        public void SaveFilePanelAsync(string title, string directory, string defaultName, ExtensionFilter[] extensions, Action<string> cb) {
+            cb.Invoke(SaveFilePanel(title, directory, defaultName, extensions));
+        }
+
+        // EditorUtility.OpenFilePanelWithFilters extension filter format
+        private static string[] GetFilterFromFileExtensionList(ExtensionFilter[] extensions) {
+            var filters = new string[extensions.Length * 2];
+            for (int i = 0; i < extensions.Length; i++) {
+                filters[(i * 2)] = extensions[i].Name;
+                filters[(i * 2) + 1] = string.Join(",", extensions[i].Extensions);
+            }
+            return filters;
+        }
+    }
+}
+
+#endif

+ 12 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowserEditor.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 2650af8de2cda46b99b1bc7cf5d30ca5
+timeCreated: 1483902788
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 115 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowserLinux.cs

@@ -0,0 +1,115 @@
+#if UNITY_STANDALONE_LINUX
+
+using System;
+using System.IO;
+using System.Runtime.InteropServices;
+using UnityEngine;
+
+namespace SFB {
+
+    public class StandaloneFileBrowserLinux : IStandaloneFileBrowser {
+        
+        private static Action<string[]> _openFileCb;
+        private static Action<string[]> _openFolderCb;
+        private static Action<string> _saveFileCb;
+
+        [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+        public delegate void AsyncCallback(string path);
+
+        [DllImport("StandaloneFileBrowser")]
+        private static extern void DialogInit();
+        [DllImport("StandaloneFileBrowser")]
+        private static extern IntPtr DialogOpenFilePanel(string title, string directory, string extension, bool multiselect);
+        [DllImport("StandaloneFileBrowser")]
+        private static extern void DialogOpenFilePanelAsync(string title, string directory, string extension, bool multiselect, AsyncCallback callback);
+        [DllImport("StandaloneFileBrowser")]
+        private static extern IntPtr DialogOpenFolderPanel(string title, string directory, bool multiselect);
+        [DllImport("StandaloneFileBrowser")]
+        private static extern void DialogOpenFolderPanelAsync(string title, string directory, bool multiselect, AsyncCallback callback);
+        [DllImport("StandaloneFileBrowser")]
+        private static extern IntPtr DialogSaveFilePanel(string title, string directory, string defaultName, string extension);
+        [DllImport("StandaloneFileBrowser")]
+        private static extern void DialogSaveFilePanelAsync(string title, string directory, string defaultName, string extension, AsyncCallback callback);
+
+        public StandaloneFileBrowserLinux()
+        {
+            DialogInit();
+        }
+
+        public string[] OpenFilePanel(string title, string directory, ExtensionFilter[] extensions, bool multiselect) {
+            var paths = Marshal.PtrToStringAnsi(DialogOpenFilePanel(
+                title,
+                directory,
+                GetFilterFromFileExtensionList(extensions),
+                multiselect));
+            return paths.Split((char)28);
+        }
+
+        public void OpenFilePanelAsync(string title, string directory, ExtensionFilter[] extensions, bool multiselect, Action<string[]> cb) {
+            _openFileCb = cb;
+            DialogOpenFilePanelAsync(
+                title,
+                directory,
+                GetFilterFromFileExtensionList(extensions),
+                multiselect,
+                (string result) => { _openFileCb.Invoke(result.Split((char)28)); });
+        }
+
+        public string[] OpenFolderPanel(string title, string directory, bool multiselect) {
+            var paths = Marshal.PtrToStringAnsi(DialogOpenFolderPanel(
+                title,
+                directory,
+                multiselect));
+            return paths.Split((char)28);
+        }
+
+        public void OpenFolderPanelAsync(string title, string directory, bool multiselect, Action<string[]> cb) {
+            _openFolderCb = cb;
+            DialogOpenFolderPanelAsync(
+                title,
+                directory,
+                multiselect,
+                (string result) => { _openFolderCb.Invoke(result.Split((char)28)); });
+        }
+
+        public string SaveFilePanel(string title, string directory, string defaultName, ExtensionFilter[] extensions) {
+            return Marshal.PtrToStringAnsi(DialogSaveFilePanel(
+                title,
+                directory,
+                defaultName,
+                GetFilterFromFileExtensionList(extensions)));
+        }
+
+        public void SaveFilePanelAsync(string title, string directory, string defaultName, ExtensionFilter[] extensions, Action<string> cb) {
+            _saveFileCb = cb;
+            DialogSaveFilePanelAsync(
+                title,
+                directory,
+                defaultName,
+                GetFilterFromFileExtensionList(extensions),
+                (string result) => { _saveFileCb.Invoke(result); });
+        }
+
+        private static string GetFilterFromFileExtensionList(ExtensionFilter[] extensions) {
+            if (extensions == null) {
+                return "";
+            }
+
+            var filterString = "";
+            foreach (var filter in extensions) {
+                filterString += filter.Name + ";";
+
+                foreach (var ext in filter.Extensions) {
+                    filterString += ext + ",";
+                }
+
+                filterString = filterString.Remove(filterString.Length - 1);
+                filterString += "|";
+            }
+            filterString = filterString.Remove(filterString.Length - 1);
+            return filterString;
+        }
+    }
+}
+
+#endif

+ 3 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowserLinux.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 5d3a668018554b8a89c3fe12de72b60c
+timeCreated: 1538067919

+ 119 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowserMac.cs

@@ -0,0 +1,119 @@
+#if UNITY_STANDALONE_OSX
+
+using System;
+using System.Runtime.InteropServices;
+
+namespace SFB {
+    public class StandaloneFileBrowserMac : IStandaloneFileBrowser {
+        private static Action<string[]> _openFileCb;
+        private static Action<string[]> _openFolderCb;
+        private static Action<string> _saveFileCb;
+
+        [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+        public delegate void AsyncCallback(string path);
+
+        [AOT.MonoPInvokeCallback(typeof(AsyncCallback))]
+        private static void openFileCb(string result) {
+            _openFileCb.Invoke(result.Split((char)28));
+        }
+
+        [AOT.MonoPInvokeCallback(typeof(AsyncCallback))]
+        private static void openFolderCb(string result) {
+            _openFolderCb.Invoke(result.Split((char)28));
+        }
+
+        [AOT.MonoPInvokeCallback(typeof(AsyncCallback))]
+        private static void saveFileCb(string result) {
+            _saveFileCb.Invoke(result);
+        }
+
+        [DllImport("StandaloneFileBrowser")]
+        private static extern IntPtr DialogOpenFilePanel(string title, string directory, string extension, bool multiselect);
+        [DllImport("StandaloneFileBrowser")]
+        private static extern void DialogOpenFilePanelAsync(string title, string directory, string extension, bool multiselect, AsyncCallback callback);
+        [DllImport("StandaloneFileBrowser")]
+        private static extern IntPtr DialogOpenFolderPanel(string title, string directory, bool multiselect);
+        [DllImport("StandaloneFileBrowser")]
+        private static extern void DialogOpenFolderPanelAsync(string title, string directory, bool multiselect, AsyncCallback callback);
+        [DllImport("StandaloneFileBrowser")]
+        private static extern IntPtr DialogSaveFilePanel(string title, string directory, string defaultName, string extension);
+        [DllImport("StandaloneFileBrowser")]
+        private static extern void DialogSaveFilePanelAsync(string title, string directory, string defaultName, string extension, AsyncCallback callback);
+
+        public string[] OpenFilePanel(string title, string directory, ExtensionFilter[] extensions, bool multiselect) {
+            var paths = Marshal.PtrToStringAnsi(DialogOpenFilePanel(
+                title,
+                directory,
+                GetFilterFromFileExtensionList(extensions),
+                multiselect));
+            return paths.Split((char)28);
+        }
+
+        public void OpenFilePanelAsync(string title, string directory, ExtensionFilter[] extensions, bool multiselect, Action<string[]> cb) {
+            _openFileCb = cb;
+            DialogOpenFilePanelAsync(
+                title,
+                directory,
+                GetFilterFromFileExtensionList(extensions),
+                multiselect,
+                openFileCb);
+        }
+
+        public string[] OpenFolderPanel(string title, string directory, bool multiselect) {
+            var paths = Marshal.PtrToStringAnsi(DialogOpenFolderPanel(
+                title,
+                directory,
+                multiselect));
+            return paths.Split((char)28);
+        }
+
+        public void OpenFolderPanelAsync(string title, string directory, bool multiselect, Action<string[]> cb) {
+            _openFolderCb = cb;
+            DialogOpenFolderPanelAsync(
+                title,
+                directory,
+                multiselect,
+                openFolderCb);
+        }
+
+        public string SaveFilePanel(string title, string directory, string defaultName, ExtensionFilter[] extensions) {
+            return Marshal.PtrToStringAnsi(DialogSaveFilePanel(
+                title,
+                directory,
+                defaultName,
+                GetFilterFromFileExtensionList(extensions)));
+        }
+
+        public void SaveFilePanelAsync(string title, string directory, string defaultName, ExtensionFilter[] extensions, Action<string> cb) {
+            _saveFileCb = cb;
+            DialogSaveFilePanelAsync(
+                title,
+                directory,
+                defaultName,
+                GetFilterFromFileExtensionList(extensions),
+                saveFileCb);
+        }
+
+        private static string GetFilterFromFileExtensionList(ExtensionFilter[] extensions) {
+            if (extensions == null) {
+                return "";
+            }
+
+            var filterString = "";
+            foreach (var filter in extensions) {
+                filterString += filter.Name + ";";
+
+                foreach (var ext in filter.Extensions) {
+                    filterString += ext + ",";
+                }
+
+                filterString = filterString.Remove(filterString.Length - 1);
+                filterString += "|";
+            }
+            filterString = filterString.Remove(filterString.Length - 1);
+            return filterString;
+        }
+    }
+}
+
+#endif

+ 12 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowserMac.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: bcb49ddb0ed5644fda9c3b055cafa27a
+timeCreated: 1483902788
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 137 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowserWindows.cs

@@ -0,0 +1,137 @@
+#if UNITY_STANDALONE_WIN
+
+using System;
+using System.IO;
+using System.Windows.Forms;
+using System.Runtime.InteropServices;
+using Ookii.Dialogs;
+
+namespace SFB {
+    // For fullscreen support
+    // - WindowWrapper class and GetActiveWindow() are required for modal file dialog.
+    // - "PlayerSettings/Visible In Background" should be enabled, otherwise when file dialog opened app window minimizes automatically.
+
+    public class WindowWrapper : IWin32Window {
+        private IntPtr _hwnd;
+        public WindowWrapper(IntPtr handle) { _hwnd = handle; }
+        public IntPtr Handle { get { return _hwnd; } }
+    }
+
+    public class StandaloneFileBrowserWindows : IStandaloneFileBrowser {
+        [DllImport("user32.dll")]
+        private static extern IntPtr GetActiveWindow();
+
+        public string[] OpenFilePanel(string title, string directory, ExtensionFilter[] extensions, bool multiselect) {
+            var fd = new VistaOpenFileDialog();
+            fd.Title = title;
+            if (extensions != null) {
+                fd.Filter = GetFilterFromFileExtensionList(extensions);
+                fd.FilterIndex = 1;
+            }
+            else {
+                fd.Filter = string.Empty;
+            }
+            fd.Multiselect = multiselect;
+            if (!string.IsNullOrEmpty(directory)) {
+                fd.FileName = GetDirectoryPath(directory);
+            }
+            var res = fd.ShowDialog(new WindowWrapper(GetActiveWindow()));
+            var filenames = res == DialogResult.OK ? fd.FileNames : new string[0];
+            fd.Dispose();
+            return filenames;
+        }
+
+        public void OpenFilePanelAsync(string title, string directory, ExtensionFilter[] extensions, bool multiselect, Action<string[]> cb) {
+            cb.Invoke(OpenFilePanel(title, directory, extensions, multiselect));
+        }
+
+        public string[] OpenFolderPanel(string title, string directory, bool multiselect) {
+            var fd = new VistaFolderBrowserDialog();
+            fd.Description = title;
+            if (!string.IsNullOrEmpty(directory)) {
+                fd.SelectedPath = GetDirectoryPath(directory);
+            }
+            var res = fd.ShowDialog(new WindowWrapper(GetActiveWindow()));
+            var filenames = res == DialogResult.OK ? new []{ fd.SelectedPath } : new string[0];
+            fd.Dispose();
+            return filenames;
+        }
+
+        public void OpenFolderPanelAsync(string title, string directory, bool multiselect, Action<string[]> cb) {
+            cb.Invoke(OpenFolderPanel(title, directory, multiselect));
+        }
+
+        public string SaveFilePanel(string title, string directory, string defaultName, ExtensionFilter[] extensions) {
+            var fd = new VistaSaveFileDialog();
+            fd.Title = title;
+
+            var finalFilename = "";
+
+            if (!string.IsNullOrEmpty(directory)) {
+                finalFilename = GetDirectoryPath(directory);
+            }
+
+            if (!string.IsNullOrEmpty(defaultName)) {
+                finalFilename += defaultName;
+            }
+
+            fd.FileName = finalFilename;
+            if (extensions != null) {
+                fd.Filter = GetFilterFromFileExtensionList(extensions);
+                fd.FilterIndex = 1;
+                fd.DefaultExt = extensions[0].Extensions[0];
+                fd.AddExtension = true;
+            }
+            else {
+                fd.DefaultExt = string.Empty;
+                fd.Filter = string.Empty;
+                fd.AddExtension = false;
+            }
+            var res = fd.ShowDialog(new WindowWrapper(GetActiveWindow()));
+            var filename = res == DialogResult.OK ? fd.FileName : "";
+            fd.Dispose();
+            return filename;
+        }
+
+        public void SaveFilePanelAsync(string title, string directory, string defaultName, ExtensionFilter[] extensions, Action<string> cb) {
+            cb.Invoke(SaveFilePanel(title, directory, defaultName, extensions));
+        }
+
+        // .NET Framework FileDialog Filter format
+        // https://msdn.microsoft.com/en-us/library/microsoft.win32.filedialog.filter
+        private static string GetFilterFromFileExtensionList(ExtensionFilter[] extensions) {
+            var filterString = "";
+            foreach (var filter in extensions) {
+                filterString += filter.Name + "(";
+
+                foreach (var ext in filter.Extensions) {
+                    filterString += "*." + ext + ",";
+                }
+
+                filterString = filterString.Remove(filterString.Length - 1);
+                filterString += ") |";
+
+                foreach (var ext in filter.Extensions) {
+                    filterString += "*." + ext + "; ";
+                }
+
+                filterString += "|";
+            }
+            filterString = filterString.Remove(filterString.Length - 1);
+            return filterString;
+        }
+
+        private static string GetDirectoryPath(string directory) {
+            var directoryPath = Path.GetFullPath(directory);
+            if (!directoryPath.EndsWith("\\")) {
+                directoryPath += "\\";
+            }
+            if (Path.GetPathRoot(directoryPath) == directoryPath) {
+                return directory;
+            }
+            return Path.GetDirectoryName(directoryPath) + Path.DirectorySeparatorChar;
+        }
+    }
+}
+
+#endif

+ 12 - 0
Framework/Toolkits/FileKits/Plugins/StandaloneFileBrowser/StandaloneFileBrowserWindows.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 194e247414a78461d83ae606c1b96917
+timeCreated: 1483902788
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 1
OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNamePanel.cs

@@ -59,7 +59,7 @@ namespace QFramework
 
 		private void InitilOptions(QuestionInfo questionInfo)
         {
-			var optionArr = questionInfo.Options.Split('£»');
+			var optionArr = questionInfo.Options.Split(';');
 
             for (int i = 0; i < optionArr.Length; i++)
             {

+ 67 - 0
OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNameSetPanel.Designer.cs

@@ -0,0 +1,67 @@
+using System;
+using UnityEngine;
+using UnityEngine.UI;
+using QFramework;
+
+namespace QFramework
+{
+	// Generate Id:82db13d8-8a85-45da-b65d-af239d515e26
+	public partial class ImageAndTextNameSetPanel
+	{
+		public const string Name = "ImageAndTextNameSetPanel";
+		
+		[SerializeField]
+		public UnityEngine.UI.Text QuestionType;
+		[SerializeField]
+		public UnityEngine.UI.Button AddOptionBtn;
+		[SerializeField]
+		public ImageOptionSetItem OptionSetItem;
+		[SerializeField]
+		public UnityEngine.UI.Text PopText;
+		[SerializeField]
+		public UnityEngine.UI.Text OptionConent;
+		[SerializeField]
+		public UnityEngine.UI.Button CloseBtn;
+		[SerializeField]
+		public UnityEngine.UI.Button PreviousBtn;
+		[SerializeField]
+		public UnityEngine.UI.Button NextBtn;
+		
+		private ImageAndTextNameSetPanelData mPrivateData = null;
+		
+		protected override void ClearUIComponents()
+		{
+			QuestionType = null;
+			AddOptionBtn = null;
+			OptionSetItem = null;
+			PopText = null;
+			OptionConent = null;
+			CloseBtn = null;
+			PreviousBtn = null;
+			NextBtn = null;
+			
+			mData = null;
+		}
+		
+		public ImageAndTextNameSetPanelData Data
+		{
+			get
+			{
+				return mData;
+			}
+		}
+		
+		ImageAndTextNameSetPanelData mData
+		{
+			get
+			{
+				return mPrivateData ?? (mPrivateData = new ImageAndTextNameSetPanelData());
+			}
+			set
+			{
+				mUIData = value;
+				mPrivateData = value;
+			}
+		}
+	}
+}

+ 11 - 0
OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNameSetPanel.Designer.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: efba3d5c3d0129741acc95e6d444382a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 136 - 0
OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNameSetPanel.cs

@@ -0,0 +1,136 @@
+using UnityEngine;
+using UnityEngine.UI;
+using QFramework;
+using ChivaXR;
+using System.Collections.Generic;
+using System.Collections;
+
+namespace QFramework
+{
+	public class ImageAndTextNameSetPanelData : UIPanelData
+	{
+	}
+	public partial class ImageAndTextNameSetPanel : UIPanel
+	{
+		private List<ImageOptionSetItem> m_OptionSetItems = new List<ImageOptionSetItem>();
+		
+		protected override void OnInit(IUIData uiData = null)
+		{
+			mData = uiData as ImageAndTextNameSetPanelData ?? new ImageAndTextNameSetPanelData();
+
+			AddOptionBtn.onClick.AddListener(OnAddOptionBtnClick);
+
+			CloseBtn.onClick.AddListener(OnCloseBtnClick);
+
+			NextBtn.onClick.AddListener(OnNextBtnClick);
+
+			PreviousBtn.onClick.AddListener(OnPreviousBtnClick);
+		}
+		
+		protected override void OnOpen(IUIData uiData = null)
+		{
+			OnInitData();
+		}
+		
+		protected override void OnShow()
+		{
+		}
+		
+		protected override void OnHide()
+		{
+		}
+		
+		protected override void OnClose()
+		{
+		}
+
+		private void OnInitData()
+        {
+			ClearImageOptionSetItem();
+
+			QuestionProxy questionProxy = DAL.Instance.Get<QuestionProxy>();
+
+			QuestionInfo questionInfo = questionProxy.GetQuestionInfoByStepId(ProcessManagement.Instance.currentStepID);
+
+			if (questionInfo.QuestionType != "图文") return;
+
+			string[] tmpOptions = questionInfo.Options.Split(';');
+
+            foreach (var item in tmpOptions)
+            {
+				ImageOptionSetItem optionSetItem = AddImageOptionSetItem();
+				optionSetItem.InitData(item);
+			}
+        }
+
+		/// <summary>
+		/// 添加按钮点击
+		/// </summary>
+		private void OnAddOptionBtnClick()
+        {
+			ImageOptionSetItem tmpImageOptionSetItem  = AddImageOptionSetItem();
+		}
+
+		private ImageOptionSetItem AddImageOptionSetItem()
+        {
+			GameObject tmpOptionSetItemObj = Instantiate(OptionSetItem.gameObject, OptionConent.transform);
+
+			ImageOptionSetItem tmpImageOptionSetItem = tmpOptionSetItemObj.GetComponent<ImageOptionSetItem>();
+
+			m_OptionSetItems.Add(tmpImageOptionSetItem);
+
+			tmpOptionSetItemObj.SetActive(true);
+
+			return tmpImageOptionSetItem;
+		}
+
+		/// <summary>
+		/// 下一步按钮点击
+		/// </summary>
+		private void OnNextBtnClick()
+        {
+			ProcessManagement.Instance.JumpProcessState(ProcessManagement.Instance.currentStepID + 1);
+			ProcessManagement.Instance.ActiveCurrentProcess();
+
+			OnInitData();
+		}
+
+		/// <summary>
+		/// 上一步按钮点击
+		/// </summary>
+		private void OnPreviousBtnClick()
+        {
+			ProcessManagement.Instance.JumpProcessState(ProcessManagement.Instance.currentStepID - 1);
+			ProcessManagement.Instance.ActiveCurrentProcess();
+
+			OnInitData();
+		}
+
+		/// <summary>
+		/// 关闭按钮点击
+		/// </summary>
+		private void OnCloseBtnClick()
+		{
+			CloseSelf();
+		}
+
+		private void ClearImageOptionSetItem()
+        {
+            for (int i = 0; i < m_OptionSetItems.Count; i++)
+            {
+				Destroy(m_OptionSetItems[i].gameObject);
+            }
+
+			m_OptionSetItems.Clear();
+        }
+
+		IEnumerator ShowPopText(string popText)
+		{
+			PopText.text = popText;
+
+			yield return new WaitForSeconds(2);
+
+			PopText.text = string.Empty;
+		}
+	}
+}

+ 11 - 0
OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNameSetPanel.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9cd9e3c8db7d3084d86042149cd78f42
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNameSetPanel.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f13dfd6a1458982409c559aedfc972c4
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 31 - 0
OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNameSetPanel/ImageOptionSetItem.Designer.cs

@@ -0,0 +1,31 @@
+/****************************************************************************
+ * 2025.6 LXD
+ ****************************************************************************/
+
+using UnityEngine;
+using UnityEngine.UI;
+using QFramework;
+
+namespace QFramework
+{
+	public partial class ImageOptionSetItem
+	{
+		[SerializeField] public UnityEngine.UI.Image NormalState;
+		[SerializeField] public UnityEngine.UI.Image HighterState;
+		[SerializeField] public UnityEngine.UI.Button ClickBtn;
+		[SerializeField] public UnityEngine.UI.InputField OptionInputField;
+
+		public void Clear()
+		{
+			NormalState = null;
+			HighterState = null;
+			ClickBtn = null;
+			OptionInputField = null;
+		}
+
+		public override string ComponentName
+		{
+			get { return "ImageOptionSetItem";}
+		}
+	}
+}

+ 11 - 0
OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNameSetPanel/ImageOptionSetItem.Designer.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a750f7b8b70f6864fb52e172c49713ab
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 95 - 0
OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNameSetPanel/ImageOptionSetItem.cs

@@ -0,0 +1,95 @@
+/****************************************************************************
+ * 2025.6 LXD
+ ****************************************************************************/
+
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+using QFramework;
+using SFB;
+using System.IO;
+
+namespace QFramework
+{
+	public partial class ImageOptionSetItem : UIElement
+	{
+        private void Start()
+        {
+			ClickBtn.onClick.AddListener(OnClickBtnClick);
+        }
+
+        public void InitData(string option)
+        {
+            if (!string.IsNullOrEmpty(option))
+            {
+				var arr = option.Split('_');
+
+				string tmpPicturePath = "Config/题库图文图片/" + arr[1];
+
+				ClickBtn.GetComponent<Image>().sprite = LoadHelper.LoadSpriteFromStreamming(tmpPicturePath);
+
+				var arr1 = arr[0].Split('、');
+
+				OptionInputField.text = arr1[1];
+			}
+			else
+            {
+
+            }
+        }
+
+		protected override void OnBeforeDestroy()
+		{
+		}
+
+		private void OnClickBtnClick()
+        {
+            ExtensionFilter extensionFilter = new ExtensionFilter("jpg", "png", "JPG", "PNG", "jpeg", "JPEG");
+
+			List<ExtensionFilter> extensionFilters = new List<ExtensionFilter>();
+
+			extensionFilters.Add(extensionFilter);
+
+			string[] tmpFilePaths = StandaloneFileBrowser.OpenFilePanel("选择图片", "", extensionFilters.ToArray(), true);
+
+			CheckImageNameNotExist(tmpFilePaths[0].GetFileName());
+
+            if (CheckImageNameNotExist(tmpFilePaths[0].GetFileName()))
+            {
+
+            }
+
+            Debug.LogError(tmpFilePaths[0].Contains(Application.streamingAssetsPath));
+			Debug.LogError(tmpFilePaths[0].GetFileName());
+
+			//File.Copy(tmpFilePaths[0],Application.streamingAssetsPath + "/Config/题库图文图片/" + tmpFilePaths[0].GetFileName() + ".png");
+		}
+
+		/// <summary>
+		/// 检查图片名称不存在
+		/// </summary>
+		/// <param name="fileName"></param>
+		/// <returns></returns>
+	    private bool CheckImageNameNotExist(string fileName)
+        {
+			string path = Application.streamingAssetsPath + "/Config/题库图文图片";
+
+			DirectoryInfo directoryInfo = new DirectoryInfo(path);
+
+            foreach (var file in directoryInfo.GetFiles())
+            {
+                if (file.Name.Contains(fileName))
+                {
+					Debug.LogError(fileName + ":" + file.Name);
+
+					return false;
+                }
+            }
+
+			return true;
+        }
+
+
+	}
+}

+ 11 - 0
OperationUIFrame/OperationUIFrameV2/Scripts/UI/ImageAndTextNameSetPanel/ImageOptionSetItem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1ac128830e4075545b1b38c82f5e0650
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 13 - 1
OperationUIFrame/OperationUIFrameV2/Scripts/UI/PC_OperatePanel.cs

@@ -365,12 +365,24 @@ namespace QFramework
             {
                 if (UIKit.GetPanel<QuestionSetPanel>() != null) return;
 
-                UIKit.OpenPanel<QuestionSetPanel>(new QuestionSetPanelData());
+                if (UIKit.GetPanel<ImageAndTextNameSetPanel>() != null)
+                {
+                    UIKit.ClosePanel<ImageAndTextNameSetPanel>();
+                }
+
+                UIKit.OpenPanel<QuestionSetPanel>(UILevel.PopUI,new QuestionSetPanelData());
             }
             //题库设置图文
             else if (Input.GetKey(KeyCode.LeftShift) && Input.GetKey(KeyCode.F3))
             {
+                if (UIKit.GetPanel<ImageAndTextNameSetPanel>() != null) return;
+
+                if (UIKit.GetPanel<QuestionSetPanel>() != null)
+                {
+                    UIKit.ClosePanel<QuestionSetPanel>();
+                }
 
+                UIKit.OpenPanel<ImageAndTextNameSetPanel>(UILevel.PopUI);
             }
         }
     }

+ 15 - 6
OperationUIFrame/OperationUIFrameV2/Scripts/UI/QuestionPanel.cs

@@ -31,18 +31,18 @@ namespace QFramework
         /// </summary>
         public string m_CurrentQuestionType;
 
-		
 		protected override void OnInit(IUIData uiData = null)
 		{
-			mData = uiData as QuestionPanelData ?? new QuestionPanelData();
-			
+			mData = uiData as QuestionPanelData ?? new QuestionPanelData();	
 		}
 		
 		protected override void OnOpen(IUIData uiData = null)
 		{
 			mData = uiData as QuestionPanelData ?? new QuestionPanelData();
 
-			QuestionType.text = mData.questionInfo.QuestionType;
+            ClearAll();
+
+            QuestionType.text = mData.questionInfo.QuestionType;
 			Topic.text = mData.questionInfo.Topic;
 
             ConfirmBtn.onClick.AddListener(OnConfirmBtnClick);
@@ -72,7 +72,7 @@ namespace QFramework
 
             if (!string.IsNullOrEmpty(questionInfo.Options))
             {
-                var optionArr = questionInfo.Options.Split('£»');
+                var optionArr = questionInfo.Options.Split(';');
 
                 for (int i = 0; i < optionArr.Length; i++)
                 {
@@ -170,7 +170,6 @@ namespace QFramework
             }
         }
 
-
         private void ShowHighter() 
         {
             foreach (var item in m_CurrentAllToggle)
@@ -188,5 +187,15 @@ namespace QFramework
                 }
             }
         }
+
+        private void ClearAll()
+        {
+            for (int i = 0; i < m_CurrentAllToggle.Count; i++)
+            {
+                Destroy(m_CurrentAllToggle[i].gameObject);
+                m_CurrentAllToggle.Clear();
+                m_CurrentRightToggle.Clear();
+            }
+        }
     }
 }

+ 46 - 33
OperationUIFrame/OperationUIFrameV2/Scripts/UI/QuestionSetPanel.cs

@@ -51,6 +51,7 @@ namespace QFramework
 
         protected override void OnHide()
         {
+
         }
 
         protected override void OnClose()
@@ -66,6 +67,8 @@ namespace QFramework
 
             if (tmpQuestionInfo != null)
             {
+                if (tmpQuestionInfo.QuestionType == "图文") return;
+
                 //设置题目类型
                 OptionTypeDropdown.value = OptionTypeDropdown.options.IndexOf(OptionTypeDropdown.options.Find(t => t.text == tmpQuestionInfo.QuestionType));
 
@@ -81,27 +84,24 @@ namespace QFramework
                     for (int i = 0; i < optionArr.Length; i++)
                     {
                         OptionSetItem optionSetItem = AddOptionSetItem(-1, optionArr[i]);
-
-                        if (tmpQuestionInfo.QuestionType == "单选")
-                        {
-                            optionSetItem.GetComponent<Toggle>().group = OptionConent.GetComponent<ToggleGroup>();
-                        }
-
-                        if (tmpQuestionInfo.Answer.Contains(optionArr[i].Split('、')[0]))
-                        {
-                            optionSetItem.GetComponent<Toggle>().isOn = true;
-                        }
+                        
+                        //根据单选或者多选设置是否允许多选或单选
+                        if (tmpQuestionInfo.QuestionType == "单选") optionSetItem.GetComponent<Toggle>().group = OptionConent.GetComponent<ToggleGroup>();
+                        //设置正确选项
+                        if (tmpQuestionInfo.Answer.Contains(optionArr[i].Split('、')[0])) optionSetItem.GetComponent<Toggle>().isOn = true;
                     }
-                }else
+                }
+                else if (tmpQuestionInfo.QuestionType == "判断")
                 {
-                    if (tmpQuestionInfo.Answer == "对")
-                    {
-                        optionSetItems[0].GetComponent<Toggle>().isOn = true;
-                    }
-                    else
-                    {
-                        optionSetItems[1].GetComponent<Toggle>().isOn = true;
-                    }
+                    AddOptionSetItem(-1,"对");
+                    AddOptionSetItem(-1, "错");
+
+                    if (tmpQuestionInfo.Answer == "对") optionSetItems[0].GetComponent<Toggle>().isOn = true;
+                    else optionSetItems[1].GetComponent<Toggle>().isOn = true;
+                }
+                else
+                {
+                    
                 }
             }
         }
@@ -134,12 +134,11 @@ namespace QFramework
         /// <param name="option"></param>
         private void OnOptionTypeDropdownClick(int option)
         {
-            ClearAllData();
+            //ClearAllData();
 
             if (OptionTypeDropdown.captionText.text == "多选")
             {
                 OptionConent.GetComponent<ToggleGroup>().allowSwitchOff = true;
-
                 foreach (var item in optionSetItems) item.m_Toggle.group = null;
 
                 AddOptionBtn.gameObject.SetActive(true);
@@ -157,13 +156,17 @@ namespace QFramework
                 OptionConent.GetComponent<ToggleGroup>().allowSwitchOff = false;
                 AddOptionBtn.gameObject.SetActive(false);
             }
-            else
+            else if (OptionTypeDropdown.captionText.text == "单选")
             {
                 foreach (var item in optionSetItems) item.m_Toggle.group = OptionConent.GetComponent<ToggleGroup>();
 
                 OptionConent.GetComponent<ToggleGroup>().allowSwitchOff = false;
                 AddOptionBtn.gameObject.SetActive(true);
             }
+            else
+            {
+                Debug.LogError("选择的为None");
+            }
 
             LayoutRebuilder.ForceRebuildLayoutImmediate(OptionConent.GetComponent<RectTransform>());
         }
@@ -175,7 +178,9 @@ namespace QFramework
         {
             if (OnSaveData())
             {
+                OptionTypeDropdown.value = 0;
                 ClearAllData();
+               
                 ProcessManagement.Instance.JumpProcessState(ProcessManagement.Instance.currentStepID + 1);
                 ProcessManagement.Instance.ActiveCurrentProcess();
                 InitQuesiongPanelData();
@@ -189,7 +194,9 @@ namespace QFramework
         {
             if (OnSaveData())
             {
+                OptionTypeDropdown.value = 0;
                 ClearAllData();
+               
                 ProcessManagement.Instance.JumpProcessState(ProcessManagement.Instance.currentStepID - 1);
                 ProcessManagement.Instance.ActiveCurrentProcess();
                 InitQuesiongPanelData();
@@ -206,10 +213,9 @@ namespace QFramework
 
         private void ClearAllData()
         {
-            for (int i = 0; i < optionSetItems.Count; i++)
-            {
-                Destroy(optionSetItems[i].gameObject);
-            }
+            TopicInputField.text = string.Empty;
+
+            for (int i = 0; i < optionSetItems.Count; i++) Destroy(optionSetItems[i].gameObject);
 
             optionSetItems.Clear();
         }
@@ -219,17 +225,24 @@ namespace QFramework
         /// </summary>
         private bool OnSaveData()
         {
-            QuestionInfo questionInfo = GetPanelQuestionSetInfo();
-
-            if (string.IsNullOrEmpty(questionInfo.Answer))
+            if (OptionTypeDropdown.value == 0)
             {
-                StartCoroutine(ShowWrongMsg("选项不能为空"));
-                return false;
+                return true;
             }
+            else
+            {
+                QuestionInfo questionInfo = GetPanelQuestionSetInfo();
 
-            DAL.Instance.Get<QuestionProxy>().SetQuestionInfo(questionInfo);
+                if (string.IsNullOrEmpty(questionInfo.Answer))
+                {
+                    StartCoroutine(ShowWrongMsg("选项不能为空"));
+                    return false;
+                }
+
+                DAL.Instance.Get<QuestionProxy>().SetQuestionInfo(questionInfo);
 
-            return true;
+                return true;
+            }
         }
 
         /// <summary>

+ 3244 - 0
OperationUIFrame/OperationUIFrameV2/UIPrefabs/ImageAndTextNameSetPanel.prefab

@@ -0,0 +1,3244 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &492046353783576208
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5851673620025243015}
+  - component: {fileID: 2922176095712537274}
+  - component: {fileID: 3375892431681528086}
+  - component: {fileID: 7649629565543020298}
+  m_Layer: 5
+  m_Name: HighterState
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!224 &5851673620025243015
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 492046353783576208}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 5408656540607738250}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 100, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &2922176095712537274
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 492046353783576208}
+  m_CullTransparentMesh: 0
+--- !u!114 &3375892431681528086
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 492046353783576208}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: cf1e350d7614b424a8235137e8ea2ee9, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &7649629565543020298
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 492046353783576208}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0d51f3a7c41ab0346b49ae50d456bece, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  MarkType: 0
+  CustomComponentName: HighterState
+  ComponentGeneratePath: 
+  CustomComment: 
+  mComponentName: UnityEngine.UI.Image
+--- !u!1 &867393572105533561
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4765644194998599705}
+  - component: {fileID: 8169523849573824586}
+  - component: {fileID: 128628773149661528}
+  - component: {fileID: 8812825605807683855}
+  m_Layer: 5
+  m_Name: ImageAndTextNameSetPanel
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4765644194998599705
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 867393572105533561}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 1850820072637572280}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &8169523849573824586
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 867393572105533561}
+  m_CullTransparentMesh: 0
+--- !u!114 &128628773149661528
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 867393572105533561}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0, g: 0, b: 0, a: 0.23529412}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &8812825605807683855
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 867393572105533561}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 9cd9e3c8db7d3084d86042149cd78f42, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  QuestionType: {fileID: 2822490782175563283}
+  AddOptionBtn: {fileID: 1373430536792865129}
+  OptionSetItem: {fileID: 5309687232327402713}
+  PopText: {fileID: 2245632877009878966}
+  OptionConent: {fileID: 7266822847136128873}
+  CloseBtn: {fileID: 4966503460306782114}
+  PreviousBtn: {fileID: 1373430536068404683}
+  NextBtn: {fileID: 1373430535272536738}
+--- !u!1 &966627267132530113
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4798770983082674877}
+  - component: {fileID: 616453745740888687}
+  - component: {fileID: 689674814601537659}
+  m_Layer: 5
+  m_Name: RightLine
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4798770983082674877
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 966627267132530113}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 3487690163392765054}
+  - {fileID: 2881078223051866225}
+  m_Father: {fileID: 1850820072637572280}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 1, y: 0.5}
+  m_AnchorMax: {x: 1, y: 0.5}
+  m_AnchoredPosition: {x: -4.950012, y: 6.9}
+  m_SizeDelta: {x: 2, y: 34}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &616453745740888687
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 966627267132530113}
+  m_CullTransparentMesh: 0
+--- !u!114 &689674814601537659
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 966627267132530113}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 87a1cbce6a3a8c642b3d810b20d80a2d, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &1373430535272536741
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1373430535272536740}
+  - component: {fileID: 1373430535272536736}
+  - component: {fileID: 1373430535272536737}
+  - component: {fileID: 1373430535272536738}
+  - component: {fileID: 1373430535272536739}
+  m_Layer: 5
+  m_Name: NextBtn
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1373430535272536740
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430535272536741}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 1373430537038873683}
+  m_Father: {fileID: 3387281992126609645}
+  m_RootOrder: 3
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -70, y: -0}
+  m_SizeDelta: {x: 129, y: 36}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1373430535272536736
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430535272536741}
+  m_CullTransparentMesh: 0
+--- !u!114 &1373430535272536737
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430535272536741}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 3bab070db1867c546a7ce024ec4e127e, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &1373430535272536738
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430535272536741}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 2
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 21300000, guid: ed74c9d1b95b3504cb1edbc1d08c2f7a,
+      type: 3}
+    m_PressedSprite: {fileID: 21300000, guid: b476aa83559d90a4cbd75518b8ffaafa, type: 3}
+    m_SelectedSprite: {fileID: 21300000, guid: 3bab070db1867c546a7ce024ec4e127e, type: 3}
+    m_DisabledSprite: {fileID: 21300000, guid: 3bab070db1867c546a7ce024ec4e127e, type: 3}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 1373430535272536737}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!114 &1373430535272536739
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430535272536741}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0d51f3a7c41ab0346b49ae50d456bece, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  MarkType: 0
+  CustomComponentName: ConfirmBtn
+  ComponentGeneratePath: 
+  CustomComment: 
+  mComponentName: UnityEngine.UI.Button
+--- !u!1 &1373430535292931370
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1373430535292931369}
+  - component: {fileID: 1373430535292931367}
+  - component: {fileID: 1373430535292931368}
+  m_Layer: 5
+  m_Name: Text
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1373430535292931369
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430535292931370}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 1373430536792865131}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 160, y: 30}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1373430535292931367
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430535292931370}
+  m_CullTransparentMesh: 0
+--- !u!114 &1373430535292931368
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430535292931370}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: 40655297447ed2e46a2d4b5c829580da, type: 3}
+    m_FontSize: 16
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 1
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u6DFB\u52A0\u9009\u9879"
+--- !u!1 &1373430535892664427
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1373430535892664426}
+  - component: {fileID: 1373430535892664423}
+  - component: {fileID: 1373430535892664424}
+  - component: {fileID: 1373430535892664425}
+  - component: {fileID: 6059809674254828597}
+  m_Layer: 5
+  m_Name: OptionInputField
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1373430535892664426
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430535892664427}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 1373430537009212627}
+  - {fileID: 1373430537085029642}
+  m_Father: {fileID: 5408656540607738250}
+  m_RootOrder: 3
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: -0.79999924, y: -76.7}
+  m_SizeDelta: {x: 27.942963, y: -68.39041}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1373430535892664423
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430535892664427}
+  m_CullTransparentMesh: 0
+--- !u!114 &1373430535892664424
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430535892664427}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 5471ddbc71f8fdc44a7d55a2db9e1422, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &1373430535892664425
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430535892664427}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 1373430535892664424}
+  m_TextComponent: {fileID: 1373430537085029641}
+  m_Placeholder: {fileID: 1373430537009212626}
+  m_ContentType: 0
+  m_InputType: 0
+  m_AsteriskChar: 42
+  m_KeyboardType: 0
+  m_LineType: 0
+  m_HideMobileInput: 0
+  m_CharacterValidation: 0
+  m_CharacterLimit: 0
+  m_OnEndEdit:
+    m_PersistentCalls:
+      m_Calls: []
+  m_OnValueChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+  m_CustomCaretColor: 0
+  m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
+  m_Text: 
+  m_CaretBlinkRate: 0.85
+  m_CaretWidth: 1
+  m_ReadOnly: 0
+  m_ShouldActivateOnSelect: 1
+--- !u!114 &6059809674254828597
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430535892664427}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0d51f3a7c41ab0346b49ae50d456bece, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  MarkType: 0
+  CustomComponentName: OptionInputField
+  ComponentGeneratePath: 
+  CustomComment: 
+  mComponentName: UnityEngine.UI.InputField
+--- !u!1 &1373430536068404686
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1373430536068404685}
+  - component: {fileID: 1373430536068404681}
+  - component: {fileID: 1373430536068404682}
+  - component: {fileID: 1373430536068404683}
+  - component: {fileID: 1373430536068404684}
+  m_Layer: 5
+  m_Name: PreviousBtn
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1373430536068404685
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430536068404686}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 1373430536849076962}
+  m_Father: {fileID: 3387281992126609645}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -224, y: -0}
+  m_SizeDelta: {x: 129, y: 36}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1373430536068404681
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430536068404686}
+  m_CullTransparentMesh: 0
+--- !u!114 &1373430536068404682
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430536068404686}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 3bab070db1867c546a7ce024ec4e127e, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &1373430536068404683
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430536068404686}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 2
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 21300000, guid: ed74c9d1b95b3504cb1edbc1d08c2f7a,
+      type: 3}
+    m_PressedSprite: {fileID: 21300000, guid: b476aa83559d90a4cbd75518b8ffaafa, type: 3}
+    m_SelectedSprite: {fileID: 21300000, guid: 3bab070db1867c546a7ce024ec4e127e, type: 3}
+    m_DisabledSprite: {fileID: 21300000, guid: 3bab070db1867c546a7ce024ec4e127e, type: 3}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 1373430536068404682}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!114 &1373430536068404684
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430536068404686}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0d51f3a7c41ab0346b49ae50d456bece, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  MarkType: 0
+  CustomComponentName: ConfirmBtn
+  ComponentGeneratePath: 
+  CustomComment: 
+  mComponentName: UnityEngine.UI.Button
+--- !u!1 &1373430536792865132
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1373430536792865131}
+  - component: {fileID: 1373430536792865127}
+  - component: {fileID: 1373430536792865128}
+  - component: {fileID: 1373430536792865129}
+  - component: {fileID: 1373430536792865130}
+  m_Layer: 5
+  m_Name: AddOptionBtn
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1373430536792865131
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430536792865132}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 1373430535292931369}
+  m_Father: {fileID: 2309547912209729829}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -99, y: -6.1}
+  m_SizeDelta: {x: 129, y: 36}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1373430536792865127
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430536792865132}
+  m_CullTransparentMesh: 0
+--- !u!114 &1373430536792865128
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430536792865132}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 3bab070db1867c546a7ce024ec4e127e, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &1373430536792865129
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430536792865132}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 2
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 21300000, guid: ed74c9d1b95b3504cb1edbc1d08c2f7a,
+      type: 3}
+    m_PressedSprite: {fileID: 21300000, guid: b476aa83559d90a4cbd75518b8ffaafa, type: 3}
+    m_SelectedSprite: {fileID: 21300000, guid: 3bab070db1867c546a7ce024ec4e127e, type: 3}
+    m_DisabledSprite: {fileID: 21300000, guid: 3bab070db1867c546a7ce024ec4e127e, type: 3}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 1373430536792865128}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!114 &1373430536792865130
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430536792865132}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0d51f3a7c41ab0346b49ae50d456bece, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  MarkType: 0
+  CustomComponentName: ConfirmBtn
+  ComponentGeneratePath: 
+  CustomComment: 
+  mComponentName: UnityEngine.UI.Button
+--- !u!1 &1373430536849076963
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1373430536849076962}
+  - component: {fileID: 1373430536849076960}
+  - component: {fileID: 1373430536849076961}
+  m_Layer: 5
+  m_Name: Text
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1373430536849076962
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430536849076963}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 1373430536068404685}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 160, y: 30}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1373430536849076960
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430536849076963}
+  m_CullTransparentMesh: 0
+--- !u!114 &1373430536849076961
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430536849076963}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: 40655297447ed2e46a2d4b5c829580da, type: 3}
+    m_FontSize: 16
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 1
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u4FDD\u5B58\u5E76\u4E0A\u4E00\u6B65"
+--- !u!1 &1373430537009212628
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1373430537009212627}
+  - component: {fileID: 1373430537009212625}
+  - component: {fileID: 1373430537009212626}
+  m_Layer: 5
+  m_Name: Placeholder
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1373430537009212627
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430537009212628}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 1373430535892664426}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: -0.5}
+  m_SizeDelta: {x: -20, y: -13}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1373430537009212625
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430537009212628}
+  m_CullTransparentMesh: 0
+--- !u!114 &1373430537009212626
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430537009212628}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 14
+    m_FontStyle: 2
+    m_BestFit: 0
+    m_MinSize: 10
+    m_MaxSize: 40
+    m_Alignment: 3
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u9009\u9879\u8BF4\u660E..."
+--- !u!1 &1373430537038873684
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1373430537038873683}
+  - component: {fileID: 1373430537038873681}
+  - component: {fileID: 1373430537038873682}
+  m_Layer: 5
+  m_Name: Text
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1373430537038873683
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430537038873684}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 1373430535272536740}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 160, y: 30}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1373430537038873681
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430537038873684}
+  m_CullTransparentMesh: 0
+--- !u!114 &1373430537038873682
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430537038873684}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: 40655297447ed2e46a2d4b5c829580da, type: 3}
+    m_FontSize: 16
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 1
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u4FDD\u5B58\u5E76\u4E0B\u4E00\u6B65"
+--- !u!1 &1373430537085029643
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1373430537085029642}
+  - component: {fileID: 1373430537085029640}
+  - component: {fileID: 1373430537085029641}
+  m_Layer: 5
+  m_Name: Text
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1373430537085029642
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430537085029643}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 1373430535892664426}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: -0.5}
+  m_SizeDelta: {x: -20, y: -13}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1373430537085029640
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430537085029643}
+  m_CullTransparentMesh: 0
+--- !u!114 &1373430537085029641
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1373430537085029643}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 14
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 10
+    m_MaxSize: 40
+    m_Alignment: 3
+    m_AlignByGeometry: 0
+    m_RichText: 0
+    m_HorizontalOverflow: 1
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: 
+--- !u!1 &2123213957762623107
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4162837587952825559}
+  - component: {fileID: 5335781652713960600}
+  - component: {fileID: 7187576464314000154}
+  m_Layer: 5
+  m_Name: Text
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4162837587952825559
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2123213957762623107}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 8648060767402295952}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 160, y: 30}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &5335781652713960600
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2123213957762623107}
+  m_CullTransparentMesh: 0
+--- !u!114 &7187576464314000154
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2123213957762623107}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: 40655297447ed2e46a2d4b5c829580da, type: 3}
+    m_FontSize: 16
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 1
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u5173\u95ED"
+--- !u!1 &2587600564807974825
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1705911756142734491}
+  - component: {fileID: 3536792185040642684}
+  - component: {fileID: 8293648028374390780}
+  m_Layer: 5
+  m_Name: Image
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1705911756142734491
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2587600564807974825}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 7878324449888516370}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 100, y: 14.890076}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3536792185040642684
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2587600564807974825}
+  m_CullTransparentMesh: 0
+--- !u!114 &8293648028374390780
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2587600564807974825}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 0}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &2876665165103025581
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5033534956655620388}
+  - component: {fileID: 6828994629211676799}
+  - component: {fileID: 9098795969138488452}
+  m_Layer: 5
+  m_Name: LeftLine
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &5033534956655620388
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2876665165103025581}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 7241078251828852433}
+  - {fileID: 4912063566626079284}
+  m_Father: {fileID: 1850820072637572280}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0.5}
+  m_AnchorMax: {x: 0, y: 0.5}
+  m_AnchoredPosition: {x: 4.169983, y: 7.1}
+  m_SizeDelta: {x: 2, y: 34}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6828994629211676799
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2876665165103025581}
+  m_CullTransparentMesh: 0
+--- !u!114 &9098795969138488452
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2876665165103025581}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 87a1cbce6a3a8c642b3d810b20d80a2d, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &2978174222236059378
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5822199770277040103}
+  - component: {fileID: 1926994588466300845}
+  - component: {fileID: 294786073448323725}
+  - component: {fileID: 4297437956476258107}
+  - component: {fileID: 455386585663586048}
+  m_Layer: 5
+  m_Name: ClickBtn
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &5822199770277040103
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2978174222236059378}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 5408656540607738250}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0.0000019073486, y: -0.0000019073486}
+  m_SizeDelta: {x: 95.15198, y: 95.15198}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1926994588466300845
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2978174222236059378}
+  m_CullTransparentMesh: 0
+--- !u!114 &294786073448323725
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2978174222236059378}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &4297437956476258107
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2978174222236059378}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1}
+    m_PressedColor: {r: 1, g: 1, b: 1, a: 1}
+    m_SelectedColor: {r: 1, g: 1, b: 1, a: 1}
+    m_DisabledColor: {r: 1, g: 1, b: 1, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 294786073448323725}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!114 &455386585663586048
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2978174222236059378}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0d51f3a7c41ab0346b49ae50d456bece, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  MarkType: 0
+  CustomComponentName: ClickBtn
+  ComponentGeneratePath: 
+  CustomComment: 
+  mComponentName: UnityEngine.UI.Button
+--- !u!1 &3552137494163915409
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2309547912209729829}
+  - component: {fileID: 8531040548839998905}
+  - component: {fileID: 2743864550189741763}
+  m_Layer: 5
+  m_Name: Image
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &2309547912209729829
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3552137494163915409}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 8271201329897572925}
+  - {fileID: 1373430536792865131}
+  - {fileID: 5408656540607738250}
+  - {fileID: 3843877906543923407}
+  m_Father: {fileID: 7878324449888516370}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 691.6417, y: 79.141785}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &8531040548839998905
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3552137494163915409}
+  m_CullTransparentMesh: 0
+--- !u!114 &2743864550189741763
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3552137494163915409}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 0}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &3773003801552164709
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3843877906543923407}
+  - component: {fileID: 5528562813809876059}
+  - component: {fileID: 2245632877009878966}
+  - component: {fileID: 3249032350119428296}
+  m_Layer: 5
+  m_Name: PopText
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &3843877906543923407
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3773003801552164709}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 2309547912209729829}
+  m_RootOrder: 3
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 156.3, y: -6.1}
+  m_SizeDelta: {x: 278.6919, y: 36}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &5528562813809876059
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3773003801552164709}
+  m_CullTransparentMesh: 0
+--- !u!114 &2245632877009878966
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3773003801552164709}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 0, b: 0, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 14
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 10
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: 
+--- !u!114 &3249032350119428296
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3773003801552164709}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0d51f3a7c41ab0346b49ae50d456bece, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  MarkType: 0
+  CustomComponentName: PopText
+  ComponentGeneratePath: 
+  CustomComment: 
+  mComponentName: UnityEngine.UI.Text
+--- !u!1 &3876164573478063761
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4558705238003874227}
+  - component: {fileID: 4714392770412504517}
+  - component: {fileID: 7266822847136128873}
+  - component: {fileID: 2233112893648574159}
+  - component: {fileID: 3110583015389603742}
+  - component: {fileID: 528962115375672630}
+  - component: {fileID: 5820362351311666473}
+  m_Layer: 5
+  m_Name: OptionConent
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4558705238003874227
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3876164573478063761}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 7878324449888516370}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 348.06482, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 1}
+--- !u!222 &4714392770412504517
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3876164573478063761}
+  m_CullTransparentMesh: 0
+--- !u!114 &7266822847136128873
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3876164573478063761}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: ee53ec8263684344e83f8193df0f4948, type: 3}
+    m_FontSize: 20
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 40
+    m_Alignment: 0
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: 
+--- !u!114 &2233112893648574159
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3876164573478063761}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0d51f3a7c41ab0346b49ae50d456bece, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  MarkType: 0
+  CustomComponentName: MattersNeedingAttentionText
+  ComponentGeneratePath: 
+  CustomComment: 
+  mComponentName: UnityEngine.UI.Text
+--- !u!114 &3110583015389603742
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3876164573478063761}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalFit: 2
+  m_VerticalFit: 2
+--- !u!114 &528962115375672630
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3876164573478063761}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0d51f3a7c41ab0346b49ae50d456bece, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  MarkType: 0
+  CustomComponentName: Topic
+  ComponentGeneratePath: 
+  CustomComment: 
+  mComponentName: UnityEngine.UI.Text
+--- !u!114 &5820362351311666473
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3876164573478063761}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 4
+  m_Spacing: 18.99
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+--- !u!1 &5124047727316842771
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7878324449888516370}
+  - component: {fileID: 6411266220864289221}
+  - component: {fileID: 8710276016937821060}
+  - component: {fileID: 1725478577595358965}
+  - component: {fileID: 5508808901780349323}
+  m_Layer: 5
+  m_Name: Conent
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &7878324449888516370
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5124047727316842771}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 2309547912209729829}
+  - {fileID: 4558705238003874227}
+  - {fileID: 1705911756142734491}
+  - {fileID: 3387281992126609645}
+  m_Father: {fileID: 4201235850831045329}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6411266220864289221
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5124047727316842771}
+  m_CullTransparentMesh: 0
+--- !u!114 &8710276016937821060
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5124047727316842771}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: e59b91a4d8276aa4eacbc198b8a07fce, type: 3}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &1725478577595358965
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5124047727316842771}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 1
+  m_Spacing: 19.1
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+--- !u!114 &5508808901780349323
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5124047727316842771}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreLayout: 0
+  m_MinWidth: 0
+  m_MinHeight: 0
+  m_PreferredWidth: -1
+  m_PreferredHeight: -1
+  m_FlexibleWidth: -1
+  m_FlexibleHeight: -1
+  m_LayoutPriority: 1
+--- !u!1 &5295556388726585159
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7339863480721676625}
+  - component: {fileID: 4634144477565426776}
+  - component: {fileID: 1197519354839441041}
+  - component: {fileID: 8930687404012358874}
+  m_Layer: 5
+  m_Name: NormalState
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!224 &7339863480721676625
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5295556388726585159}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 5408656540607738250}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 100, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4634144477565426776
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5295556388726585159}
+  m_CullTransparentMesh: 0
+--- !u!114 &1197519354839441041
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5295556388726585159}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 2ca9a48f1067d82499f931817e034cbc, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &8930687404012358874
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5295556388726585159}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0d51f3a7c41ab0346b49ae50d456bece, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  MarkType: 0
+  CustomComponentName: NormalState
+  ComponentGeneratePath: 
+  CustomComment: 
+  mComponentName: UnityEngine.UI.Image
+--- !u!1 &5994403771364784577
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6263814909304924117}
+  - component: {fileID: 3903201153934924209}
+  - component: {fileID: 2898151976037196288}
+  m_Layer: 5
+  m_Name: Image
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &6263814909304924117
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5994403771364784577}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 3387281992126609645}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 1}
+  m_AnchorMax: {x: 0.5, y: 1}
+  m_AnchoredPosition: {x: 0, y: -0.5}
+  m_SizeDelta: {x: 630, y: 1}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3903201153934924209
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5994403771364784577}
+  m_CullTransparentMesh: 0
+--- !u!114 &2898151976037196288
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5994403771364784577}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 0197d0cbc2b34b04d94c640724aafe65, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &6414785246140559482
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5408656540607738250}
+  - component: {fileID: 4056919747451111831}
+  - component: {fileID: 6086865174202888516}
+  - component: {fileID: 5309687232327402713}
+  m_Layer: 5
+  m_Name: OptionSetItem
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!224 &5408656540607738250
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6414785246140559482}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 7339863480721676625}
+  - {fileID: 5851673620025243015}
+  - {fileID: 5822199770277040103}
+  - {fileID: 1373430535892664426}
+  m_Father: {fileID: 2309547912209729829}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 345.82086, y: -148.24179}
+  m_SizeDelta: {x: 100, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4056919747451111831
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6414785246140559482}
+  m_CullTransparentMesh: 0
+--- !u!114 &6086865174202888516
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6414785246140559482}
+  m_Enabled: 0
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &5309687232327402713
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6414785246140559482}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 1ac128830e4075545b1b38c82f5e0650, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  NormalState: {fileID: 1197519354839441041}
+  HighterState: {fileID: 3375892431681528086}
+  ClickBtn: {fileID: 4297437956476258107}
+  OptionInputField: {fileID: 1373430535892664425}
+--- !u!1 &6574452006817243033
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2881078223051866225}
+  - component: {fileID: 5523919899743131386}
+  - component: {fileID: 3197498529788000906}
+  m_Layer: 5
+  m_Name: BottomLine
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &2881078223051866225
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6574452006817243033}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 4798770983082674877}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 1.0000305, y: -21.399994}
+  m_SizeDelta: {x: 2, y: 110.10504}
+  m_Pivot: {x: 1, y: 1}
+--- !u!222 &5523919899743131386
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6574452006817243033}
+  m_CullTransparentMesh: 0
+--- !u!114 &3197498529788000906
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6574452006817243033}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 4d478cadb7baddd41bab07e1ba239b64, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &6614968283838371930
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3358774669729561568}
+  - component: {fileID: 7428401980274012878}
+  - component: {fileID: 4779208409108851371}
+  m_Layer: 5
+  m_Name: Icon
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &3358774669729561568
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6614968283838371930}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 8271201329897572925}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -131, y: 0}
+  m_SizeDelta: {x: 22, y: 22}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7428401980274012878
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6614968283838371930}
+  m_CullTransparentMesh: 0
+--- !u!114 &4779208409108851371
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6614968283838371930}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 206d54340875aaa4380859018cff807f, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &6840822494196857331
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3387281992126609645}
+  - component: {fileID: 4201659636543428918}
+  - component: {fileID: 4734090052248107802}
+  m_Layer: 5
+  m_Name: BtnBox
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &3387281992126609645
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6840822494196857331}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 6263814909304924117}
+  - {fileID: 8648060767402295952}
+  - {fileID: 1373430536068404685}
+  - {fileID: 1373430535272536740}
+  m_Father: {fileID: 7878324449888516370}
+  m_RootOrder: 3
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 695.07385, y: 92.612946}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4201659636543428918
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6840822494196857331}
+  m_CullTransparentMesh: 0
+--- !u!114 &4734090052248107802
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6840822494196857331}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 0}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &6885162850660852395
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4912063566626079284}
+  - component: {fileID: 4382686794350603488}
+  - component: {fileID: 3966379441306177377}
+  m_Layer: 5
+  m_Name: BottomLine
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4912063566626079284
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6885162850660852395}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 5033534956655620388}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0.5}
+  m_AnchorMax: {x: 0, y: 0.5}
+  m_AnchoredPosition: {x: 2.0000305, y: -20.30001}
+  m_SizeDelta: {x: 2, y: 111.73236}
+  m_Pivot: {x: 1, y: 1}
+--- !u!222 &4382686794350603488
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6885162850660852395}
+  m_CullTransparentMesh: 0
+--- !u!114 &3966379441306177377
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6885162850660852395}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 4d478cadb7baddd41bab07e1ba239b64, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &7264628215600903266
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7241078251828852433}
+  - component: {fileID: 1952777739847968551}
+  - component: {fileID: 8277114518234579128}
+  m_Layer: 5
+  m_Name: UpLine
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &7241078251828852433
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7264628215600903266}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 5033534956655620388}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0.5}
+  m_AnchorMax: {x: 0, y: 0.5}
+  m_AnchoredPosition: {x: -0.2, y: 20.1}
+  m_SizeDelta: {x: 2, y: 111.350914}
+  m_Pivot: {x: 0, y: 0}
+--- !u!222 &1952777739847968551
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7264628215600903266}
+  m_CullTransparentMesh: 0
+--- !u!114 &8277114518234579128
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7264628215600903266}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 4d478cadb7baddd41bab07e1ba239b64, type: 3}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &7423622427711317237
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4201235850831045329}
+  - component: {fileID: 8368728018892046070}
+  - component: {fileID: 1057288420914436569}
+  - component: {fileID: 1254948480429295979}
+  - component: {fileID: 8450559967705413348}
+  - component: {fileID: 3408015622235438517}
+  m_Layer: 5
+  m_Name: Layout
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4201235850831045329
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7423622427711317237}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 7878324449888516370}
+  m_Father: {fileID: 1850820072637572280}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0.0018311, y: 0}
+  m_SizeDelta: {x: 696.12964, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &8368728018892046070
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7423622427711317237}
+  m_CullTransparentMesh: 0
+--- !u!114 &1057288420914436569
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7423622427711317237}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 2100000, guid: 5d6730cf5bd09f34a817b685a618675f, type: 2}
+  m_Color: {r: 0.8392157, g: 0.8392157, b: 0.8392157, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &1254948480429295979
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7423622427711317237}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 4
+  m_Spacing: 0
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 1
+  m_ChildControlHeight: 1
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+--- !u!114 &8450559967705413348
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7423622427711317237}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalFit: 0
+  m_VerticalFit: 2
+--- !u!114 &3408015622235438517
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7423622427711317237}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreLayout: 0
+  m_MinWidth: 0
+  m_MinHeight: 0
+  m_PreferredWidth: -1
+  m_PreferredHeight: -1
+  m_FlexibleWidth: -1
+  m_FlexibleHeight: -1
+  m_LayoutPriority: 1
+--- !u!1 &7798553180607567167
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8271201329897572925}
+  - component: {fileID: 4317784827125605187}
+  - component: {fileID: 2822490782175563283}
+  - component: {fileID: 697261190677044822}
+  - component: {fileID: 4879742532990877512}
+  m_Layer: 5
+  m_Name: QuestionType
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8271201329897572925
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7798553180607567167}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 3358774669729561568}
+  m_Father: {fileID: 2309547912209729829}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 175.9, y: -43.81671}
+  m_SizeDelta: {x: 229.48764, y: 47.14914}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4317784827125605187
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7798553180607567167}
+  m_CullTransparentMesh: 0
+--- !u!114 &2822490782175563283
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7798553180607567167}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: ee53ec8263684344e83f8193df0f4948, type: 3}
+    m_FontSize: 26
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 40
+    m_Alignment: 3
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u56FE\u6587\u9898"
+--- !u!114 &697261190677044822
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7798553180607567167}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0d51f3a7c41ab0346b49ae50d456bece, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  MarkType: 0
+  CustomComponentName: TitleText
+  ComponentGeneratePath: 
+  CustomComment: 
+  mComponentName: UnityEngine.UI.Text
+--- !u!114 &4879742532990877512
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7798553180607567167}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  mTerm: matterpanel/mattertitle
+  mTermSecondary: 
+  PrimaryTermModifier: 0
+  SecondaryTermModifier: 0
+  TermPrefix: 
+  TermSuffix: 
+  LocalizeOnAwake: 1
+  IgnoreRTL: 0
+  MaxCharactersInRTL: 0
+  IgnoreNumbersInRTL: 1
+  CorrectAlignmentForRTL: 1
+  AddSpacesToJoinedLanguages: 0
+  AllowLocalizedParameters: 1
+  TranslatedObjects: []
+  LocalizeEvent:
+    m_PersistentCalls:
+      m_Calls: []
+  AlwaysForceLocalize: 0
+  LocalizeCallBack:
+    Target: {fileID: 0}
+    MethodName: 
+  mGUI_ShowReferences: 0
+  mGUI_ShowTems: 1
+  mGUI_ShowCallback: 0
+  mLocalizeTarget: {fileID: 0}
+  mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityUI_Text
+--- !u!1 &7813146219347915960
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1850820072637572280}
+  - component: {fileID: 2863577350852261654}
+  - component: {fileID: 5422826720512655455}
+  m_Layer: 5
+  m_Name: Bg
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1850820072637572280
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7813146219347915960}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 4201235850831045329}
+  - {fileID: 5033534956655620388}
+  - {fileID: 4798770983082674877}
+  m_Father: {fileID: 4765644194998599705}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 58.9, y: 1}
+  m_SizeDelta: {x: -1223.8739, y: -409.3825}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &2863577350852261654
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7813146219347915960}
+  m_CullTransparentMesh: 0
+--- !u!114 &5422826720512655455
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7813146219347915960}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.5566038, g: 0.5566038, b: 0.5566038, a: 0}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: e59b91a4d8276aa4eacbc198b8a07fce, type: 3}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &8040579815344129442
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3487690163392765054}
+  - component: {fileID: 3631555574516890870}
+  - component: {fileID: 1028341699053809289}
+  m_Layer: 5
+  m_Name: UpLine
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &3487690163392765054
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8040579815344129442}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 4798770983082674877}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -0.9999695, y: 19.80001}
+  m_SizeDelta: {x: 2, y: 112.52234}
+  m_Pivot: {x: 0, y: 0}
+--- !u!222 &3631555574516890870
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8040579815344129442}
+  m_CullTransparentMesh: 0
+--- !u!114 &1028341699053809289
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8040579815344129442}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 4d478cadb7baddd41bab07e1ba239b64, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &8409718844371492429
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8648060767402295952}
+  - component: {fileID: 7128078030310446933}
+  - component: {fileID: 9119669867601525486}
+  - component: {fileID: 4966503460306782114}
+  - component: {fileID: 3769606262110308034}
+  m_Layer: 5
+  m_Name: CloseBtn
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8648060767402295952
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8409718844371492429}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 4162837587952825559}
+  m_Father: {fileID: 3387281992126609645}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 232, y: -0}
+  m_SizeDelta: {x: 129, y: 36}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7128078030310446933
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8409718844371492429}
+  m_CullTransparentMesh: 0
+--- !u!114 &9119669867601525486
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8409718844371492429}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 3bab070db1867c546a7ce024ec4e127e, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &4966503460306782114
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8409718844371492429}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 2
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 21300000, guid: ed74c9d1b95b3504cb1edbc1d08c2f7a,
+      type: 3}
+    m_PressedSprite: {fileID: 21300000, guid: b476aa83559d90a4cbd75518b8ffaafa, type: 3}
+    m_SelectedSprite: {fileID: 21300000, guid: 3bab070db1867c546a7ce024ec4e127e, type: 3}
+    m_DisabledSprite: {fileID: 21300000, guid: 3bab070db1867c546a7ce024ec4e127e, type: 3}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 9119669867601525486}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!114 &3769606262110308034
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8409718844371492429}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0d51f3a7c41ab0346b49ae50d456bece, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  MarkType: 0
+  CustomComponentName: ConfirmBtn
+  ComponentGeneratePath: 
+  CustomComment: 
+  mComponentName: UnityEngine.UI.Button

+ 7 - 0
OperationUIFrame/OperationUIFrameV2/UIPrefabs/ImageAndTextNameSetPanel.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 15ff990645591e849884ca882013397d
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: imageandtextnamesetpanel_prefab
+  assetBundleVariant: 

+ 4 - 2
OperationUIFrame/OperationUIFrameV2/UIPrefabs/QuestionSetPanel.prefab

@@ -951,6 +951,8 @@ MonoBehaviour:
   m_Value: 0
   m_Options:
     m_Options:
+    - m_Text: None
+      m_Image: {fileID: 0}
     - m_Text: "\u5355\u9009"
       m_Image: {fileID: 0}
     - m_Text: "\u591A\u9009"
@@ -2303,7 +2305,7 @@ MonoBehaviour:
     m_HorizontalOverflow: 0
     m_VerticalOverflow: 0
     m_LineSpacing: 1
-  m_Text: "\u5355\u9009"
+  m_Text: None
 --- !u!1 &2299281619443326869
 GameObject:
   m_ObjectHideFlags: 0
@@ -2590,7 +2592,7 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Material: {fileID: 0}
-  m_Color: {r: 1, g: 1, b: 1, a: 0}
+  m_Color: {r: 0.009433985, g: 0.009433985, b: 0.009433985, a: 0.34901962}
   m_RaycastTarget: 1
   m_Maskable: 1
   m_OnCullStateChanged: