ImageOptionSetItem.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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. m_PictureName = arr[1];
  30. ClickBtn.GetComponent<Image>().sprite = LoadHelper.LoadSpriteFromStreamming(tmpPicturePath);
  31. var arr1 = arr[0].Split('、');
  32. OptionInputField.text = arr1[1];
  33. if (answer.Contains(arr1[0])) SelectToggle.isOn = true;
  34. else SelectToggle.isOn = false;
  35. }
  36. }
  37. protected override void OnBeforeDestroy()
  38. {
  39. }
  40. private void OnClickBtnClick()
  41. {
  42. ExtensionFilter extensionFilter = new ExtensionFilter("jpg", "png", "JPG", "PNG", "jpeg", "JPEG");
  43. List<ExtensionFilter> extensionFilters = new List<ExtensionFilter>();
  44. extensionFilters.Add(extensionFilter);
  45. string[] tmpFilePaths = StandaloneFileBrowser.OpenFilePanel("选择图片", Application.streamingAssetsPath + "/Config/题库图文图片/", extensionFilters.ToArray(), true);
  46. if (tmpFilePaths.Length == 0 || tmpFilePaths == null) return;
  47. if (CheckImageNameNotExist(tmpFilePaths[0].GetFileName()))
  48. {
  49. m_PictureName = tmpFilePaths[0].GetFileName();
  50. File.Copy(tmpFilePaths[0], Application.streamingAssetsPath + "/Config/题库图文图片/" + m_PictureName);
  51. string tmpPicturePath = "Config/题库图文图片/" + m_PictureName;
  52. ClickBtn.GetComponent<Image>().sprite = LoadHelper.LoadSpriteFromStreamming(tmpPicturePath);
  53. }
  54. else
  55. {
  56. m_PictureName = tmpFilePaths[0].GetFileName();
  57. string tmpPicturePath = "Config/题库图文图片/" + m_PictureName;
  58. ClickBtn.GetComponent<Image>().sprite = LoadHelper.LoadSpriteFromStreamming(tmpPicturePath);
  59. }
  60. Debug.LogError(tmpFilePaths[0].Contains(Application.streamingAssetsPath));
  61. Debug.LogError(tmpFilePaths[0].GetFileName());
  62. //File.Copy(tmpFilePaths[0],Application.streamingAssetsPath + "/Config/题库图文图片/" + tmpFilePaths[0].GetFileName() + ".png");
  63. }
  64. /// <summary>
  65. /// 检查图片名称不存在
  66. /// </summary>
  67. /// <param name="fileName"></param>
  68. /// <returns></returns>
  69. private bool CheckImageNameNotExist(string fileName)
  70. {
  71. string path = Application.streamingAssetsPath + "/Config/题库图文图片";
  72. DirectoryInfo directoryInfo = new DirectoryInfo(path);
  73. foreach (var file in directoryInfo.GetFiles())
  74. {
  75. if (file.Name.Contains(fileName))
  76. {
  77. Debug.LogError(fileName + ":" + file.Name);
  78. return false;
  79. }
  80. }
  81. return true;
  82. }
  83. }
  84. }