private void Paste() { List <VoosEngine.CopyPasteActorRequest> copyPasteRequests = new List <VoosEngine.CopyPasteActorRequest>(); foreach (KeyValuePair <VoosActor, GameObject> entry in pastePreview) { if (entry.Key == null) { continue; } VoosActor baseActor = entry.Key.GetCloneParentActor() ?? entry.Key; if (baseActor.IsLockedByAnother() || baseActor == null) { continue; } int count = voosEngine.CountCopiesOf(baseActor); string baseName = baseActor.GetDisplayName(); string copyName = baseName + "-" + (count + 1); Vector3 position = entry.Value.transform.position; Quaternion rotation = entry.Key.GetRotation(); copyPasteRequests.Add(new VoosEngine.CopyPasteActorRequest { source = entry.Key, pastedPosition = position, pastedRotation = rotation, pastedDisplayName = copyName }); } List <VoosActor> pastedActors = voosEngine.CopyPasteActors(copyPasteRequests); undoStack.PushUndoForCreatingActors(pastedActors, $"Paste {pastedActors.Count} actors"); }