Как скопировать объект в юнити
Перейти к содержимому

Как скопировать объект в юнити

  • автор:

Сочетания клавиш Unity

Это обзор горячих клавиш Unity, установленных по умолчанию. Вы также можете скачать таблицу в формате PDF для Windows и MacOSX. Если сочетание клавиш содержит CTRL/CMD, это означает, что нужно использовать клавишу Control на Windows или клавишу Command на MacOSX.

Tools
“Горячая” клавиша Действие
Q Pan (перемещение камеры сцены)
W Move (перемещение)
E Rotate (вращение)
R Scale (масштабирование)
T Rect Tool
Z Pivot Mode toggle (переключение Pivot-режима)
X Pivot Rotation Toggle (переключение поворота пивота)
V Vertex Snap (привязка вершин)
CTRL/CMD+ЛКМ Snap (привязка)
GameObject
CTRL/CMD+SHIFT+N Создать новый игровой объект
ALT+SHIFT+N New empty child to selected game object
CTRL/CMD+ALT+F Переместить объект к точке вида
CTRL/CMD+SHIFT+F Выровнить по виду
SHIFT+F или двойное F Привязывает камеру окна Scene View к выбранному игровому объекту
Window (окно)
CTRL/CMD+1 Scene (сцена)
CTRL/CMD+2 Game (игра)
CTRL/CMD+3 Inspector (инспектор)
CTRL/CMD+4 Hierarchy (иерархия)
CTRL/CMD+5 Project (проект)
CTRL/CMD+6 Animation (анимация)
CTRL/CMD+7 Profiler (профайлер)
CTRL/CMD+9 Магазин ассетов
CTRL/CMD+0 Version Control
CTRL/CMD+SHIFT+C Console (консоль)
Edit
CTRL/CMD+Z Отменить
CTRL+Y (только на Windows) Повторить
CMD+SHIFT+Z (только на Mac) Повторить
CTRL/CMD+X Вырезать
CTRL/CMD+C Копировать
CTRL/CMD+V Вставить
CTRL/CMD+D Дублировать
SHIFT+Del Удалить
F Центрировать камеру сцены на объекте
CTRL/CMD+F Найти
CTRL/CMD+A Выбрать все
CTRL/CMD+P Играть
CTRL/CMD+SHIFT+P Пауза
CTRL/CMD+ALT+P Шаг
Selection (выделение)
CTRL/CMD+SHIFT+1 Загрузить выделение 1
CTRL/CMD+SHIFT+2 Загрузить выделение 2
CTRL/CMD+SHIFT+3 Загрузить выделение 3
CTRL/CMD+SHIFT+4 Загрузить выделение 4
CTRL/CMD+SHIFT+5 Загрузить выделение 5
CTRL/CMD+SHIFT+6 Загрузить выделение 6
CTRL/CMD+SHIFT+7 Загрузить выделение 7
CTRL/CMD+SHIFT+8 Загрузить выделение 8
CTRL/CMD+SHIFT+9 Загрузить выделение 9
CTRL/CMD+ALT+1 Сохранить выделение 1
CTRL/CMD+ALT+2 Сохранить выделение 2
CTRL/CMD+ALT+3 Сохранить выделение 3
CTRL/CMD+ALT+4 Сохранить выделение 4
CTRL/CMD+ALT+5 Сохранить выделение 5
CTRL/CMD+ALT+6 Сохранить выделение 6
CTRL/CMD+ALT+7 Сохранить выделение 7
CTRL/CMD+ALT+8 Сохранить выделение 8
CTRL/CMD+ALT+9 Сохранить выделение 9
Assets (ассеты)
CTRL/CMD+R Обновить

Customizing Your Workspace (Настройка рабочего пространства)

Как склонировать объект в Unity?

Как скопировать объект так, чтобы при смене значений в любой копии, оно менялось во всех других?

  • Вопрос задан более трёх лет назад
  • 3735 просмотров

Комментировать

Решения вопроса 1

kreo_OL

Называется префаб.
https://docs.unity3d.com/ru/current/Manual/Prefabs.html

Ответ написан более трёх лет назад

Нравится 2 2 комментария

Jurajkeee

Юра Березовский @Jurajkeee Автор вопроса

