UITreeMenuProxy.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using System.IO;
  5. using System.Linq;
  6. public class UITreeMenuProxy : DataProxy
  7. {
  8. List<TreeNodeInfo> treeNodeInfos;
  9. public override void OnRegister()
  10. {
  11. InitData();
  12. }
  13. public void InitData()
  14. {
  15. //表格读取
  16. string path = Application.streamingAssetsPath + "/TableData/主页树形.csv";
  17. treeNodeInfos = ReadOperationFromTable(path);
  18. }
  19. public List<TreeNodeInfo> GetUITreeData()
  20. {
  21. return treeNodeInfos;
  22. }
  23. public override void OnRemove()
  24. {
  25. }
  26. /// <summary>
  27. /// 从表格读取流程信息
  28. /// </summary>
  29. /// <param name="path"></param>
  30. /// <returns></returns>
  31. private List<TreeNodeInfo> ReadOperationFromTable(string path)
  32. {
  33. List<TreeNodeInfo> tmpInfos = new List<TreeNodeInfo>();
  34. using (StreamReader streamReader = new StreamReader(path, System.Text.Encoding.UTF8))
  35. {
  36. string tmpOperationInfo = streamReader.ReadToEnd().TrimEnd();
  37. if (tmpOperationInfo.Contains("\r")) tmpOperationInfo = tmpOperationInfo.Replace("\r", "");
  38. string[] tempOperationInfos = tmpOperationInfo.Split('\n');
  39. for (int i = 2; i < tempOperationInfos.Length; i++)
  40. {
  41. string operationInfo = tempOperationInfos[i];
  42. string[] operationInfoElements = operationInfo.Split(',');
  43. TreeNodeInfo tmpInfo = new TreeNodeInfo();
  44. for (int j = 0; j < operationInfoElements.Length; j++)
  45. {
  46. if (j == 0) tmpInfo.m_Id = int.Parse(operationInfoElements[0]);
  47. if (j == 1) tmpInfo.m_NodeName = operationInfoElements[1];
  48. if (j == 2) tmpInfo.m_NodeParentName = operationInfoElements[2];
  49. if (j == 3) tmpInfo.m_NodeLayer = int.Parse(operationInfoElements[3]);
  50. if (j == 4) tmpInfo.m_EquipmentUniqueID = int.Parse(operationInfoElements[4]);
  51. if (j == 5) tmpInfo.m_GroupName = operationInfoElements[5];
  52. }
  53. tmpInfos.Add(tmpInfo);
  54. }
  55. }
  56. return tmpInfos;
  57. }
  58. }