ImageOptionSetItem.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. /****************************************************************************
  2. * 2025.6 LXD
  3. ****************************************************************************/
  4. using System;
  5. using System.Collections.Generic;
  6. using UnityEngine;
  7. using UnityEngine.UI;
  8. using QFramework;
  9. using SFB;
  10. using System.IO;
  11. namespace QFramework
  12. {
  13. public partial class ImageOptionSetItem : UIElement
  14. {
  15. /// <summary>
  16. /// 图片名称
  17. /// </summary>
  18. public string m_PictureName;
  19. private void Start()
  20. {
  21. ClickBtn.onClick.AddListener(OnClickBtnClick);
  22. }
  23. public void InitData(string option,string answer)
  24. {
  25. if (!string.IsNullOrEmpty(option))
  26. {
  27. var arr = option.Split('_');
  28. string tmpPicturePath = "Config/题库图文图片/" + arr[1];
  29. ClickBtn.GetComponent<Image>().sprite = LoadHelper.LoadSpriteFromStreamming(tmpPicturePath);
  30. var arr1 = arr[0].Split('、');
  31. OptionInputField.text = arr1[1];
  32. if (answer.Contains(arr1[0])) SelectToggle.isOn = true;
  33. else SelectToggle.isOn = false;
  34. }
  35. }
  36. protected override void OnBeforeDestroy()
  37. {
  38. }
  39. private void OnClickBtnClick()
  40. {
  41. ExtensionFilter extensionFilter = new ExtensionFilter("jpg", "png", "JPG", "PNG", "jpeg", "JPEG");
  42. List<ExtensionFilter> extensionFilters = new List<ExtensionFilter>();
  43. extensionFilters.Add(extensionFilter);
  44. string[] tmpFilePaths = StandaloneFileBrowser.OpenFilePanel("选择图片", Application.streamingAssetsPath + "/Config/题库图文图片/", extensionFilters.ToArray(), true);
  45. if (tmpFilePaths.Length == 0 || tmpFilePaths == null) return;
  46. if (CheckImageNameNotExist(tmpFilePaths[0].GetFileName()))
  47. {
  48. m_PictureName = tmpFilePaths[0].GetFileName();
  49. File.Copy(tmpFilePaths[0], Application.streamingAssetsPath + "/Config/题库图文图片/" + m_PictureName);
  50. string tmpPicturePath = "Config/题库图文图片/" + m_PictureName;
  51. ClickBtn.GetComponent<Image>().sprite = LoadHelper.LoadSpriteFromStreamming(tmpPicturePath);
  52. }
  53. else
  54. {
  55. m_PictureName = tmpFilePaths[0].GetFileName();
  56. string tmpPicturePath = "Config/题库图文图片/" + m_PictureName;
  57. ClickBtn.GetComponent<Image>().sprite = LoadHelper.LoadSpriteFromStreamming(tmpPicturePath);
  58. }
  59. Debug.LogError(tmpFilePaths[0].Contains(Application.streamingAssetsPath));
  60. Debug.LogError(tmpFilePaths[0].GetFileName());
  61. //File.Copy(tmpFilePaths[0],Application.streamingAssetsPath + "/Config/题库图文图片/" + tmpFilePaths[0].GetFileName() + ".png");
  62. }
  63. /// <summary>
  64. /// 检查图片名称不存在
  65. /// </summary>
  66. /// <param name="fileName"></param>
  67. /// <returns></returns>
  68. private bool CheckImageNameNotExist(string fileName)
  69. {
  70. string path = Application.streamingAssetsPath + "/Config/题库图文图片";
  71. DirectoryInfo directoryInfo = new DirectoryInfo(path);
  72. foreach (var file in directoryInfo.GetFiles())
  73. {
  74. if (file.Name.Contains(fileName))
  75. {
  76. Debug.LogError(fileName + ":" + file.Name);
  77. return false;
  78. }
  79. }
  80. return true;
  81. }
  82. }
  83. }