Esempio n. 1
0
    public void DisJoin()
    {
        _targetGroup = null;

        if (!_isVisible)
        {
            Destroy();
        }
    }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 public override void ResetState()
 {
     _targetGroup = null;
 }
Esempio n. 4
0
 public void Join(GroupPoolObject group)
 {
     _targetGroup = group;
 }