public override void OnInspectorGUI() { DrawDefaultInspector(); RoomCreator myScript = (RoomCreator)target; #region Кнопка загрузки данных о точках и создания комнат на основе данных if (GUILayout.Button("Download ListNodes & Build Rooms")) { ListNodesDownload(myScript); StoreysDefinition(myScript); BuildingRooms(myScript); } #endregion if (GUILayout.Button(ButtonName_FloorControllerBuilding)) { FloorManagerController manager = Instantiate(myScript.FloorManagerPrefab, Vector3.zero, Quaternion.identity); myScript.FloorManagers.Add(manager.transform); } }
void Setup() { //find grid size roomHeight = Mathf.RoundToInt(roomSizeWorldUnits.x); roomWidth = Mathf.RoundToInt(roomSizeWorldUnits.y); //create grid grid = new bool[roomWidth, roomHeight]; names = new string[roomWidth, roomHeight]; possibleBoss = new List <Vector2>(); possibleInit = new List <Vector2>(); //set grid's default state for (int x = 0; x < roomWidth - 1; x++) { for (int y = 0; y < roomHeight - 1; y++) { grid[x, y] = false; names[x, y] = ""; } } roomScript = GetComponent <RoomCreator>(); //set first walker //init list walkers = new List <walker>(); //create a walker walker newWalker = new walker(); newWalker.dir = RandomDirection(); //find center of grid Vector2 spawnPos = new Vector2(Mathf.RoundToInt(roomWidth / 2.0f), Mathf.RoundToInt(roomHeight / 2.0f)); newWalker.pos = spawnPos; //add walker to list walkers.Add(newWalker); }
// Awake is called before Start void Awake() { roomScript = GetComponent <RoomCreator>(); InitGame(); }
public virtual GameObject construct(GameObject prefab, Transform parent) { GameObject created = RoomCreator.construct(startPosition, dimensions, prefab, parent); return(created); }
public override void OnInspectorGUI() { base.OnInspectorGUI(); creator = (RoomCreator)target; var styleIntrolabel = new GUIStyle(GUI.skin.label) { alignment = TextAnchor.MiddleCenter }; EditorGUILayout.LabelField("To interact with grid press SPACE, in case of ADD nodes use DOUBLE SPACE ", styleIntrolabel); // Mode buttons GUILayout.BeginHorizontal(); var defaultGUIColor = GUI.backgroundColor; GUI.backgroundColor = Color.green; if (!addButtonToggled && !removeButtonToggled && !addObjFromPrefabToggled) { addChecked = false; removeChecked = false; addObjFromPrefabChecked = false; creator.SetMode(RoomCreator.RoomCreatorMode.DEFAULT); } addButtonToggled = GUILayout.Toggle(addButtonToggled, "ADD hex mode", "Button"); if (addButtonToggled && addButtonToggled != addChecked) { addChecked = true; removeButtonToggled = false; removeChecked = false; addObjFromPrefabToggled = false; addObjFromPrefabChecked = false; Debug.Log("ADD mode ON !"); creator.SetMode(RoomCreator.RoomCreatorMode.ADD); } else if (!addButtonToggled && addChecked) { addChecked = false; Debug.Log("Default mode !"); creator.SetMode(RoomCreator.RoomCreatorMode.DEFAULT); } GUI.backgroundColor = Color.red; removeButtonToggled = GUILayout.Toggle(removeButtonToggled, "REMOVE hex mode", "Button"); if (removeButtonToggled && removeButtonToggled != removeChecked) { removeChecked = true; addButtonToggled = false; addChecked = false; addObjFromPrefabToggled = false; addObjFromPrefabChecked = false; Debug.Log("REMOVE mode ON !"); creator.SetMode(RoomCreator.RoomCreatorMode.REMOVE); } else if (!removeButtonToggled && removeChecked) { removeChecked = false; Debug.Log("Default mode !"); creator.SetMode(RoomCreator.RoomCreatorMode.DEFAULT); } GUILayout.EndHorizontal(); GUI.backgroundColor = Color.cyan; addObjFromPrefabToggled = GUILayout.Toggle(addObjFromPrefabToggled, "ADD OBJECT from prefab mode", "Button"); if (addObjFromPrefabToggled && addObjFromPrefabToggled != addObjFromPrefabChecked) { addObjFromPrefabChecked = true; removeButtonToggled = false; removeChecked = false; addButtonToggled = false; addChecked = false; Debug.Log("ADD OBJ from prefab mode ON !"); creator.SetMode(RoomCreator.RoomCreatorMode.ADDOBJ); } else if (!addObjFromPrefabToggled && addObjFromPrefabChecked) { addObjFromPrefabChecked = false; Debug.Log("Default mode !"); creator.SetMode(RoomCreator.RoomCreatorMode.DEFAULT); } GUI.backgroundColor = defaultGUIColor; // Get is SPACE down Event e = Event.current; int controlID = GUIUtility.GetControlID(FocusType.Passive); switch (e.GetTypeForControl(controlID)) { case EventType.KeyDown: if (e.keyCode == KeyCode.Space) { // Actions if (creator.Mode == RoomCreator.RoomCreatorMode.ADD) { creator.InteractWithGhosts(); } else if (creator.Mode == RoomCreator.RoomCreatorMode.REMOVE) { creator.DeleteNode(); } else if (creator.Mode == RoomCreator.RoomCreatorMode.ADDOBJ) { creator.SpawnObject(); } } break; } // Add drop menu in Add prefab mode if (creator.Mode == RoomCreator.RoomCreatorMode.ADDOBJ) { var stylePrefLabel = new GUIStyle(GUI.skin.label) { alignment = TextAnchor.MiddleCenter }; stylePrefLabel.fontStyle = FontStyle.Bold; EditorGUILayout.LabelField("SELECT ROOM PREFAB", stylePrefLabel); creator.RoomEditorType = (EditorPrefabsScriptable.PrefabRoomEditorType)EditorGUILayout.EnumPopup("Room prefab type", creator.RoomEditorType); // select room prefab List <string> prefabNames = new List <string>(); foreach (EditorPrefabsScriptable scriptable in EditorPrefabsScriptable.FindPrefabsByType(creator.RoomEditorType, creator.editorScriptables)) { prefabNames.Add(scriptable.name); } prefabChoice = EditorGUILayout.Popup(prefabChoice, prefabNames.ToArray()); creator.Rotation = (RoomCreator.RotationType)EditorGUILayout.EnumPopup("Rotation", creator.Rotation); GUI.enabled = false; creator.SelectedPrefab = (GameObject)EditorGUILayout.ObjectField(new GUIContent("Selected Prefab", "Add object to fracture"), creator.SelectedPrefab, typeof(GameObject), false); GUI.enabled = true; SerializedObject so = new SerializedObject(target); SerializedProperty stringsProperty = so.FindProperty("editorScriptables"); EditorGUILayout.PropertyField(stringsProperty, true); // True means show children so.ApplyModifiedProperties(); // Remember to apply modified properties } if (creator.SelectedScriptable == null && creator.editorScriptables.Length != 0) { creator.SelectedScriptable = creator.editorScriptables[0]; if (creator.SelectedScriptable) { creator.SelectedPrefab = creator.SelectedScriptable.Prefab; } } // Change room prefab type else if (creator.editorScriptables.Length != 0 && (creator.SelectedScriptable.Type != creator.RoomEditorType)) { prefabChoice = 0; creator.SelectedScriptable = EditorPrefabsScriptable.FindPrefabsByType(creator.RoomEditorType, creator.editorScriptables)[prefabChoice]; if (creator.SelectedScriptable) { creator.SelectedPrefab = creator.SelectedScriptable.Prefab; } } // Change room prefab else if (creator.editorScriptables.Length != 0 && oldPrefabChoice != prefabChoice) { oldPrefabChoice = prefabChoice; creator.SelectedScriptable = EditorPrefabsScriptable.FindPrefabsByType(creator.RoomEditorType, creator.editorScriptables)[prefabChoice]; if (creator.SelectedScriptable) { creator.SelectedPrefab = creator.SelectedScriptable.Prefab; } } }
public void Prime(GameObject tile, RoomCreator destinationRoom, Vector2 destinationCoords) { _tile = tile; _dr = destinationRoom; _dc = destinationCoords; }
private void BuildingRooms(RoomCreator manager) { #region удаляем и создаем новый контейнер if (manager.WallContainer != null) { while (manager.WallContainer.childCount > 0) { DestroyImmediate(manager.WallContainer.GetChild(0).gameObject); } DestroyImmediate(manager.WallContainer.gameObject); } manager.WallContainer = Instantiate(manager.PrefabNodeContainer, new Vector3(0, 0, 0), Quaternion.identity); #endregion for (int i = 0; i < manager.LinkNodes.Count; i++) { for (int j = 0; j < manager.LinkNodes[i].toNode.Count; j++) { Transform wall = Instantiate(manager.WallPrefab, (manager.LinkNodes[i].NodePosition + manager.LinkNodes[i].toNode[j] + new Vector3(0, manager.Height, 0)) / 2, Quaternion.identity, manager.WallContainer); manager.ConverterMesh.GetPolygonTree(wall.gameObject); keys = manager.ConverterMesh.GetKeys(); if (manager.BuildWithMeshEditing == RoomCreator.statesBuilds.WithMeshEdit) { InstantinateWallWithEditMesh(manager, wall, manager.LinkNodes[i].toNode[j], manager.LinkNodes[i].NodePosition); } else if (manager.BuildWithMeshEditing == RoomCreator.statesBuilds.WithoutMeshEdit) { wall.LookAt(manager.LinkNodes[i].NodePosition + new Vector3(0, manager.Height / 2, 0)); wall.localScale = new Vector3(manager.Width, manager.Height, Vector3.Distance(manager.LinkNodes[i].NodePosition, manager.LinkNodes[i].toNode[j]) + manager.Width); } else if (manager.BuildWithMeshEditing == RoomCreator.statesBuilds.Combination) { int axiesChanges = 0; Vector3 vector = manager.LinkNodes[i].NodePosition - manager.LinkNodes[i].toNode[j]; if (Mathf.Abs(vector.x) > 0) { axiesChanges++; } if (Mathf.Abs(vector.y) > 0) { axiesChanges++; } if (Mathf.Abs(vector.z) > 0) { axiesChanges++; } if (axiesChanges > 1) { InstantinateWallWithEditMesh(manager, wall, manager.LinkNodes[i].toNode[j], manager.LinkNodes[i].NodePosition); } else { wall.LookAt(manager.LinkNodes[i].NodePosition + new Vector3(0, manager.Height / 2, 0)); wall.localScale = new Vector3(manager.Width, manager.Height, Vector3.Distance(manager.LinkNodes[i].NodePosition, manager.LinkNodes[i].toNode[j]) + manager.Width); } } } } if (manager.BuildWithMeshEditing != RoomCreator.statesBuilds.WithoutMeshEdit) { SaveAndLoadAssetWithMenu.DownloadMeshes_andSaveRooms(manager); } }
private void Awake() { rc = GetComponent <RoomCreator>(); }
void Awake() { roomCreator = GetComponent <RoomCreator>(); }
private void Button3_Click(object sender, EventArgs e) { RoomCreator room = new RoomCreator(l); room.ShowDialog(); }
private bool LoadLevel() { RoomCreator creator = GameObject.FindGameObjectWithTag("RoomCreator").GetComponent <RoomCreator>(); return(creator.LoadNextLevel(transform)); }
private void DestroyLevel() { RoomCreator creator = GameObject.FindGameObjectWithTag("RoomCreator").GetComponent <RoomCreator>(); creator.DestroyOldLevel(); }
static void Init() { RoomCreator window = (RoomCreator)EditorWindow.GetWindow(typeof(RoomCreator)); window.Show(); }