public void Destroy () { GameObject.DestroyImmediate(gameObject); foreach (string key in _combinables.Keys) for (var i = 0; i < _combinables[key].Count; ++i) { GameObject.DestroyImmediate(_combinables[key][i].mesh); GameObject.DestroyImmediate(_combinables[key][i].gameObject); } foreach (GameObject go in _combiners.Values) { if (go != null) { GameObject.DestroyImmediate(go.GetComponent<MeshFilter>().mesh); GameObject.DestroyImmediate(go); } } _combinables.Clear(); _combiners.Clear(); if (buildingMesh != null) buildingMesh.Destroy(); }