Перейти к содержимому

Как вставить картинку в unity 3d

  • автор:

Как загрузить картинку из 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.», и у меня тоже ничего нет. Так что, я считаю, лучше использовать префабы; они работают.

Как мне импортировать модели из моего 3D редактора?

Для импорта 3D модели в Unity вы должны перетащить файл модели в окно проекта.

В инспекторе > вкладка Model Unity поддерживает импорт моделей из всех популярных 3D редакторов.

Особенности импорта из разных 3D пакетов смотрите на следующих страницах:

Текстуры

  • Храните текстуры в папке под названием Textures рядом с экспортируемым мешем в вашем проекте Unity. Это позволит Unity найти текстуру и автоматически подключить её к созданному материалу. Для получения дополнительной информации, обратитесь к разделу Текстуры.

3D форматы

Импортирование мешей в Unity может быть выполнено с помощью двух основных типов файлов:

  1. Экспортированные 3D форматы файлов, такие как .FBX или .OBJ
  2. Собственные файлы 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 импортера, когда модель выделена. Это влияет на меш, его нормали и импортированные материалы. Настройки применяются для каждого ассета на диске, поэтому, если вам нужен ассет с другими настройками, создайте (и соответственно переименуйте) копию файла.

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

Некоторые общие корректировки, для примера, могут быть следующими:

FBX Importer Inspector (инспектор импорта FBX): вкладка Model

  • 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 проекта.

Смотрите также

  • Моделирование оптимизированных персонажей
  • Настройки импорта меша
  • Как мне исправить вращение импортированной модели?

Как вставить картинку с сохранением её изначальных параметров?

Начал делать пролистывание карты и заметил, что изображение какое-то слишком размытое, но в оригинале выглядит хорошо, пробовал менять размер, но всё безуспешно, как перебросить изображение с сохранением размера и четкости?

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

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

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

Ответы на вопрос 0

Ваш ответ на вопрос

Войдите, чтобы написать ответ

c#

  • C#
  • +1 ещё

Что делать, если объект проваливается, когда я пытаюсь его поставить туда куда смотрю?

  • 1 подписчик
  • 6 часов назад
  • 22 просмотра

Текст в Unity

Текст является одним из наиболее важных компонентов голографических приложений. Для отображения текста в Unity можно использовать три типа текстовых компонентов: текст пользовательского интерфейса, сетка трехмерного текста и текстовая сетка Pro. По умолчанию текст пользовательского интерфейса и сетка трехмерного текста выглядят размытыми и слишком большими. Изменение нескольких переменных приводит к более четкому, более качественному тексту с управляемым размером в HoloLens. Вы можете повысить качество отрисовки, применив коэффициент масштабирования для получения правильных измерений при использовании компонентов текста пользовательского интерфейса и сетки трехмерного текста.

Как получить резкий и красивый текст

Размытый текст по умолчанию в Unity

Работа с трехмерными текстами (сеткой текста) и текстом пользовательского интерфейса Unity

В Unity предполагается, что все новые элементы, добавленные в сцену, имеют один размер единицы Unity или масштаб 100 % преобразования. Одна единица Unity преобразуется примерно в 1 метр на HoloLens. Для шрифтов ограничивающий прямоугольник для 3D TextMesh по умолчанию имеет высоту около 1 метра.

Работа со шрифтами в Unity

3D-текст (сетка текста) по умолчанию в Unity занимает одну единицу Unity, которая составляет 1 метр

Большинство визуальных конструкторов используют точки для определения размеров шрифтов в реальном мире. Есть около 2835 (2834,64566639962) точек в 1 метре. На основе преобразования системы точек в 1 метр и размера шрифта Сетки текста Unity по умолчанию 13, простая математика 13, разделенная на 2835, равна 0,0046 (0,004586111116, чтобы быть точным), что обеспечивает хорошую стандартную шкалу для начала (некоторые могут округлить до 0,005). Масштабирование текстового объекта или контейнера до этих значений позволит не только преобразовывать размеры шрифтов 1:1 в программе разработки, но и обеспечит стандарт, позволяющий поддерживать согласованность во всем интерфейсе.

Масштабирование значений для 3D-текста и текста пользовательского интерфейса Unity

Масштабирование значений для 3D-текста и текста пользовательского интерфейса Unity

Сетка 3D-текста Unity с оптимизированными значениями

Сетка 3D-текста Unity с оптимизированными значениями

При добавлении пользовательского интерфейса или текстового элемента на основе холста в сцену разница в размерах еще больше. Различия в двух размерах примерно равны 1000 %, что приведет к тому, что коэффициент масштабирования для текстовых компонентов пользовательского интерфейса составляет 0,00046 (0,0004586111116, если быть точным) или 0,0005 для округленного значения.

