DevicesTargetCreat.cs 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.Linq;
  6. using UnityEngine;
  7. using UnityEditor;
  8. using Object = UnityEngine.Object;
  9. public class DevicesTargetCreat : EditorWindow
  10. {
  11. public Transform creatContent;
  12. public Object jsonFile;
  13. public Vector3 creatPos;
  14. [MenuItem("Plugins/DevicesTargetCreat")]
  15. static void Init()
  16. {
  17. DevicesTargetCreat DevicesTargetCreatTool = EditorWindow.CreateWindow<DevicesTargetCreat>();
  18. DevicesTargetCreatTool.Show();
  19. }
  20. public void OnGUI()
  21. {
  22. creatContent = (Transform)EditorGUILayout.ObjectField("容器", creatContent, typeof(Transform), true);
  23. creatPos=EditorGUILayout.Vector3Field("生成坐标", creatPos);
  24. jsonFile = Selection.activeObject;
  25. EditorGUILayout.LabelField("选中文件:");
  26. EditorGUILayout.ObjectField(jsonFile, typeof(Object));
  27. if (GUILayout.Button("生成参照物"))
  28. {
  29. if (jsonFile == null)
  30. {
  31. Debug.LogError("没选择Json!");
  32. return;
  33. }
  34. string jsonStr = File.ReadAllText(AssetDatabase.GetAssetPath(jsonFile));
  35. SensorListResult tempData = JsonUtility.FromJson<SensorListResult>(jsonStr);
  36. foreach (var t in tempData.rows)
  37. {
  38. //手动过滤下 套口 补元
  39. if (t.stationName.Equals("套口")||!t.sensorType.Equals("温度"))
  40. {
  41. continue;
  42. }
  43. GameObject creatObj = new GameObject();
  44. creatObj.transform.SetParent(creatContent);
  45. creatObj.transform.localPosition = creatPos;
  46. string nameHead = "";
  47. if (t.stationName.Equals("补元"))
  48. {
  49. nameHead = "BY_";
  50. }
  51. else
  52. {
  53. nameHead = "TK_";
  54. }
  55. creatObj.name = $"{nameHead}{t.sensorName}";
  56. creatObj.tag = "DeviceIconTarget";
  57. }
  58. }
  59. }
  60. }
  61. [Serializable]
  62. public class SensorListResult
  63. {
  64. public int total;
  65. public List<DevicesId_Data> rows;
  66. }
  67. [Serializable]
  68. public class DevicesId_Data
  69. {
  70. public string sid;
  71. public string stationName;//站点名称?
  72. public string sensorName;
  73. public string sensorType;//设备类型?
  74. public string valueType1;//单位
  75. public string valueType2;
  76. public string dataSid;
  77. public string dataGid;
  78. public float realtimeValue1;
  79. public string realtimeValue2;
  80. public string dataUpdateTime;
  81. public string groupId;
  82. public string groupName;
  83. }