Ваш ответ совершенно верный. Но у меня возникла проблема. Был бы очень признателен, если поможете. 5a787a71e038b918820585.pngОбъект под номер 3 был инициализирован как префаб и он работает почти отлично. Он еще должен был менять свое название на Англ как 1 и 2, но делает это только после закрытия программы. Вот другие скриншоты5a787bb30b830345968677.png5a787bb80f30e784830115.png5a787bbdee900040652305.png5a787bc72aafa652258607.png 5a787bd35bd6d867289527.png

kreo_OL

Юра Березовский, Укажите что мой ответ был верный)
По поводу следующего вопроса, лучше его отдельным вопросом на сайте сделать.
Но, если у вас два других текста меняют свой текст также как и третий, то посмотрите внимательнее в чем могут быть отличая?
Так же возможно что ключа просто нет в в xml. или там тоже на русском написано.

Если будут вопросы создавайте новый вопрос и можете скинуть ссылку в личку. либо пишите в телеграмм @tarusov

Как копировать несколько объектов в Unity3D?

Мне нужно скопировать сразу несколько объектов так, что бы они оставались на своих местах. Возможно ли это сделать?

Голосование за лучший ответ

Если при дубликации объекта дубликаты появляются в рандомных местах, то скопируй у исходного объекта компонент Transform и применяй к каждому новому объекту.

Похожие вопросы
Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Как правильно делать копию эталонного объекта в Unity?

Необходимо при посещении новой области игроком создавать случайный ландшафт. На данный момент пытаюсь решить задачу так: на карте присутствует скрытый объект ландшафта, от которого делается клон, которому уже присваивается случайная карта высот:

public class ChunkLoader : MonoBehaviour < public Terrain flat; void Start() < Terrain terrain = Instantiate(flat, new Vector3(0, 0, 0), Quaternion.identity); HMapGenerator(terrain); >Terrain HMapGenerator(Terrain terrain) < // . // terrain.terrainData.SetHeights(0, 0, heights); return terrain; >> 

Однако, сколько я не искал, так и не обнаружил свойства или метода, с помощью которой клон можно отобразить на карте. Либо я в принципе неправильно решаю задачу, либо что-то упустил.

Отслеживать
задан 18 мар 2020 в 15:44
2,057 2 2 золотых знака 24 24 серебряных знака 44 44 бронзовых знака

Вы его уже отобразили, если у префаба есть Mesh Renderer , то он после создания будет отрисовываться. Вопрос в том, что вы все копии префаба спавните в одной начальной точке (0, 0, 0) .

– user302909
18 мар 2020 в 15:52

@RiotBr3aker в том-то и дело, что не отобразил. Если я в редакторе ставлю галочку Basic Terrain -> Draw — он появляется, по-умолчанию она не стоит, так как снята у эталона.А где они рисуются я и так знаю: мне пока надо саму отрисовку сделать, а там уже можно и к камере её привязать.

18 мар 2020 в 15:59
А почему на эталоне не стоит галка? Поставить ее вручную в коде можно через GetComponent.
– user302909
18 мар 2020 в 16:16
@RiotBr3aker потому что мне не нужно, чтобы он вообще отображался на карте, только клоны.
18 мар 2020 в 16:18
Префаб хранится на диске, как он у вас может отображаться на карте?
– user302909
18 мар 2020 в 16:23

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

В этом примере было сразу две ошибки.

Первая — нет никакой причины оставлять объект на сцене. После создания и настройки эталона достаточно было создать в проекте папку Assets/Prefabs и перетащить в неё эталон их иерархического древа сцены. После этого объект со сцены можно удалить, а эталон брать по необходимости, из файлов проекта.

Вторая — создавая копию объекта следует помнить, что она обладает всеми свойствами эталона, в том числе и ссылками на другие компоненты, которые вы не копировали. В данном конкретном случае объект Terrain связан с тем же компонентом TerrainData , что и префаб, и эти данные сохраняются на диске отдельным файлом. В результате, эта строчка:

terrain.terrainData.SetHeights(0, 0, heights); 

изменяет общую карту высот копии и оригинала, что сводит на нет всю затею.

Решением проблемы является создание нового объекта класса TerrainData :

TerrainData tdata = new TerrainData(); 

изменение его так, как вам нужно, а затем уже создание из него игрового объекта Terrain :

GameObject terrobj = Terrain.CreateTerrainGameObject(tdata); 

Затем создайте создайте пустой игровой объект на вашей сцене и присоедините к нему свой скрипт.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *