ProjectConfiguration.cs 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Linq;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using UnityEngine;
  6. /// <summary>
  7. /// 场景的设置
  8. /// </summary>
  9. public class ProjectConfiguration : MonoBehaviour
  10. {
  11. public int cubeLength;
  12. public CubeItem item;
  13. public Transform trackingTarget;
  14. public Camera camera;
  15. private TestData data;
  16. void Start()
  17. {
  18. data = new TestData();
  19. data.Length = 40;
  20. data.UIInterval = 1;
  21. //data.EulerAngleX = false;
  22. //data.EulerAngleY = true;
  23. //data.EulerAngleZ = false;
  24. data.EulerAxle = 2;
  25. data.CameraFar = 2;
  26. data.isShowMeasure = false;
  27. data.FadeDis = 1;
  28. data.ShowDis = 0.4f;
  29. HttpTool.Instance.GetAPI("https://api-fat1.ghz-tech.com/mr-navigator/v1/", (msg) =>
  30. {
  31. Debug.Log(msg);
  32. if(msg!=null)
  33. {
  34. data = new TestData();
  35. data.Length = 40;
  36. data.UIInterval = 1;
  37. //data.EulerAngleX = false;
  38. //data.EulerAngleY = true;
  39. //data.EulerAngleZ = false;
  40. data.EulerAxle = 2;
  41. data.CameraFar = 2;
  42. data.isShowMeasure = false;
  43. data.FadeDis = 1;
  44. data.ShowDis = 0.4f;
  45. // data = JsonConvert.DeserializeObject<TestData>(msg);
  46. }
  47. else
  48. {
  49. data = new TestData();
  50. data.Length = 40;
  51. data.UIInterval = 1;
  52. //data.EulerAngleX = false;
  53. //data.EulerAngleY = true;
  54. //data.EulerAngleZ = false;
  55. data.EulerAxle = 2;
  56. data.CameraFar = 2;
  57. data.isShowMeasure = false;
  58. data.FadeDis = 1;
  59. data.ShowDis = 0.4f;
  60. //for (int i = 0; i < cubeLength+1; i++)
  61. //{
  62. // GameObject obj = GameObject.Instantiate(item.gameObject, transform);
  63. // obj.name = i.ToString();
  64. // obj.transform.localPosition = new Vector3(0, 0.1f, -i);
  65. // obj.GetComponent<CubeItem>().text.text = i.ToString() + " M";
  66. // obj.SetActive(true);
  67. //}
  68. }
  69. Init();
  70. });
  71. }
  72. private void Init()
  73. {
  74. //camera.farClipPlane = data.CameraFar;
  75. BladeServerManager.Instance.showDis = data.ShowDis;
  76. BladeServerManager.Instance.fadeDis = data.FadeDis;
  77. if (!data.isShowMeasure)
  78. return;
  79. for (float i = 0; i < data.Length+1; i+=data.UIInterval)
  80. {
  81. GameObject obj = GameObject.Instantiate(item.gameObject, transform);
  82. obj.name = i.ToString();
  83. obj.transform.localPosition = new Vector3(0, 0.1f, -i);
  84. obj.GetComponent<CubeItem>().text.text = i.ToString() + " M";
  85. obj.SetActive(true);
  86. }
  87. }
  88. // Update is called once per frame
  89. void Update()
  90. {
  91. if(trackingTarget!=null)
  92. {
  93. switch (data.EulerAxle)
  94. {
  95. case 1:
  96. transform.eulerAngles = new Vector3(0, trackingTarget.eulerAngles.x, 0);
  97. break;
  98. case 2:
  99. transform.eulerAngles = new Vector3(0, trackingTarget.eulerAngles.y, 0);
  100. break;
  101. case 3:
  102. transform.eulerAngles = new Vector3(0, trackingTarget.eulerAngles.z, 0);
  103. break;
  104. default:
  105. break;
  106. }
  107. transform.position = trackingTarget.position;
  108. }
  109. }
  110. public void Test()
  111. {
  112. }
  113. }
  114. public class TestData
  115. {
  116. public int Length { get; set; }// 需要显示的长度
  117. public float CameraFar { get; set; } // Camera的可见距离
  118. public float UIInterval { get; set; } // 间隔多少米显示距离UI 0.5m/1m/....
  119. //public bool EulerAngleX { get; set; } // 是否同步Tag X轴旋转
  120. //public bool EulerAngleY { get; set; } // 是否同步Tag Y轴旋转
  121. //public bool EulerAngleZ { get; set; } // 是否同步Tag Z轴旋转
  122. public int EulerAxle { get; set; } // 跟随哪个轴旋转 1 X轴 2 Y轴 3 Z轴
  123. public float ShowDis { get; set; } // 机柜详细信息 显示的距离
  124. public float FadeDis { get; set; } // 机柜详细信息 消失的距离
  125. public bool isShowMeasure { get; set; } // 是否显示测量长度的Demo
  126. }