Пример #1
0
    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;
    }
Пример #2
0
    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);
    }