public void Replace(Placable oldPlacable, PlacableData newData) { currentPlacing = Instantiate(newData.Prefab).GetComponent <Placable>(); currentPlacing.Data = newData; currentPlacing.transform.SetParent(oldPlacable.transform.parent); currentPlacing.transform.localPosition = oldPlacable.transform.localPosition; currentPlacing.transform.localRotation = oldPlacable.transform.localRotation; currentPlacing.transform.localScale = oldPlacable.transform.localScale; currentArea.RemoveFromArea(oldPlacable); Destroy(oldPlacable.gameObject); currentArea.AddToArea(currentPlacing); currentPlacing = null; }
public Placable PlaceAt(PlacementArea area, PlacableData placable, Vector3 position, Vector3 rotation, bool onNav = false) { Placable newPlacable = null; if (onNav) { newPlacable = Instantiate(placable.Prefab, GetWorldNavPos(position), Quaternion.identity).GetComponent <Placable>(); newPlacable.Data = placable; newPlacable.transform.SetParent(area.Contents); } else { newPlacable = Instantiate(placable.Prefab).GetComponent <Placable>(); newPlacable.Data = placable; newPlacable.transform.SetParent(area.Contents); newPlacable.transform.localPosition = position; } newPlacable.transform.localRotation = Quaternion.Euler(rotation); newPlacable.transform.localScale = Vector3.one; area.AddToArea(newPlacable); return(newPlacable); }