LocationController.cs 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  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 List<GameObject> rooms;
  13. public GameObject Location;
  14. // Start is called before the first frame update
  15. void Start()
  16. {
  17. // location_22
  18. //var rooms_0 = rooms.ElementAt(0);
  19. //Cube(rooms_0, new Vector3(6, 8, 1)); //x=6 y=8 h1
  20. //var rooms_1 = rooms.ElementAt(1);
  21. //Cube(rooms_1, new Vector3(2, 10, 1), new Vector2(6, 0));
  22. //var rooms_2 = rooms.ElementAt(2);
  23. //Cube(rooms_2, new Vector3(5, 4, 1), new Vector2(8, 5));
  24. // location_25
  25. //var rooms_0 = Instantiate(Resources.Load("GameObjects/Cube", typeof(GameObject)) as GameObject);
  26. //rooms_0.transform.SetParent(Location.transform);
  27. //Cube(rooms_0, new Vector3(3.57f, 6.31f, 1)); //x=6 y=8 h1
  28. //rooms.Add(rooms_0);
  29. //var rooms_1 = Instantiate(Resources.Load("GameObjects/Cube", typeof(GameObject)) as GameObject);
  30. //rooms_1.transform.SetParent(Location.transform);
  31. //Cube(rooms_1, new Vector3(4, 3.7f, 1), new Vector2(3.57f, 0)); //x=6 y=8 h1
  32. //rooms.Add(rooms_1);
  33. //var rooms_2 = Instantiate(Resources.Load("GameObjects/Cube", typeof(GameObject)) as GameObject);
  34. //rooms_2.transform.SetParent(Location.transform);
  35. //Cube(rooms_2, new Vector3(3, 4.46f, 1), new Vector2(3.57f, 1.85f)); //x=6 y=8 h1
  36. //rooms.Add(rooms_2);
  37. // location_1
  38. var rooms_0 = Instantiate(Resources.Load("GameObjects/Cube", typeof(GameObject)) as GameObject);
  39. rooms_0.transform.SetParent(Location.transform);
  40. Cube(rooms_0, new Vector3(22.8f, 5.5f, 1)); //x=6 y=8 h1
  41. rooms.Add(rooms_0);
  42. //var rooms_1 = rooms.ElementAt(1);
  43. //Cube(rooms_1, new Vector3(2, 10, 1), new Vector2(6, 0));
  44. //var rooms_2 = rooms.ElementAt(2);
  45. //Cube(rooms_2, new Vector3(5, 4, 1), new Vector2(8, 5));
  46. //Room("r0", new Vector3(6, 8, 1)); //x=6 y=8 h1
  47. //Room("r1", new Vector3(2, 10, 1), new Vector2(6, 0));
  48. //Room("r2", new Vector3(5, 4, 1), new Vector2(8, 5));
  49. }
  50. // Update is called once per frame
  51. void Update()
  52. {
  53. }
  54. public static void Cube(GameObject cube, Vector3 cube_size, Vector2 position = new Vector2(), float wall_thickness = 0.01f)
  55. {
  56. //GameObject cube = GameObject.Find("Cube");
  57. cube_size = new Vector3(cube_size.x, cube_size.y, cube_size.z);
  58. Vector3 pos_cube = new Vector3(cube_size.x / 2f, cube_size.z / 2f, cube_size.y / 2f);
  59. cube.transform.position = new Vector3(pos_cube.x + position.x, pos_cube.y, pos_cube.z + position.y);
  60. // above
  61. GameObject plane_a = cube.transform.GetChild(0).gameObject;
  62. //plane_above.transform.localScale = cube_size;
  63. plane_a.transform.localScale = new Vector3(cube_size.x, wall_thickness, cube_size.y);
  64. plane_a.transform.localPosition = new Vector3(0, pos_cube.y, 0);//y x=0
  65. // front
  66. GameObject plane_b = cube.transform.GetChild(1).gameObject;
  67. plane_b.transform.localScale = new Vector3(cube_size.x, wall_thickness, cube_size.z);
  68. plane_b.transform.localPosition = new Vector3(0, 0, -pos_cube.z);
  69. // side
  70. GameObject plane_c = cube.transform.GetChild(2).gameObject;
  71. plane_c.transform.localScale = new Vector3(cube_size.y, wall_thickness, cube_size.z);
  72. plane_c.transform.localPosition = new Vector3(-pos_cube.x, 0, 0);
  73. // низ
  74. GameObject plane_d = cube.transform.GetChild(3).gameObject;
  75. plane_d.transform.localScale = new Vector3(cube_size.x, wall_thickness, cube_size.y);
  76. plane_d.transform.localPosition = new Vector3(0, -pos_cube.y, 0);
  77. // зад
  78. GameObject plane_e = cube.transform.GetChild(4).gameObject;
  79. plane_e.transform.localScale = new Vector3(cube_size.y, wall_thickness, cube_size.z);
  80. plane_e.transform.localPosition = new Vector3(pos_cube.x, 0, 0);
  81. // front 2
  82. GameObject plane_f = cube.transform.GetChild(5).gameObject;
  83. plane_f.transform.localScale = new Vector3(cube_size.x, wall_thickness, cube_size.z);
  84. plane_f.transform.localPosition = new Vector3(0, 0, pos_cube.z);
  85. }
  86. public static void Room(string room_name, Vector3 cube_size, Vector2 position = new Vector2())
  87. {
  88. //GameObject cube = GameObject.Find("Cube");
  89. var room = Instantiate(Resources.Load("GameObjects/RoomTest", typeof(GameObject)) as GameObject);
  90. room.name = room_name;
  91. cube_size = new Vector3(cube_size.x, cube_size.y, cube_size.z);
  92. Vector3 pos_cube = new Vector3(cube_size.x / 2f, cube_size.z / 2f, cube_size.y / 2f);
  93. room.transform.position = new Vector3(pos_cube.x + position.x, pos_cube.y, pos_cube.z + position.y);
  94. // above
  95. var SideA = room.transform.GetChild(0).gameObject;
  96. var panel_a = Instantiate(Resources.Load("GameObjects/Panel", typeof(GameObject)) as GameObject);
  97. panel_a.name = "Plane_a_" + 0;
  98. panel_a.transform.SetParent(SideA.transform);
  99. //GameObject plane_a = cube.transform.GetChild(0).gameObject;
  100. //plane_above.transform.localScale = cube_size;
  101. panel_a.transform.localScale = new Vector3(cube_size.x, 0.01f, cube_size.y);
  102. panel_a.transform.localPosition = new Vector3(0, pos_cube.y, 0);//y x=0
  103. panel_a.transform.rotation = SideA.transform.rotation;
  104. // front
  105. var SideB = room.transform.GetChild(1).gameObject;
  106. //GameObject plane_b = cube.transform.GetChild(1).gameObject;
  107. //plane_b.transform.localScale = new Vector3(cube_size.x, 0.01f, cube_size.z);
  108. for (int i = 0; i < cube_size.x; i++)
  109. {
  110. var panel = Instantiate(Resources.Load("GameObjects/Panel", typeof(GameObject))) as GameObject;
  111. panel.name = "Plane_b_" + i;
  112. panel.transform.SetParent(SideB.transform);
  113. panel.transform.localPosition = new Vector3(i, 0, -pos_cube.z);
  114. panel.transform.rotation = SideB.transform.rotation;
  115. }
  116. // side
  117. var SideC = room.transform.GetChild(2).gameObject;
  118. //GameObject plane_c = cube.transform.GetChild(2).gameObject;
  119. for (int i = 0; i > -cube_size.x; i--)
  120. {
  121. var panel = Instantiate(Resources.Load("GameObjects/Panel", typeof(GameObject))) as GameObject;
  122. panel.name = "Plane_c_" + i;
  123. panel.transform.SetParent(SideC.transform);
  124. panel.transform.position = new Vector3(i, 0, 0);
  125. panel.transform.rotation = SideC.transform.rotation;
  126. }
  127. // низ
  128. var SideD = room.transform.GetChild(3).gameObject;
  129. var panel_d = Instantiate(Resources.Load("GameObjects/Panel", typeof(GameObject))) as GameObject;
  130. //GameObject plane_d = cube.transform.GetChild(3).gameObject;
  131. panel_d.name = "Plane_d_" + 0;
  132. panel_d.transform.SetParent(SideD.transform);
  133. panel_d.transform.localScale = new Vector3(cube_size.x, 0.01f, cube_size.y);
  134. panel_d.transform.position = new Vector3(0, -pos_cube.y, 0);
  135. panel_d.transform.rotation = SideD.transform.rotation;
  136. // зад
  137. var SideE = room.transform.GetChild(4).gameObject;
  138. for (int i = 0; i > -cube_size.x; i--)
  139. {
  140. var panel = Instantiate(Resources.Load("GameObjects/Panel", typeof(GameObject))) as GameObject;
  141. //GameObject plane_e = cube.transform.GetChild(4).gameObject;
  142. panel.name = "Plane_e_" + i;
  143. panel.transform.SetParent(SideE.transform);
  144. panel.transform.position = new Vector3(pos_cube.x, 0, 0);
  145. panel.transform.rotation = SideE.transform.rotation;
  146. }
  147. // front 2
  148. var SideF = room.transform.GetChild(5).gameObject;
  149. for (int i = 0; i > -cube_size.x; i--)
  150. {
  151. var panel = Instantiate(Resources.Load("GameObjects/Panel", typeof(GameObject))) as GameObject;
  152. //GameObject plane_f = cube.transform.GetChild(5).gameObject;
  153. panel.name = "Plane_f_" + i;
  154. panel.transform.SetParent(SideF.transform);
  155. panel.transform.position = new Vector3(0, 0, pos_cube.z);
  156. panel.transform.rotation = SideF.transform.rotation;
  157. }
  158. }
  159. }