Примитивы
Unity может работать с 3D моделями любой формы, создаваемыми в приложениях для моделирования. Однако, существует ряд примитивных моделей, которые можно создать прямо в Unity: Куб ( Cube ), Сфера ( Sphere ), Капсула ( Capsule ), Цилиндр ( Cylinder ), Плоскость ( Plane ) и Квад ( Quad ). Эти объекты часто применяются как есть (плоскость обычно используется в качестве поверхности земли, например), но также они позволяют быстро создать прототипы сложных объектов в целях тестирования. Любой из примитивов может быть добавлен в сцену с помощью соответствующего пункта в меню GameObject > Create Other .
Куб

Это простой куб, с длиной ребра в одну единицу измерения. Куб текстурирован так, чтобы изображение повторялось на каждой из 6 его граней. Сам по себе куб не так часто встречается в играх, но если его отмасштабировать, то его можно использовать в качество стен, столбов, коробок, ступенек и других аналогичных предметов. Для разработчиков, куб — удобная замена итоговой модели, если она ещё не готова. Например, кузов автомобиля может быть грубо представлен в виде вытянутого до нужных габаритов куба. Хоть это и не приемлемо для готовой игры, но вполне подходит в качестве заготовки для тестирования кода управления автомобилем. Так как длины рёбер куба равны одной единице измерения, вы можете проверять пропорции импортированного в сцену меша просто поставив куб рядом, для сравнение размеров.
Сфера

Это сфера диаметром в одну единицу измерения (то есть, с радиусом в 0.5 единицы измерения), текстурированная так, чтобы всё изображение огибало сферу один раз, при этом верхняя и нижняя границы картинки будут находиться на полюсах сферы. Очевидно, сферы полезны для создания мячей, планет и снарядов, но полу-прозрачная сфера может также служить и удобным GUI инструментом для представления радиуса эффекта.
Капсула

Капсула — это цилиндр с полусферическими колпаками на концах. Объект имеет диаметр в одну единицу измерения и высоту в две единицы измерения (цилиндр высотой в одну единицу и оба колпака по половине единицы каждый). Капсула текстурирована таким образом, чтобы изображение огибало её ровно один раз, с закреплением в вершине каждой из полусфер. Хоть в реальном мире и не так много объектов с такой формой, капсулу удобно использовать для прототипирования. В частности, в некоторых задачах физика закруглённого объекта предпочтительнее, чем таковая у прямоугольного.
Цилиндр

Это простой цилиндр, высотой в две единицы и диаметром в одну единицу, текстурированный так, чтобы изображение было один раз обёрнуто вокруг цилиндрической поверхности, и при этом полностью повторялось на плоских гранях цилиндра. Цилиндры удобно применять для создания столбов, труб и колёс, но вы можете заметить, что форма коллайдера а самом деле — капсула (в Unity нет коллайдера в форме цилиндра). Если вам всё-таки нужна точная физика цилиндра, то для этого придется смоделировать соответствующий меш и использовать на нём меш коллайдер.
Плоскость

Это плоский квадрат с длиной стороны в 10 единиц, ориентированный в плоскости XZ локального пространства координат. Он текстурирован так, чтобы всё изображение точно заполнило квадрат. Плоскость удобна для отображения картинок и видео в GUI, и для различных спецэффектов. Хоть плоскость и может использоваться для описанных выше вещей, более простой примитив квад чаще подходит для таких задач.
Квад

Примитив квад аналогичен плоскости, но его стороны имеют длину одной единицы измерения и поверхность ориентирована по плоскости XY локального пространства координат. Также, квад состоит только из двух треугольников, в то время как плоскость — из двухсот. Квад будет полезен, если в сцене требуется создать экран для вывода изображений или видео. С помощью квадов можно создать простые информационные и GUI экраны, а также частицы, спрайты и “обманные” изображения для имитации удалённых больших объектов.
Как изменить цвет объекта из скрипта?
Нубский вопрос, но чет не могу понять в чем проблема..
Нужно сделать так, что бы периодически менялся цвет появляющихся объектов. Спавню различные объекты по нажатию ЛКМ, и даю ссылку на префаб объекта в этот скрипт (это тестовый скрипт):
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test : MonoBehaviour < public GameObject Cube; public int ColorIndex = 1; void FixedUpdate() < if(ColorIndex == 1) < Cube.GetComponent().material.color = Color.red; ColorIndex++; > else if(ColorIndex == 2) < Cube.GetComponent().material.color = Color.green; ColorIndex++; > else if(ColorIndex == 3) < Cube.GetComponent().material.color = Color.blue; ColorIndex-=2; > > >
Но получаю такую вот ошибку:
NullReferenceException: Object reference not set to an instance of an object
Test.FixedUpdate () (at Assets/Scripts/Test.cs:21)
В инспекторе поле непустое, проверял
Вроде я так делал раньше, и всё работало, но сейчас почему то не работает.
Как можно решить эту проблему?
- Вопрос задан более года назад
- 517 просмотров
5 комментариев
Простой 5 комментариев
Как изменить цвет материала/текстуры в Unity, после импорта модели из Блендера?

Делаю всё как в видео, и на 10.22 вручную регулируют цвет. Но у меня по каким-то причинам эта функция не активна, как и все остальные. Не реагирует. Как сделать, чтобы реагировала?
Отслеживать
Artik Slayer
задан 28 янв 2019 в 10:24
Artik Slayer Artik Slayer
808 1 1 золотой знак 14 14 серебряных знаков 40 40 бронзовых знаков
Нужно извлечь текстуры и материалы вашей модели. В данном видео подробно все описаноenter link description here
11 фев 2019 в 20:11
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Выбираем модель и выбираем вкладку Materials . Затем в строке Location выставляем Use External Materials (Legacy) . После чего подтверждаем изменение настроек кнопкой Apply .

Как я понял, этим действием Unity создаёт отдельную папку и выкидывает туда наши материалы/текстуры из модели.
После этого можно изменить цветовую гамму нашего материала/текстуры по вашему усмотрению.

Я перевёл цвет в белый, в следствии чего — модель приобрела свой первоначальный цвет.
Как изменить цвет объекта в Unity3d?
Пробовал изменить цвет разными способами, никак не мог взять компонент image, чтоб напрямую изменить цвет. Нашёл несколько вариантов, из них +- нашёлся тот, который не выдавал ошибок, но всё равно ничего не происходит. Мне нужно, чтоб в зависимости от уровня менялся цвет изображения. Что я не так делаю?
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class LevelClick : MonoBehaviour < public int Lvl; public int LvlNext; public int N; public GameObject Player; public GameObject Krug; public void Start() < Lvl = CharController.LVL; >public void OnMouseDown() < Debug.Log("Нажатие на кнопку уровня"); if (Lvl == LvlNext) < SceneManager.LoadScene(N); >> public void Update() < if (Lvl >LvlNext) < Krug.GetComponent().material.color = Color.white; Debug.Log("смена на белый цвет кружка"); > if (Lvl < LvlNext) < Krug.GetComponent().material.color = Color.black; Debug.Log("смена на черный цвет кружка"); > > >
- Вопрос задан более трёх лет назад
- 13877 просмотров
7 комментариев
Простой 7 комментариев