Browse Source

Save location

Виктор Шейко 4 years ago
parent
commit
2f37730681

File diff suppressed because it is too large
+ 1328 - 305
Assets/Scenes/Player.unity


+ 1 - 1
Assets/Scripts/Components/WallCreate.cs

@@ -12,7 +12,7 @@ public class WallCreate : MonoBehaviour
     public int Rounding = 1;
     public bool move = false;
     public bool BoxColliderEnabled = true;
-    public enum Mode { Wall, Room, Pole};
+    public enum Mode { Wall, Room, Pole, Cursor};
     public static Mode mode = Mode.Wall;
     GameObject wall;
     public static List<GameObject> Walls = new List<GameObject>();

+ 22 - 3
Assets/Scripts/Controllers/EditorController.cs

@@ -24,10 +24,16 @@ public class EditorController : MonoBehaviour
 
     public List<Beacon> Beacons = new List<Beacon>();
 
+    PlayerController player;
+    ModeController mode;
+    ToolsController tools;
+
     // Start is called before the first frame update
     void Start()
     {
-        
+        player = GameObject.Find("Canvas").transform.GetChild(2).GetComponent<PlayerController>();
+        mode = GameObject.Find("ButtonMode").GetComponent<ModeController>();
+        tools = GameObject.Find("EditorTools").GetComponent<ToolsController>();
     }
 
     // Update is called once per frame
@@ -66,12 +72,25 @@ public class EditorController : MonoBehaviour
 
     public void Save()
     {
-        SceneManager.LoadScene("Location");
+        //SceneManager.LoadScene("Location");
+        tools.CursorOff();
+        mode.Switch();
+        var l = new Location { id = PlayerController.locations.Count, name = Name.text };
+        PlayerController.locations.Add(l);
+        player.DropdownLocation.options.Add(new Dropdown.OptionData(l.name));
+        var locations = GameObject.Find("Locations").gameObject;
+        var location = new GameObject();
+        location.name = l.name;
+        location.transform.SetParent(locations.transform);
+        foreach (var w in WallCreate.Walls)
+            w.transform.SetParent(location.transform);
+        player.maps.Add(location);
     }
 
     public void Back()
     {
-        SceneManager.LoadScene("Location");
+        //SceneManager.LoadScene("Location");
+        mode.Switch();
     }
 
     public void AddBeacon()

+ 15 - 10
Assets/Scripts/Controllers/ModeController.cs

@@ -32,16 +32,7 @@ public class ModeController : MonoBehaviour
         player = GameObject.Find("Player").GetComponent<PlayerController>();
         button = gameObject.GetComponent<Button>();
         button.onClick.AddListener(() => {
-            editor = !editor;
-            transform.GetChild(0).gameObject.SetActive(!editor);
-            transform.GetChild(1).gameObject.SetActive(editor);
-
-            if (editor)
-            {
-                player.StopProgress(); 
-                EditorMode();
-            }
-            else PlayerMode();
+            Switch();
         });
     }
 
@@ -51,6 +42,20 @@ public class ModeController : MonoBehaviour
         
     }
 
+    public void Switch()
+    {
+        editor = !editor;
+        transform.GetChild(0).gameObject.SetActive(!editor);
+        transform.GetChild(1).gameObject.SetActive(editor);
+
+        if (editor)
+        {
+            player.StopProgress();
+            EditorMode();
+        }
+        else PlayerMode();
+    }
+
     void PlayerMode()
     {
         Player.SetActive(true);

+ 7 - 48
Assets/Scripts/Controllers/ToolsController.cs

@@ -7,22 +7,12 @@ using UnityEngine.UI;
 
 public class ToolsController : MonoBehaviour
 {
-    //public Button ButtonWall;
-    //public Button ButtonRoom;
-    //public Button ButtonDel;
     public GameObject Cursor;
     public int Rounding = 1;
-    //public List<GameObject> Walls = new List<GameObject>();
     
     enum Tools { Wall, Room, Del, Cursor};
     Tools tools = Tools.Cursor;
 
-    private Vector3 screenPoint;
-    private Vector3 offset;
-    private Vector3 curScreenPoint;
-    private Vector3 curPosition;
-
-    bool new_well = false;
 
     // Start is called before the first frame update
     void Start()
@@ -36,26 +26,22 @@ public class ToolsController : MonoBehaviour
        
     }
 
+    public void CursorOff()
+    {
+        Cursor.SetActive(false);
+        tools = Tools.Cursor;
+        WallCreate.mode = WallCreate.Mode.Cursor;
+    }
+
     public void WallEdit()
     {
-        //tools = Tools.Wall;
         Cursor.SetActive(true);
         WallCreate.mode = WallCreate.Mode.Wall;
-        //var last =  Walls.LastOrDefault();
-        //if(last != null)last.GetComponent<RoomController>().BoxColliderEnabled = false;
     }
 
 
     public void RoomEdit()
     {
-        //tools = Tools.Room;
-
-        //var Cube = Instantiate(Resources.Load("GameObjects/Cube", typeof(GameObject))) as GameObject;
-        //LocationController.Cube(Cube, new Vector3(0.1f, 0.1f, 1));
-        //Cube.AddComponent<RoomController>();
-        ////Cube.transform.position = new Vector3(0.5f, 0.5f, 0.5f);
-        //new_well = true;
-        //Walls.Add(Cube);
         Cursor.SetActive(true);
         WallCreate.mode = WallCreate.Mode.Room;
     }
@@ -65,31 +51,4 @@ public class ToolsController : MonoBehaviour
         tools = Tools.Del;
     }
 
-    //void Editor()
-    //{
-    //    switch (tools)
-    //    {
-    //        case Tools.Room:
-    //            var Cube = Instantiate(Resources.Load("GameObjects/Cube", typeof(GameObject))) as GameObject;
-    //            Cube.AddComponent<RoomController>();
-    //            Walls.Add(Cube);
-    //            break;
-    //    }
-    //}
-
-    //void OnMouseDown()
-    //{
-    //    //Debug.Log(StagesEditorController.indexCursor);
-    //    switch (tools)
-    //    {
-    //        case Tools.Room:
-    //            screenPoint = Camera.main.WorldToScreenPoint(gameObject.transform.position);
-    //            offset = gameObject.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
-    //            break;
-    //    }
-
-    //}
-
-    // Перемещение
-
 }