public void DisJoin() { _targetGroup = null; if (!_isVisible) { Destroy(); } }
void ShowGroups() { var map = (TileMap)this.target; EditorGUILayout.LabelField("Groups"); var groups = map.GetComponentsInChildren <GroupPoolObject>(); for (int i = 0; i < groups.Length; i++) { EditorGUILayout.BeginHorizontal(); var oldColor = GUI.backgroundColor; GUI.backgroundColor = groups[i].Color; if (_selectedGroup != groups[i]) { if (GUILayout.Button("Select " + groups[i].gameObject.name)) { _selectedGroup = groups[i]; } } else { GUILayout.Label("Selected"); } if (GUILayout.Button("Remove " + groups[i].gameObject.name)) { DestroyImmediate(groups[i].gameObject); for (int j = 0; j < groups[i].CellsCoordinates.Count; j++) { var cube = map.transform.Find( $"Tile_{(int)groups[i].CellsCoordinates[j].Position.x}_{(int)groups[i].CellsCoordinates[j].Position.z}"); if (cube == null) { continue; } DestroyImmediate(cube.gameObject); } } groups[i].Color = EditorGUILayout.ColorField(groups[i].Color); groups[i].PlayerPass = EditorGUILayout.Toggle(groups[i].PlayerPass); for (int j = 0; j < groups[i].CellsCoordinates.Count; j++) { var cube = map.transform.Find( $"Tile_{(int)groups[i].CellsCoordinates[j].Position.x}_{(int)groups[i].CellsCoordinates[j].Position.z}"); if (cube == null) { continue; } var cell = cube.GetComponent <CellPoolObject>(); cell.SetColor(groups[i].Color); } GUI.backgroundColor = oldColor; EditorGUILayout.EndHorizontal(); } if (!GUILayout.Button("Add New Group")) { return; } _selectedGroup = PrefabUtility.InstantiatePrefab(map.Pallete.GroupObject) as GroupPoolObject; if (_selectedGroup != null) { _selectedGroup.transform.SetParent(map.transform); _selectedGroup.transform.localPosition = Vector3.zero; _selectedGroup.gameObject.name = "Group_" + groups.Length; _selectedGroup.Color = Color.gray; } EditorUtility.SetDirty(map.gameObject); }
public override void ResetState() { _targetGroup = null; }
public void Join(GroupPoolObject group) { _targetGroup = group; }