LocationController.cs 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using UnityEngine;
  6. using UnityEngine.AI;
  7. /// <summary>
  8. /// Проектирование помещения
  9. /// </summary>
  10. public class LocationController : MonoBehaviour
  11. {
  12. public uint id;
  13. public List<GameObject> rooms;
  14. public GameObject Ground;
  15. public GameObject Walls;
  16. public GameObject Zones;
  17. public GameObject Beacons;
  18. Location location;
  19. //public GameObject Location;
  20. // Start is called before the first frame update
  21. void Start()
  22. {
  23. // location_22
  24. //var rooms_0 = rooms.ElementAt(0);
  25. //Cube(rooms_0, new Vector3(6, 8, 1)); //x=6 y=8 h1
  26. //var rooms_1 = rooms.ElementAt(1);
  27. //Cube(rooms_1, new Vector3(2, 10, 1), new Vector2(6, 0));
  28. //var rooms_2 = rooms.ElementAt(2);
  29. //Cube(rooms_2, new Vector3(5, 4, 1), new Vector2(8, 5));
  30. // location_25
  31. //var rooms_0 = Instantiate(Resources.Load("GameObjects/Cube", typeof(GameObject)) as GameObject);
  32. //rooms_0.transform.SetParent(Location.transform);
  33. //Cube(rooms_0, new Vector3(3.57f, 6.31f, 1)); //x=6 y=8 h1
  34. //rooms.Add(rooms_0);
  35. //var rooms_1 = Instantiate(Resources.Load("GameObjects/Cube", typeof(GameObject)) as GameObject);
  36. //rooms_1.transform.SetParent(Location.transform);
  37. //Cube(rooms_1, new Vector3(4, 3.7f, 1), new Vector2(3.57f, 0)); //x=6 y=8 h1
  38. //rooms.Add(rooms_1);
  39. //var rooms_2 = Instantiate(Resources.Load("GameObjects/Cube", typeof(GameObject)) as GameObject);
  40. //rooms_2.transform.SetParent(Location.transform);
  41. //Cube(rooms_2, new Vector3(3, 4.46f, 1), new Vector2(3.57f, 1.85f)); //x=6 y=8 h1
  42. //rooms.Add(rooms_2);
  43. // location_1
  44. var rooms_0 = Instantiate(Resources.Load("GameObjects/Cube", typeof(GameObject)) as GameObject);
  45. rooms_0.transform.SetParent(transform);
  46. Cube(rooms_0, new Vector3(22.8f, 5.5f, 1)); //x=6 y=8 h1
  47. rooms.Add(rooms_0);
  48. //var rooms_1 = rooms.ElementAt(1);
  49. //Cube(rooms_1, new Vector3(2, 10, 1), new Vector2(6, 0));
  50. //var rooms_2 = rooms.ElementAt(2);
  51. //Cube(rooms_2, new Vector3(5, 4, 1), new Vector2(8, 5));
  52. //Room("r0", new Vector3(6, 8, 1)); //x=6 y=8 h1
  53. //Room("r1", new Vector3(2, 10, 1), new Vector2(6, 0));
  54. //Room("r2", new Vector3(5, 4, 1), new Vector2(8, 5));
  55. }
  56. // Update is called once per frame
  57. void Update()
  58. {
  59. }
  60. public static void Cube(GameObject cube, Vector3 cube_size, Vector2 position = new Vector2(), float wall_thickness = 0.01f)
  61. {
  62. //GameObject cube = GameObject.Find("Cube");
  63. cube_size = new Vector3(cube_size.x, cube_size.y, cube_size.z);
  64. Vector3 pos_cube = new Vector3(cube_size.x / 2f, cube_size.z / 2f, cube_size.y / 2f);
  65. cube.transform.position = new Vector3(pos_cube.x + position.x, pos_cube.y, pos_cube.z + position.y);
  66. // above
  67. GameObject plane_a = cube.transform.GetChild(0).gameObject;
  68. //plane_above.transform.localScale = cube_size;
  69. plane_a.transform.localScale = new Vector3(cube_size.x, wall_thickness, cube_size.y);
  70. plane_a.transform.localPosition = new Vector3(0, pos_cube.y, 0);//y x=0
  71. // front
  72. GameObject plane_b = cube.transform.GetChild(1).gameObject;
  73. plane_b.transform.localScale = new Vector3(cube_size.x, wall_thickness, cube_size.z);
  74. plane_b.transform.localPosition = new Vector3(0, 0, -pos_cube.z);
  75. // side
  76. GameObject plane_c = cube.transform.GetChild(2).gameObject;
  77. plane_c.transform.localScale = new Vector3(cube_size.y, wall_thickness, cube_size.z);
  78. plane_c.transform.localPosition = new Vector3(-pos_cube.x, 0, 0);
  79. // низ
  80. GameObject plane_d = cube.transform.GetChild(3).gameObject;
  81. plane_d.transform.localScale = new Vector3(cube_size.x, wall_thickness, cube_size.y);
  82. plane_d.transform.localPosition = new Vector3(0, -pos_cube.y, 0);
  83. // зад
  84. GameObject plane_e = cube.transform.GetChild(4).gameObject;
  85. plane_e.transform.localScale = new Vector3(cube_size.y, wall_thickness, cube_size.z);
  86. plane_e.transform.localPosition = new Vector3(pos_cube.x, 0, 0);
  87. // front 2
  88. GameObject plane_f = cube.transform.GetChild(5).gameObject;
  89. plane_f.transform.localScale = new Vector3(cube_size.x, wall_thickness, cube_size.z);
  90. plane_f.transform.localPosition = new Vector3(0, 0, pos_cube.z);
  91. }
  92. public static void Room(string room_name, Vector3 cube_size, Vector2 position = new Vector2())
  93. {
  94. //GameObject cube = GameObject.Find("Cube");
  95. var room = Instantiate(Resources.Load("GameObjects/RoomTest", typeof(GameObject)) as GameObject);
  96. room.name = room_name;
  97. cube_size = new Vector3(cube_size.x, cube_size.y, cube_size.z);
  98. Vector3 pos_cube = new Vector3(cube_size.x / 2f, cube_size.z / 2f, cube_size.y / 2f);
  99. room.transform.position = new Vector3(pos_cube.x + position.x, pos_cube.y, pos_cube.z + position.y);
  100. // above
  101. var SideA = room.transform.GetChild(0).gameObject;
  102. var panel_a = Instantiate(Resources.Load("GameObjects/Panel", typeof(GameObject)) as GameObject);
  103. panel_a.name = "Plane_a_" + 0;
  104. panel_a.transform.SetParent(SideA.transform);
  105. //GameObject plane_a = cube.transform.GetChild(0).gameObject;
  106. //plane_above.transform.localScale = cube_size;
  107. panel_a.transform.localScale = new Vector3(cube_size.x, 0.01f, cube_size.y);
  108. panel_a.transform.localPosition = new Vector3(0, pos_cube.y, 0);//y x=0
  109. panel_a.transform.rotation = SideA.transform.rotation;
  110. // front
  111. var SideB = room.transform.GetChild(1).gameObject;
  112. //GameObject plane_b = cube.transform.GetChild(1).gameObject;
  113. //plane_b.transform.localScale = new Vector3(cube_size.x, 0.01f, cube_size.z);
  114. for (int i = 0; i < cube_size.x; i++)
  115. {
  116. var panel = Instantiate(Resources.Load("GameObjects/Panel", typeof(GameObject))) as GameObject;
  117. panel.name = "Plane_b_" + i;
  118. panel.transform.SetParent(SideB.transform);
  119. panel.transform.localPosition = new Vector3(i, 0, -pos_cube.z);
  120. panel.transform.rotation = SideB.transform.rotation;
  121. }
  122. // side
  123. var SideC = room.transform.GetChild(2).gameObject;
  124. //GameObject plane_c = cube.transform.GetChild(2).gameObject;
  125. for (int i = 0; i > -cube_size.x; i--)
  126. {
  127. var panel = Instantiate(Resources.Load("GameObjects/Panel", typeof(GameObject))) as GameObject;
  128. panel.name = "Plane_c_" + i;
  129. panel.transform.SetParent(SideC.transform);
  130. panel.transform.position = new Vector3(i, 0, 0);
  131. panel.transform.rotation = SideC.transform.rotation;
  132. }
  133. // низ
  134. var SideD = room.transform.GetChild(3).gameObject;
  135. var panel_d = Instantiate(Resources.Load("GameObjects/Panel", typeof(GameObject))) as GameObject;
  136. //GameObject plane_d = cube.transform.GetChild(3).gameObject;
  137. panel_d.name = "Plane_d_" + 0;
  138. panel_d.transform.SetParent(SideD.transform);
  139. panel_d.transform.localScale = new Vector3(cube_size.x, 0.01f, cube_size.y);
  140. panel_d.transform.position = new Vector3(0, -pos_cube.y, 0);
  141. panel_d.transform.rotation = SideD.transform.rotation;
  142. // зад
  143. var SideE = room.transform.GetChild(4).gameObject;
  144. for (int i = 0; i > -cube_size.x; i--)
  145. {
  146. var panel = Instantiate(Resources.Load("GameObjects/Panel", typeof(GameObject))) as GameObject;
  147. //GameObject plane_e = cube.transform.GetChild(4).gameObject;
  148. panel.name = "Plane_e_" + i;
  149. panel.transform.SetParent(SideE.transform);
  150. panel.transform.position = new Vector3(pos_cube.x, 0, 0);
  151. panel.transform.rotation = SideE.transform.rotation;
  152. }
  153. // front 2
  154. var SideF = room.transform.GetChild(5).gameObject;
  155. for (int i = 0; i > -cube_size.x; i--)
  156. {
  157. var panel = Instantiate(Resources.Load("GameObjects/Panel", typeof(GameObject))) as GameObject;
  158. //GameObject plane_f = cube.transform.GetChild(5).gameObject;
  159. panel.name = "Plane_f_" + i;
  160. panel.transform.SetParent(SideF.transform);
  161. panel.transform.position = new Vector3(0, 0, pos_cube.z);
  162. panel.transform.rotation = SideF.transform.rotation;
  163. }
  164. }
  165. /// <summary>
  166. /// Загрузка текстуры
  167. /// </summary>
  168. public void GroundTexture(string url)
  169. {
  170. StartCoroutine(SendingFormController.LoadImage(url, Ground, Ground.transform.position, Ground.transform.localScale));
  171. }
  172. public void GroundResize(float x, float y)
  173. {
  174. Ground.transform.localScale = new Vector3(x, 1, y);
  175. var scale = Ground.transform.localScale;
  176. Ground.transform.position = new Vector3(scale.x * 5, 0, scale.z * 5);
  177. }
  178. /// <summary>
  179. /// опт
  180. /// </summary>
  181. /// <param name="location"></param>
  182. public void LoadObj(Location location)
  183. {
  184. var z = Zones.GetComponent<ZonesEditorController>();
  185. }
  186. }