// 销毁笔头 public void DestroyPencilHead() { if (pencilHead != null) { mapEditor.DestroyMapElement(pencilHead.gridPos); } pencilHead = null; }
// 重新生成笔头 private void ReGeneratePencilHead() { DestroyPencilHead(); if (mapEditor.currentMapElement != null) { pencilHead = mapEditor.CreateMapElement(mapEditor.mouseGridPos, mapEditor.currentMapElement); } }
// 落笔 private void Paint() { if (pencilHead != null) { mapEditor.DestroyHideElement(pencilHead.gridPos); } pencilHead = null; ReGeneratePencilHead(); }
// 放置一个MapElement到地图 private E_MapElement PutMapElement(Vector2Int gridPos, E_MapElement mapElement) { HideMapElement(gridPos); elementDic.Set(gridPos, mapElement); mapElement.SetParent(map.mapElementHolder) .SetPosition(GridToWorld(gridPos)) .SetMap(map) .SetGridPos(gridPos); return(mapElement); }
// 创建并放置一个MapElement到地图 public E_MapElement CreateMapElement(Vector2Int gridPos, E_MapElement prefab) { E_MapElement mapElement = PrefabUtility.InstantiatePrefab(prefab) as E_MapElement; return(PutMapElement(gridPos, mapElement)); }