public void InstantiatePreviewTileAtPosition(GridTile tilePrefab, Vector2Int position, Vector3 offsetPosition, Quaternion rotation) { // Parameters var gridCellCenter = GridManager.Instance.m_Grid.GetCellCenterWorld(position.ToVector3IntXY0()); var worldPosition = gridCellCenter + offsetPosition; GridTile instantiatedTile = null; if (PrefabUtility.IsPartOfPrefabAsset(tilePrefab.gameObject)) { instantiatedTile = (GridTile)PrefabUtility.InstantiatePrefab(tilePrefab); } else { instantiatedTile = (GridTile)Instantiate(tilePrefab, worldPosition, rotation, m_PreviewObjectsHolder) as GridTile; } instantiatedTile.transform.parent = m_PreviewObjectsHolder; instantiatedTile.transform.position = worldPosition; instantiatedTile.transform.rotation = rotation; // Preview tile var previewTile = new PreviewObject(instantiatedTile.gameObject, position); m_PreviewObjects.Add(previewTile); // Make the renderers attached to it transparent MakeVisualizerTransparent(instantiatedTile.transform); // Destroy the grid component //DestroyImmediate(instantiatedTile); var components = instantiatedTile.GetComponents <MonoBehaviour>(); foreach (MonoBehaviour comp in components) { comp.enabled = false; } }