123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Linq;
- using UnityEngine;
- using UnityEngine.AI;
- /// <summary>
- /// Проектирование помещения
- /// </summary>
- public class LocationController : MonoBehaviour
- {
- public uint id;
- public List<GameObject> rooms;
- public GameObject Ground;
- public GameObject Walls;
- public GameObject Zones;
- public GameObject Beacons;
- Location location;
- //public GameObject Location;
- // Start is called before the first frame update
- void Start()
- {
- // location_22
- //var rooms_0 = rooms.ElementAt(0);
- //Cube(rooms_0, new Vector3(6, 8, 1)); //x=6 y=8 h1
- //var rooms_1 = rooms.ElementAt(1);
- //Cube(rooms_1, new Vector3(2, 10, 1), new Vector2(6, 0));
- //var rooms_2 = rooms.ElementAt(2);
- //Cube(rooms_2, new Vector3(5, 4, 1), new Vector2(8, 5));
- // location_25
- //var rooms_0 = Instantiate(Resources.Load("GameObjects/Cube", typeof(GameObject)) as GameObject);
- //rooms_0.transform.SetParent(Location.transform);
- //Cube(rooms_0, new Vector3(3.57f, 6.31f, 1)); //x=6 y=8 h1
- //rooms.Add(rooms_0);
- //var rooms_1 = Instantiate(Resources.Load("GameObjects/Cube", typeof(GameObject)) as GameObject);
- //rooms_1.transform.SetParent(Location.transform);
- //Cube(rooms_1, new Vector3(4, 3.7f, 1), new Vector2(3.57f, 0)); //x=6 y=8 h1
- //rooms.Add(rooms_1);
- //var rooms_2 = Instantiate(Resources.Load("GameObjects/Cube", typeof(GameObject)) as GameObject);
- //rooms_2.transform.SetParent(Location.transform);
- //Cube(rooms_2, new Vector3(3, 4.46f, 1), new Vector2(3.57f, 1.85f)); //x=6 y=8 h1
- //rooms.Add(rooms_2);
- // location_1
- var rooms_0 = Instantiate(Resources.Load("GameObjects/Cube", typeof(GameObject)) as GameObject);
- rooms_0.transform.SetParent(transform);
- Cube(rooms_0, new Vector3(22.8f, 5.5f, 1)); //x=6 y=8 h1
- rooms.Add(rooms_0);
- //var rooms_1 = rooms.ElementAt(1);
- //Cube(rooms_1, new Vector3(2, 10, 1), new Vector2(6, 0));
- //var rooms_2 = rooms.ElementAt(2);
- //Cube(rooms_2, new Vector3(5, 4, 1), new Vector2(8, 5));
- //Room("r0", new Vector3(6, 8, 1)); //x=6 y=8 h1
- //Room("r1", new Vector3(2, 10, 1), new Vector2(6, 0));
- //Room("r2", new Vector3(5, 4, 1), new Vector2(8, 5));
- }
- // Update is called once per frame
- void Update()
- {
- }
- public static void Cube(GameObject cube, Vector3 cube_size, Vector2 position = new Vector2(), float wall_thickness = 0.01f)
- {
- //GameObject cube = GameObject.Find("Cube");
- cube_size = new Vector3(cube_size.x, cube_size.y, cube_size.z);
- Vector3 pos_cube = new Vector3(cube_size.x / 2f, cube_size.z / 2f, cube_size.y / 2f);
- cube.transform.position = new Vector3(pos_cube.x + position.x, pos_cube.y, pos_cube.z + position.y);
- // above
- GameObject plane_a = cube.transform.GetChild(0).gameObject;
- //plane_above.transform.localScale = cube_size;
- plane_a.transform.localScale = new Vector3(cube_size.x, wall_thickness, cube_size.y);
- plane_a.transform.localPosition = new Vector3(0, pos_cube.y, 0);//y x=0
- // front
- GameObject plane_b = cube.transform.GetChild(1).gameObject;
- plane_b.transform.localScale = new Vector3(cube_size.x, wall_thickness, cube_size.z);
- plane_b.transform.localPosition = new Vector3(0, 0, -pos_cube.z);
- // side
- GameObject plane_c = cube.transform.GetChild(2).gameObject;
- plane_c.transform.localScale = new Vector3(cube_size.y, wall_thickness, cube_size.z);
- plane_c.transform.localPosition = new Vector3(-pos_cube.x, 0, 0);
- // низ
- GameObject plane_d = cube.transform.GetChild(3).gameObject;
- plane_d.transform.localScale = new Vector3(cube_size.x, wall_thickness, cube_size.y);
- plane_d.transform.localPosition = new Vector3(0, -pos_cube.y, 0);
- // зад
- GameObject plane_e = cube.transform.GetChild(4).gameObject;
- plane_e.transform.localScale = new Vector3(cube_size.y, wall_thickness, cube_size.z);
- plane_e.transform.localPosition = new Vector3(pos_cube.x, 0, 0);
- // front 2
- GameObject plane_f = cube.transform.GetChild(5).gameObject;
- plane_f.transform.localScale = new Vector3(cube_size.x, wall_thickness, cube_size.z);
- plane_f.transform.localPosition = new Vector3(0, 0, pos_cube.z);
- }
- public static void Room(string room_name, Vector3 cube_size, Vector2 position = new Vector2())
- {
- //GameObject cube = GameObject.Find("Cube");
- var room = Instantiate(Resources.Load("GameObjects/RoomTest", typeof(GameObject)) as GameObject);
- room.name = room_name;
- cube_size = new Vector3(cube_size.x, cube_size.y, cube_size.z);
- Vector3 pos_cube = new Vector3(cube_size.x / 2f, cube_size.z / 2f, cube_size.y / 2f);
- room.transform.position = new Vector3(pos_cube.x + position.x, pos_cube.y, pos_cube.z + position.y);
- // above
- var SideA = room.transform.GetChild(0).gameObject;
- var panel_a = Instantiate(Resources.Load("GameObjects/Panel", typeof(GameObject)) as GameObject);
- panel_a.name = "Plane_a_" + 0;
- panel_a.transform.SetParent(SideA.transform);
- //GameObject plane_a = cube.transform.GetChild(0).gameObject;
- //plane_above.transform.localScale = cube_size;
- panel_a.transform.localScale = new Vector3(cube_size.x, 0.01f, cube_size.y);
- panel_a.transform.localPosition = new Vector3(0, pos_cube.y, 0);//y x=0
- panel_a.transform.rotation = SideA.transform.rotation;
- // front
- var SideB = room.transform.GetChild(1).gameObject;
- //GameObject plane_b = cube.transform.GetChild(1).gameObject;
- //plane_b.transform.localScale = new Vector3(cube_size.x, 0.01f, cube_size.z);
- for (int i = 0; i < cube_size.x; i++)
- {
- var panel = Instantiate(Resources.Load("GameObjects/Panel", typeof(GameObject))) as GameObject;
- panel.name = "Plane_b_" + i;
- panel.transform.SetParent(SideB.transform);
- panel.transform.localPosition = new Vector3(i, 0, -pos_cube.z);
- panel.transform.rotation = SideB.transform.rotation;
- }
- // side
- var SideC = room.transform.GetChild(2).gameObject;
- //GameObject plane_c = cube.transform.GetChild(2).gameObject;
- for (int i = 0; i > -cube_size.x; i--)
- {
- var panel = Instantiate(Resources.Load("GameObjects/Panel", typeof(GameObject))) as GameObject;
- panel.name = "Plane_c_" + i;
- panel.transform.SetParent(SideC.transform);
- panel.transform.position = new Vector3(i, 0, 0);
- panel.transform.rotation = SideC.transform.rotation;
- }
- // низ
- var SideD = room.transform.GetChild(3).gameObject;
- var panel_d = Instantiate(Resources.Load("GameObjects/Panel", typeof(GameObject))) as GameObject;
- //GameObject plane_d = cube.transform.GetChild(3).gameObject;
- panel_d.name = "Plane_d_" + 0;
- panel_d.transform.SetParent(SideD.transform);
- panel_d.transform.localScale = new Vector3(cube_size.x, 0.01f, cube_size.y);
- panel_d.transform.position = new Vector3(0, -pos_cube.y, 0);
- panel_d.transform.rotation = SideD.transform.rotation;
- // зад
- var SideE = room.transform.GetChild(4).gameObject;
- for (int i = 0; i > -cube_size.x; i--)
- {
- var panel = Instantiate(Resources.Load("GameObjects/Panel", typeof(GameObject))) as GameObject;
- //GameObject plane_e = cube.transform.GetChild(4).gameObject;
- panel.name = "Plane_e_" + i;
- panel.transform.SetParent(SideE.transform);
- panel.transform.position = new Vector3(pos_cube.x, 0, 0);
- panel.transform.rotation = SideE.transform.rotation;
- }
- // front 2
- var SideF = room.transform.GetChild(5).gameObject;
- for (int i = 0; i > -cube_size.x; i--)
- {
- var panel = Instantiate(Resources.Load("GameObjects/Panel", typeof(GameObject))) as GameObject;
- //GameObject plane_f = cube.transform.GetChild(5).gameObject;
- panel.name = "Plane_f_" + i;
- panel.transform.SetParent(SideF.transform);
- panel.transform.position = new Vector3(0, 0, pos_cube.z);
- panel.transform.rotation = SideF.transform.rotation;
- }
- }
- /// <summary>
- /// Загрузка текстуры
- /// </summary>
- public void GroundTexture(string url)
- {
- StartCoroutine(SendingFormController.LoadImage(url, Ground, Ground.transform.position, Ground.transform.localScale));
- }
- public void GroundResize(float x, float y)
- {
- Ground.transform.localScale = new Vector3(x, 1, y);
- var scale = Ground.transform.localScale;
- Ground.transform.position = new Vector3(scale.x * 5, 0, scale.z * 5);
- }
- /// <summary>
- /// опт
- /// </summary>
- /// <param name="location"></param>
- public void LoadObj(Location location)
- {
- var z = Zones.GetComponent<ZonesEditorController>();
-
- }
- }
|