# Copia/Incolla

Esiste una funzione di copia/incolla legata agli oggetti in scena che ci consente di integrare una molteplicità di elementi uguali senza doverli prelevare di volta in volta dall'[asset pack](/coderblock-studio/builder-tool-guida-avanzata/ambiente-di-lavoro/strumenti-di-progettazione/asset-packs.md), conservando i valori di edit dell'oggetto copiato. Ovviamente la conservazione dei lavori di edit comporta una sovrapposizione dell'oggetto incollato con il suo originale, ma esso si presenterà in uno stato non confermato, quindi con uno strumento attivo che possa consentire eventuali rotazioni, spostamenti o scaling in funzione delle nostre esigenze.

Un tipico esempio è quello di una platea di sedie orientate verso un palco, ovvero un posizionamento con eventuale rotazione ripetuto **n** volte in diversi punti dello spazio, tendenzialmente distanziati con una certa regolarità.

Questo strumento non ha un corrispettivo sulla HUD, ma solamente delle shortcut, e trattandosi di copia/incolla, le shortcut sono come di consueto **ctrl+C** e **ctrl+V** (**cmd+C**/**cmd+V** da sistemi Mac). Basterà quindi selezionare l'oggetto interessato, copiarlo, incollarlo, e posizionarlo come desiderato.

{% hint style="danger" %}
I comandi di copia/incolla sono contestuali. Ciò significa che vanno eseguiti nello spazio corretto in funzione del riferimento. Per copiare un oggetto sarà necessario selezionarlo e non spostare il focus del mouse altrove, come una differente scheda o applicazione, dove un comando "incolla" potrebbe dare esiti differenti. Infatti se il mouse fosse altrove nel browser e si selezionasse la barra delle URL, il comando "incolla" non darebbe alcun risultato o potrebbe incollare ulteriori stringhe di testo inserite precedentemente in memoria.
{% endhint %}

Per dare una dimostrazione dello strumento copia/incolla, sfrutteremo una variante del playground eliminando parte degli oggetti nello spazio lasciando solo il cubo giallo, come riferimento spaziale al centro della scena. Li selezioniamo uno ad uno e li eliminiamo con il pulsante erase <img src="/files/yfMqh3NM3Ntx4lZdem04" alt="" data-size="line">.

<figure><img src="/files/6f2rY90A1sB57E4DyvdW" alt="" width="563"><figcaption></figcaption></figure>

Al posto dei cubi rimossi il risultato che vogliamo ottenere è nell'esempio che segue: posizioneremo un solo cubo rosso e gli assegneremo una rotazione. Andremo poi a distribuire gli altri copiando il primo.

<figure><img src="/files/fOepxPncBTfDD3MXAWMO" alt="" width="563"><figcaption></figcaption></figure>

Selezionando dall'asset pack un cubo rosso lo posizioniamo nel punto desiderato.

<figure><img src="/files/vUjNMfaT3smDTIZV7UnW" alt="" width="563"><figcaption></figcaption></figure>

Conservando la selezione attiva sul cubo aggiustiamo se necessario la posizione, poi impostiamo lo strumento di rotazione, e settiamo 45° sull'asse <mark style="color:green;">**y**</mark>. Questo il risultato:

<figure><img src="/files/SMFWCzmPtm1sxV3fiGVn" alt="" width="563"><figcaption></figcaption></figure>

Non è realmente necessario confermare l'oggetto una volta posizionato correttamente: se siamo certi delle impostazioni fornite sarà sufficiente copiarlo (ctrl+C/cmd+C) quando questo è selezionato, avendo cura di mantenere il selettore del mouse nell'area di lavoro e non sulle parti esterne della HUD (asset pack o pannelli di customizzazione eventuali).

<figure><img src="/files/Olq7lhza6ZXzJmYQ9Tqr" alt="" width="563"><figcaption></figcaption></figure>

Incollando l'oggetto appena copiato (ctrl+V/cmd+V) questo si posizionerà in perfetta sovrapposizione.

<figure><img src="/files/CrWCcgvkVh3Pqg5xcIPi" alt="" width="563"><figcaption></figcaption></figure>

Possiamo notare come si conservino oltre chiaramente all'entità dell'oggetto scelto, anche la posizione, la rotazione e l'ultimo strumento selezionato. In questo caso lo strumento si traslazione. Spostiamo dunque l'oggetto nelle coordinate desiderate. Possiamo farlo tramite l'azione sugli assi o tramite input diretto.

<figure><img src="/files/RorIwiMY54H3CyTbroGG" alt="" width="563"><figcaption></figcaption></figure>

Prima di confermare, possiamo valutare ora due opportunità:

* ripetere nuovamente l'operazione di copia/incolla replicando quindi il nuovo oggetto nella selezione attiva
* ripetere solamente la funzione di incollaggio, che si riferirà quindi all'oggetto precedentemente copiato.

Procediamo in questo caso con la prima ipotesi, mantenendo quindi la selezione attiva sul nuovo oggetto e di nuovo la coppia di comandi.

<figure><img src="/files/akQvOpYLfvlRXU2snt9o" alt="" width="563"><figcaption></figcaption></figure>

L'oggetto della selezione attiva viene quindi copiato e incollato su se stesso.

Lo spostiamo quindi nella posizione desiderata e confermiamo l'operazione.

<figure><img src="/files/GtDF7qh7QdMIIow5PJS8" alt="" width="563"><figcaption></figcaption></figure>

Delle ipotesi precedenti ora sfruttiamo la seconda: un oggetto è già in memoria di copia, quello centrale, e quindi senza selezionare nulla, replichiamo solamente il comando per incollare.

<figure><img src="/files/OM08cxjQnXmtnelF8d81" alt="" width="563"><figcaption></figcaption></figure>

Il nuovo cubo assumerà come ci si aspettava la medesima posizione dell'oggetto copiato in precedenza. Lo spostiamo quindi nella posizione desiderata.

{% hint style="info" %}
Questa soluzione, specialmente quando abbiamo a che fare con una progressione in serie di oggetti (come una fila di sedie), potrebbe non essere la scelta ideale, in quanto ci costringerebbe a spostamenti sequenziali di volta in volta maggiori rispetto alla posizione iniziale.

Torna invece utile qualora volessimo incollare e spostare degli elementi intorno ad uno di partenza, in quanto avendo un riferimento centrale ben preciso, anche il calcolo degli spostamenti, e la quantità di movimento che dobbiamo applicare, sono agevolati.&#x20;
{% endhint %}

<figure><img src="/files/WUHtUgLDOy0sG0AIGFPz" alt="" width="563"><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs-it.coderblock.com/coderblock-studio/builder-tool-guida-avanzata/ambiente-di-lavoro/strumenti-di-progettazione/gizmo-e-manipolazione-degli-asset/copia-incolla.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