Текст пользовательского интерфейса Unity с оптимизированными значениями

Текст пользовательского интерфейса Unity с оптимизированными значениями

На значение по умолчанию любого шрифта может повлиять размер текстуры этого шрифта или способ импорта шрифта в Unity. Эти тесты были выполнены на основе шрифта Arial по умолчанию в Unity, а также другого импортированного шрифта.

Работа с Text Mesh Pro

С помощью Unity Text Mesh Pro можно обеспечить качество отрисовки текста. Он поддерживает четкие контуры текста независимо от расстояния с помощью метода подписанного поля расстояния (SDF). Используя тот же метод вычисления, который мы использовали выше для сетки трехмерного текста и текста пользовательского интерфейса, мы можем найти правильные значения масштабирования для использования с обычными типографическими точками. Так как шрифт 3D Text Mesh Pro по умолчанию с размером 36 имеет ограничивающий размер 2,5 единиц Unity (2,5 м), мы можем использовать значение масштабирования 0,005, чтобы получить размер точки. Размер текстовой сетки Pro в меню пользовательского интерфейса по умолчанию ограничен 25 единицами Unity (25 м). Это дает нам 0,0005 для значения масштабирования.

Масштабирование значений для текста и пользовательского интерфейса Unity 3D

Масштабирование значений для текста и пользовательского интерфейса Unity 3D

Рекомендуемый размер текста

Как и следовало ожидать, размеры типов, которые мы используем на пк или планшете (обычно от 12 до 32 пт), выглядят небольшими на расстоянии 2 метров. Это зависит от характеристик каждого шрифта, но в целом рекомендуемый минимальный угол обзора и высота шрифта для удобочитаемости составляет около 0,35°-0,4°/12,21-13,97 мм на основе наших исследований пользователей. Это примерно 35-40 пт с коэффициентом масштабирования, представленным выше.

Для ближнего взаимодействия на 0,45 м (45 см) минимальный угол обзора и высота шрифта 0,4°-0,5°/3,14–3,9 мм. Это примерно 9-12 пт с коэффициентом масштабирования, представленным выше.

Содержимое ближнего и дальнего диапазонов взаимодействия

в ближнем и дальнем диапазоне взаимодействия

Минимальный размер разборчивого шрифта

Расстояние Угол обзора Высота текста Размер шрифта
45 см (расстояние прямой манипуляции) 0.4°-0.5° 3,14–3,9 мм 8.9–11.13pt
2 м 0.35°-0.4° 12,21–13,97 мм 34.63-39.58 pt

Удобный размер удобочитаемого шрифта

Расстояние Угол обзора Высота текста Размер шрифта
45 см (расстояние прямой манипуляции) 0.65°-0.8° 5,1–6,3 мм 14.47-17.8 pt
2 м 0.6°-0.75° 20,9–26,2 мм 59.4-74.2 пт

Segoe UI (шрифт по умолчанию для Windows) хорошо работает в большинстве случаев. Однако старайтесь не использовать светлые или полулегкие семейства шрифтов небольшого размера, так как тонкие вертикальные штрихи будут вибрировать и ухудшать разборчивость. Современные шрифты с достаточной толщиной штриха хорошо работают. Например, Helvetica и Arial выглядят великолепно и разборчивы в HoloLens с регулярными или смелыми весами.

Угол просмотра

Расстояние, угол и высота текста

Текст с помощью набора средств Смешанная реальность версии 2

Качество отрисовки резкого текста с правильным измерением

На основе этих факторов масштабирования мы создали заготовки текста с текстом пользовательского интерфейса и сеткой трехмерного текста. Разработчики могут использовать эти заготовки для получения четкого текста и согласованного размера шрифта.

Качество отрисовки резкого текста с правильным измерением

Качество отрисовки резкого текста с правильным измерением

Шейдер с поддержкой окклюзии

Материал шрифта по умолчанию в Unity не поддерживает загораживание. По этой причине вы увидите текст за объектами по умолчанию. Мы добавили простой шейдер, поддерживающий окклюзию. На рисунке ниже показан текст с шрифтом по умолчанию (слева) и текстом с правильной окклюзией (справа).

Шейдер с поддержкой окклюзии

Шейдер с поддержкой окклюзии

Следующий этап разработки

Если вы следите за путь разработки Unity, который мы изложили, вы находитесь в разгаре изучения основных стандартных блоков MRTK. Отсюда вы можете перейти к следующему стандартному блоку:

Или перейдите к возможностям и API платформы смешанной реальности:

Вы можете в любой момент вернуться к этапам разработки для Unity.

См. также раздел

  • Заготовка текста в MRTK
  • Оформление текста

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

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