Как мне импортировать модели из моего 3D редактора?
Для импорта 3D модели в Unity вы должны перетащить файл модели в окно проекта.
В инспекторе > вкладка Model Unity поддерживает импорт моделей из всех популярных 3D редакторов.
Особенности импорта из разных 3D пакетов смотрите на следующих страницах:
Текстуры
- Храните текстуры в папке под названием Textures рядом с экспортируемым мешем в вашем проекте Unity. Это позволит Unity найти текстуру и автоматически подключить её к созданному материалу. Для получения дополнительной информации, обратитесь к разделу Текстуры.
3D форматы
Импортирование мешей в Unity может быть выполнено с помощью двух основных типов файлов:
- Экспортированные 3D форматы файлов, такие как .FBX или .OBJ
- Собственные файлы 3D приложений, например такие как .Max и .Blend файлы из 3D Studio Max и Blender.
Любой из этих типов позволит вам добавлять свои меши в Unity, но есть соображения относительно того типа, который вы выберите:
Экспортированные 3D файлы
Unity может читать .FBX, .dae (Collada), .3DS, .dxf и .obj файлы, obj или Collada экспортеры могут быть найдены для многих приложений, точно также как FBX экспортеры могут быть найдены здесь
Преимущества:
- Экспортируйте только необходимые данные
- Проверяемые данные (перед импортированием в Unity, переимпортируйте в 3D пакет)
- Как правило файлы меньшего размера
- Поддерживает модульный подход — к примеру разными компонентами для интерактивности и типов коллизий
- Поддерживает другие 3D пакеты, чьи форматы не поддерживаются у нас напрямую
Недостатки:
- Может замедлять процесс прототипирования и итераций
- Легче потерять след между исходной (рабочий файл) и игровой версией данных (к примеру экспортированный FBX файл)
Собственные файлы 3D приложений
Unity также может импортировать, путём конвертации, файлы: Max, Maya, Blender, Cinema4D, Modo, Lightwave и Cheetah3D , например, .MAX, .MB, .MA и др.
Преимущества:
- Быстрый процесс итерации (для повторного импортирования в Unity сохраните исходный файл)
- Изначально просто
Недостатки:
- На машинах, задействованных в работе над Unity проектом, должны быть установлены лицензионные копии данного программного обеспечения
- Файлы, содержащие ненужные данные могут стать неоправданно большими
- Большие файлы могут замедлить процесс автосохранения
- Меньше проверяется, поэтому труднее устранить ошибки
Модели
Файлы моделей, размещенные в папке Assets внутри проекта Unity, автоматически импортируются и сохраняются как ассеты Unity.
Файл модели может содержать 3D модель персонажа, здания или части мебели. Модель импортируется в виде набора ассетов. В окне Project(проект) главный импортированный объект представляется в виде Model Prefab(префаб модели). Обычно также существует несколько Mesh объектов, на которые ссылается Model Prefab.
Файл модели может также содержать данные анимации, которые можно использовать для анимации данной модели или других моделей. Данные анимации импортируется как один или несколько Анимационных Клипов.
![Mesh Filter вместе с Mesh Renderer позволяет появляться модели на экране.](../uploads/Main/MeshExample40.png)
Настройки импорта для мешей
Import Settings для модели будут показаны в закладке Model инспектора FBX импортера, когда модель выделена. Это влияет на меш, его нормали и импортированные материалы. Настройки применяются для каждого ассета на диске, поэтому, если вам нужен ассет с другими настройками, создайте (и соответственно переименуйте) копию файла.
Хотя изначально настроек по умолчанию может быть достаточно, будет лучше, если вы изучите список настроек, перечисленных ниже. Они могут помочь определить, что вы желаете сделать с игровым объектом.
Некоторые общие корректировки, для примера, могут быть следующими:
- Scale — это фактор масштаба используемый для компенсации разницы в единицах измерения между Unity и инструментом 3d моделирования — он меняет масштаб всего файла. Обычно, можете просто установить 1. Заметьте, что физический движок Unity смасштабирован так, что 1 единица измерения эквивалентна 1 метру. Это важно, так как если вы захотите получить корректное физическое поведение, вам следует получить корректно отмасштабированную модель в оригинальном приложении для моделирования. Если же этого нельзя сделать или у вас нет контроля над модификацией меша, масштаб модели может быть откорректирован здесь.
- Generate colliders — эта опция создаст сетку коллизии чтобы позволить вашей модели сталкиваться с другими объектами.
- Material Naming and Search — эта опция поможет автоматически настроить ваши материалы и определить местоположение текстур
Свойство: | Функция: | |
---|---|---|
Меши | ||
Scale Factor | Физическая система Unity предполагает, что 1 метр в игровом мире будет равен 1 единице в импортируемом файле. Если вы предпочитаете моделировать в другом масштабе, тогда вы можете компенсировать разницу здесь. По-умолчанию, .fbx, .max, .jas и .c4d файлы имеют масштаб 0.01, .mb, .ma, .lxo, .dxf, .blend и .dae масштаб 1.0, а .3ds файлы имеют масштаб 0.1. | |
Mesh Compression | Увеличение этого значение уменьшит размер файла для меша, но может привести к неровностям. Лучше всего поднять значение настолько высоко, насколько это возможно без появления большой разницы с несжатой версией. Это полезно для оптимизации размера игры. | |
Read/Write Enabled | Включает возможность записи меша в процессе исполнения, так что вы можете модифицировать данные; это создает копию в памяти. Когда эта опция выключена, это экономит память, так как Unity может выгружать копию данных меша в процессе игры. Однако, если вы масштабируете или инстанциируете меши в процессе исполнения с неравномерным масштабом, может потребоваться включение “Read/Write Enabled” в их настройках импорта. Причина этого в том, что неравномерный масштаб требует чтобы данные меша сохранялись в памяти. Обычно это определяется во время сборки, но с мешами, которые масштабируются или инстанциируются в процессе исполнения, вам нужно задавать это самостоятельно. Иначе они могут не отображаться корректно в игровых сборках. | |
Optimize Mesh | Эта опция определяет порядок, в котором будут перечислены треугольники меша. | |
Import Blendshapes | This option allows BlendShapes to be imported with your mesh. | |
Generate Colliders | Если активна эта опция, ваш меш будет импортирован с автоматически присоединенной сеткой столкновений. Эта опция полезна для быстрой генерации сетки столкновений для геометрии окружения, но ее нужно избегать для объектов, которые будут перемещаться. | |
Swap UVs | Используйте эту опцию если объект с наложенными картами освещения использует неправильные UV каналы. Ваши первичные и вторичные UV каналы будут поменяны между собой. | |
Generate Lightmap UVs | Используйте эту опцию для создания второго UV канала, который будет использоваться для карт освещения. | |
Нормали и касательные | ||
Normals | Определяет должны ли, и если да, то как, вычисляться нормали. Это полезно для оптимизации размеров игры. | |
Import | Настройка по умолчанию. Импортирует нормали из файла. | |
Calculate | Вычисляет нормали, основываясь на Smoothing angle . Если выбран именно этот метод, Smoothing Angle становится включенным. | |
None | Дезактивирует нормали. Используйте данную опцию если меш ни использует карты нормалей, ни подвергается динамическому освещению. | |
Tangents | Определяет должны ли, и если да, то как, вычисляться касательные и бинормали. Это полезно для оптимизации размеров игры. | |
Import | Касательные и бинормали импортируются из файла. Эта опция доступна только для FBX, Maya и 3dsMax файлов и только когда нормали также загружены из файла. | |
Calculate | Настройка по умолчанию. Вычисляет касательные и бинормали. Эта опция доступна только когда нормали или импортированы, или вычислены. | |
None | Отключает касательные и бинормали. Меш не будет иметь касательных, поэтому шейдеры, работающие с картами нормалей, не будут доступны. | |
Smoothing Angle | Данная опция устанавливает насколько острой должна быть грань, чтобы считаться жестким ребром. Это также используется чтобы разделить касательные карты нормалей. | |
Split Tangents | Активируйте эту опцию, если карта нормалей освещения разбита швами на вашем меше. Обычно это применимо только к персонажам. | |
Материалы | ||
Import Materials | Отключите эту опцию, если вы не хотите чтобы генерировались материалы. Вместо этого будет использован материал Default-Diffuse. | |
Material Naming | Определяет как именуются материалы Unity: | |
By Base Texture Name | Имя диффузной текстуры импортированного материала, которое будет использовано для названия материала Unity. В случае, когда диффузная текстура материала не задана, Unity будет использовать имя импортированного материала. | |
From Model’s Material | Для названия Unity материала будет использовано имя импортированного материала. | |
Model Name + Model’s Material | Для названия Unity материала будет использовано сочетание имени файла модели и импортированного материала. | |
Material Search | Определяет, где Unity будет пытаться найти существующие материалы, используя имя, заданное параметром Material Naming : | |
Local | Unity будет пытаться найти существующий материал только в “локальной” папке Materials, например, поддиректория Materials, которая расположена в той же директории, что и файл модели. | |
Recursive-Up | Unity будет пытаться найти существующие материалы во всех поддиректориях Materials во всех родительских папках вплоть до папки Assets. | |
Everywhere | Unity будет пытаться найти существующие материалы во всех папках Unity проекта. |
Смотрите также
- Моделирование оптимизированных персонажей
- Настройки импорта меша
- Как мне исправить вращение импортированной модели?
Как загрузить картинку из Resourses в объект на сцене в UNITY?
Имеется GameObject c именем 222 , с компонентом SpriteRenderer .
В скрипте, активируемом по нажатии кнопки, следующее:
GameObject.Find ("222").GetComponent ().sprite = Resources.Load("Logo/ATL"); //Logo - папка в ресурсах, соответственно.
В компонент gameobject сохраняется спрайт, но нигде не отображается на сцене. Подскажите, пожалуйста, в чем я ошибся?
Отслеживать
2,280 2 2 золотых знака 17 17 серебряных знаков 31 31 бронзовый знак
задан 2 авг 2018 в 21:41
1 1 1 бронзовый знак
GameObject.Find («222»).GetComponent ().sprite — такой код даже компилироваться не будет, потому что метод GetComponent имеет обязательный параметр типа. Возможно вы неправильно скопировали код в свой вопрос?
2 авг 2018 в 21:46
прежде чем задать вопрос, посетите сайт с документацией. Вот пример использование вашего метода: boxCol = otherGameObject.GetComponent
2 авг 2018 в 22:09
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Я считаю, что лучше не мудрить и не умещать всё в одну строчку.
Разумней создать префаб со спрайтом. В картинке надо изменить тип текстуры на Sprite:
Затем можно просто перетащить картинку на сцену (будет создан объект-sprite), а потом, создав в проекте префаб, присвоить ему этот объект.
Ну а далее дело за малым:
GameObject twotwotwo; void Start() < twotwotwo = (GameObject)Instantiate(Resources.Load("ATL-Prefab")); // . ну и тут ты делаешь то, что тебе надо. >
У меня всё заработало.
С Resources.Load() не знаю, как быть. У меня возникает ошибка «InvalidCastException: Cannot cast from source type to destination type.», и у меня тоже ничего нет. Так что, я считаю, лучше использовать префабы; они работают.
Unity3d как поместить изображение на куб
Всем доброго времени суток !
Нужно на каждую сторону куба поместить разные изображения jpg
пробывал через текстуры но это не то.
Подскажите где что почитать. В гугле не нашёл.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как поместить изображение на button
Здравствуйте подскажите как можно вставить изображение в button
Как поместить изображение из БД в pictureBox
Здравствуйте! Беру из БД mssql изображение (оно там хранится в поле image) с помощью SqlDataReader.
Как поместить изображение в DataGridView
в DataGridView один столбец имеет тип данных image но как туда поместить изображение? и какого типа.
Как поместить изображение в div
Добрый день! Как можно поместить изображение в div, чтобы оно не вылазило за его пределы? Чтобы.
458 / 402 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
По моему через ProBuilder можно.
https://unity3d.com/ru/unity/f. probuilder
Регистрация: 03.03.2019
Сообщений: 41
Спасибо большое, буду пробывать.
76 / 54 / 22
Регистрация: 03.03.2019
Сообщений: 175
Можно куб сделать из шести квадов, с одним общим коллаидером. На каждую грань можно будет наложить свою текстуру. При этом понадобится только один материал, и скрипт который меняет UV координаты.
Регистрация: 03.03.2019
Сообщений: 41
Подскажите как это сделать добрый человек !
Буду признателен за ссылку и т.п
10413 / 5143 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
oleg410,
Ох, так же сложно это сделать
6SidedCube.zip (6.4 Кб, 70 просмотров) |
Регистрация: 03.03.2019
Сообщений: 41
Ух-ты , спасибо БОЛЬШОЕ !
Сейчас попробую.
Добавлено через 44 минуты
Storm23, Хм попробывал на quadы навесить 6 картинок а они все
не на гранях куба. Так и должно быть?
Добавлено через 15 секунд
Storm23, Хм попробывал на quadы навесить 6 картинок а они все
не на гранях куба. Так и должно быть?
10413 / 5143 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
Сообщение от oleg410
Хм попробывал на quadы навесить 6 картинок а они все
не на гранях куба. Так и должно быть?
Я не знаю, что ты понимаешь под «навесить картинок». Подозреваю шо-то страшное
Но у каждой грани есть отдельный материал. Нужно создать этот материал, поместить картинку в материал и затем присвоить этот материал этой грани:
Или в самом простейшем виде — просто перетащи текстуру на грань куба:
В таком случае, материал будет создан автоматически.
Регистрация: 03.03.2019
Сообщений: 41
Блин, а я перетаскивал картинку на Quad в Hierarchy.
Сделал как вы сказали и всё отлично получилось.
Простите нуба. Буду знать.
Большое спасибо за терпение.
Добавлено через 16 секунд
Блин, а я перетаскивал картинку на Quad в Hierarchy.
Сделал как вы сказали и всё отлично получилось.
Простите нуба. Буду знать.
Большое спасибо за терпение.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Как поместить изображение на сцену
Всем привет! Суть вопроса такова: нужно поместить изображение из мувиклипа в качестве фона на.
Как поместить одно изображение на другое?
Я бы и вручную это сделал, но думаю, что в C# есть какие — нибудь средства, чтобы делать это проще.
Как поместить изображение под ячейки?
здравствуйте. подскажите, пожалуйста, как можно изображение поместить на задний фон ячеек? чтобы.
Как поместить изображение над блоком?
Допустим есть табличка (не важно на div она или td) / В ней размешается какой то текст, как мне.
Или воспользуйтесь поиском по форуму:
Как в Unity в сцену добавить картинку?
Суть такова: делаю AR с помощью Vuforia, нужно, чтобы при наведении камеры на таргет появлялось изображение, совмещённое с таргетом, перемещаться с ним, соответственно. Но Unity не хочет вставлять картинку, только если как элемент UI, но тогда она будет статично висеть на экране и не двигаться. С готовыми ассетами всё работает. Можно ли как-то сделать из картинки GameObject или что-нибудь такое?
Лучший ответ
В качестве GameObject создать плоскость (plane), на плоскость накинуть
картинку в качестве текстуры.