public void Action() { structureModule.AddNode(nameObject.text); string typeObject = null; switch (typebject.value) { case 0: if (metabject.isOn) { typeObject = "Metavertex"; } else { typeObject = "Vertex"; } break; case 1: if (metabject.isOn) { typeObject = "Metagraph"; } else { typeObject = "Graph"; } break; } structureModule.AddNodeData(nameObject.text, objectType: typeObject); SetStandartStartPosition(); predicateModule.TactBuild(nameObject.text, typeObject); }
// Пересобирает окружение в зависимости от режима (удаление части или перестройка), требуется имя части. public void RebuildObject(string typeRebuild, string name = null) { Structure target = (name != null) ? structureM.structure[name] : interactionM.targetObject; // Пересоздаём всех детей. //foreach (var part in target.ChildStructures) //{ // DeleteObject(part.Value.gameObject); // if (typeRebuild == "rebuild") // { // predicateM.TactBuild(part.Value.Name, part.Value.ObjectType); // } //} // Пересоздаём всех детей. foreach (var part in target.ChildStructures) { DeleteObject(part.Value.gameObject); if (typeRebuild == "delete") { part.Value.ParentStructures.Remove(target.Name); } predicateM.TactBuild(part.Value.Name, part.Value.ObjectType); } // Пересоздаём всех родителей. foreach (var part in target.ParentStructures) { DeleteObject(part.Value.gameObject); if (typeRebuild == "delete") { part.Value.ChildStructures.Remove(target.Name); } predicateM.TactBuild(part.Value.Name, part.Value.ObjectType); } DeleteObject(target.gameObject); if (typeRebuild == "delete") { structureM.structure.Remove(target.Name); } if (typeRebuild == "rebuild") { predicateM.TactBuild(saveSelectName, target.ObjectType); } }
// Если сделали двойной клик в пустоту. public void DoubleTapToNull() { //Debug.Log("Я кликнул два раза в пустоту"); isConnection = false; SelectActive(startConnectionObject, false); startConnectionObject = null; string name = PredicateModule.NameSystem.GetName("Vertex"); Vector3[] position = new Vector3[1]; // 5f - расстояние создания. Vector3 mousePosFar = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 5f); position[0] = Camera.main.ScreenToWorldPoint(mousePosFar); structureM.AddNode(name); structureM.AddNodeData(name, position, "Vertex"); predicateM.TactBuild(name, "Vertex"); changeM.ResetChange(); isNowSelected = true; freeCamera.selectedObject = name; changeM.ShowChangeMenu(name); }