unity смена материала скриптом

Unity смена материала скриптом

Re: Как сменить материал объекта?

Re: Как сменить материал объекта?

В каком уроке можно посмотреть тему по сабжу?

Re: Как сменить материал объекта?

В комментарии к разделу указано: Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.
Хотя в справке я не нашел как это сделать.

Re: Как сменить материал объекта?

Re: Как сменить материал объекта?

В том и вопрос, как собственно поменять материал. Сделал по вашей рекомендации завел несколько паблик переменных, назначил на них разные материалы попробовал поменять таким образом:
GameObject.renderer.material = GameObject.GetComponent

using UnityEngine ;
using System.Collections ;

public class ChangeMaterial : MonoBehaviour <

public Material [ ] materialArray ;

public int pointer = 0 ;

Re: Как сменить материал объекта?

material1 = material2;
думаю должно работать.

Еще лучше делать через массив как показали. если много материалов.

Re: Как сменить материал объекта?

using UnityEngine ;
using System.Collections ;

public class ChangeMaterial : MonoBehaviour <

public Material [ ] materialArray ;

public int pointer = 0 ;

Re: Как сменить материал объекта?

Guyver писал(а): http://www.google.ru/search?hl=ru&source=hp&q=Unity3d+reference+material&aq=f&aqi=g-L2&aql=&oq=

ответы даны в 1х ссылках поиска

Re: Как сменить материал объекта?

Re: Как сменить материал объекта?

Re: Как сменить материал объекта?

unity смена материала скриптом. b2. unity смена материала скриптом фото. unity смена материала скриптом-b2. картинка unity смена материала скриптом. картинка b2. В каком уроке можно посмотреть тему по сабжу?

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB

Источник

Unity смена материала скриптом

__________________
Мечта программиста: запрограммировать процесс программирования. unity смена материала скриптом. DDD. unity смена материала скриптом фото. unity смена материала скриптом-DDD. картинка unity смена материала скриптом. картинка DDD. В каком уроке можно посмотреть тему по сабжу?

unity смена материала скриптом. code php. unity смена материала скриптом фото. unity смена материала скриптом-code php. картинка unity смена материала скриптом. картинка code php. В каком уроке можно посмотреть тему по сабжу?

public Material myMaterial ;

unity смена материала скриптом. citation. unity смена материала скриптом фото. unity смена материала скриптом-citation. картинка unity смена материала скриптом. картинка citation. В каком уроке можно посмотреть тему по сабжу?

unity смена материала скриптом. code php. unity смена материала скриптом фото. unity смена материала скриптом-code php. картинка unity смена материала скриптом. картинка code php. В каком уроке можно посмотреть тему по сабжу?

public Material myMaterial ;

__________________
Мечта программиста: запрограммировать процесс программирования. unity смена материала скриптом. DDD. unity смена материала скриптом фото. unity смена материала скриптом-DDD. картинка unity смена материала скриптом. картинка DDD. В каком уроке можно посмотреть тему по сабжу?

в общем создал материал с именемен «mt» и присваиваю его кубу, однако куб просто стал фиолетовым

unity смена материала скриптом. code php. unity смена материала скриптом фото. unity смена материала скриптом-code php. картинка unity смена материала скриптом. картинка code php. В каком уроке можно посмотреть тему по сабжу?

public class NewBehaviourScript : MonoBehaviour <
public Material mt ;

__________________
Мечта программиста: запрограммировать процесс программирования. unity смена материала скриптом. DDD. unity смена материала скриптом фото. unity смена материала скриптом-DDD. картинка unity смена материала скриптом. картинка DDD. В каком уроке можно посмотреть тему по сабжу?

Вот еще вопрос:
в проект импортирована некая модель в формате *.3DS

но как её вывести на сцену?
нагуглил такой вариант

unity смена материала скриптом. code php. unity смена материала скриптом фото. unity смена материала скриптом-code php. картинка unity смена материала скриптом. картинка code php. В каком уроке можно посмотреть тему по сабжу?

public Material mt ;
public GameObject me ;
private GameObject go ;

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

уже разобрался как выводить объекты на сцену unity смена материала скриптом. smile. unity смена материала скриптом фото. unity смена материала скриптом-smile. картинка unity смена материала скриптом. картинка smile. В каком уроке можно посмотреть тему по сабжу?.

__________________
Мечта программиста: запрограммировать процесс программирования. unity смена материала скриптом. DDD. unity смена материала скриптом фото. unity смена материала скриптом-DDD. картинка unity смена материала скриптом. картинка DDD. В каком уроке можно посмотреть тему по сабжу?

Источник

Как изменять параметры у материала скриптом в Unity

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Unity как изменять начение голода
имеется скрипт голода и префаба бургера. нужно чтобы при нажатии на бургер который размещен на.

Как изменять параметры виджетов?
Такая проблема, допустим мне нужно, чтобы при запуске приложения происходила какая-нибудь анимация.

unity смена материала скриптом. tick. unity смена материала скриптом фото. unity смена материала скриптом-tick. картинка unity смена материала скриптом. картинка tick. В каком уроке можно посмотреть тему по сабжу?Как изменять CSS параметры при скроллинге чтоб блоки не пересекались?
Добрый день! Хотел это сделать на простом CSS. Но похоже без вариантов. Будем делать на JS. На.

squakoon, Спасибо, помогло. Так то я уже пробовал _size вводить, но не работало. Оказалось, дело в blTime.

Добавлено через 23 минуты
squakoon, еще вопрос не по теме. Но то ли я тупой, то ли что то пропустил. В общем мне нужно плавно изменить параметр blur с 0 до 4 в течении 0.2 секунд. Соответственно написал следующий код:

Решение

Помощь в написании контрольных, курсовых и дипломных работ здесь.

unity смена материала скриптом. tick. unity смена материала скриптом фото. unity смена материала скриптом-tick. картинка unity смена материала скриптом. картинка tick. В каком уроке можно посмотреть тему по сабжу?Unity как ввести в скрипт префаб и изменять его там (добавлять новые файлы к нему или удалять старые)
При этом префаб НЕ должен быть размещен на сцене

Unity android подскажите со скриптом
Всем привет. Мне необходимо чтобы в игре под Android, при нажатии на кнопку, появоялся обьект на.

Unity 3D. Разработать программу по обработке магниторазведочного материала
Подскажите пожалуйста. Мне надо разработать программу по обработке магниторазведочного материала.

Не могу изменять параметры электропитания
Установил Windows Embedded Standard 7. Драйвер на видеокарту стоит. Система пишет, что.

Можно ли изменять параметры разметки программно?
Может не корректно озаглавил тему, но нужно вот что: у виджета есть разметка в которой написано.

Источник

Манипуляция мешами в реальном времени на Unity

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Одно из преимуществ Unity в качестве платформы для разработки игр — её мощный 3D-движок. В этом туториале вы познакомитесь с миром 3D-объектов и манипуляций мешами.

В связи с ростом технологий виртуальной и дополненной реальности (VR/AR) большинство разработчиков сталкивается со сложными концепциями 3D-графики. Пусть этот туториал будет для них отправной точкой. Не волнуйтесь, здесь не будет сложной 3D-математики — только сердца, рисунки, стрелки и куча интересного!

Примечание: этот туториал предназначен для пользователей, знакомых с IDE Unity и имеющих определённый опыт программирования на C#. Если у вас нет таких знаний, то изучите сначала туториалы Introduction to Unity UI и Introduction to Unity Scripting.

Вам понадобится версия Unity не ниже 2017.3.1. Последнюю версию Unity можно скачать здесь. В этом туториале используются custom editor, подробнее о них можно узнать из туториала Extending the Unity Editor.

Приступаем к работе

Для начала познакомьтесь с основными терминами 3D-графики, которые позволят вам лучше понять туториал.

Базовые технические термины 3D-графики:

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Затем нормали и UV-данные задают затенение, цвет и текстуру. Данные меша хранятся в mesh filter, а mesh renderer использует эти данные для отрисовки объекта в сцене.

То есть псевдокод создания 3D-модели выглядит так:

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Изменение мешей с помощью Custom Editor

Откройте 01 Mesh Study Demo, находящееся в папке Scenes. В окне Scene вы увидите 3D-куб:

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Прежде чем приступать к мешу, давайте взглянем на скрипт custom editor.

Изменение скрипта редактора

Выберите папку Editor в окне Project. Скрипты в этой папке добавляют функционал к редактору (Editor) во время разработки и недоступны в режиме Build.

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

В MeshInspector.cs перед началом класса MeshInspector добавим следующее:

Объяснение кода: атрибут CustomEditor сообщает Unity, какой тип объекта может изменять класс custom editor.

В OnSceneGUI() перед EditMesh() добавим следующее:

Сохраним (Save) файл и вернёмся в Unity. Перейдите в папку Scripts и перетащите MeshStudy.cs на GameObject Cube в Hierarchy, чтобы прикрепить его.

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Теперь в консоли должно выводиться сообщение «Custom editor is running», и это означает, что мы всё сделали верно! Можете удалить отладочное сообщение, чтобы оно не мешало нам в консоли.

Клонирование и сброс меша

При работе с 3D-мешем в режиме Edit при помощи custom editor будьте аккуратны, чтобы не перезаписать меш Unity по умолчанию. Если это произойдёт, то придётся перезапускать Unity.

Чтобы безопасно клонировать меш без перезаписи исходной формы, создадим копию меша из свойства MeshFilter.sharedmesh и присвоим его снова mesh filter.

В MeshStudy.cs перед началом класса MeshStudy добавим следующее:

Объяснение кода: после добавления этого атрибута функция Start() будет выполняться и в режиме Play, и в режиме Edit. Теперь мы сначала можем создать экземпляр объекта меша и клонировать его.

В InitMesh() добавим следующий код:

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Объяснение вершин и треугольников в Unity

Меш состоит из вершин, соединённых рёбрами в треугольники. Треугольники задают базовую форму объекта.

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Отображение вершин

Здесь мы хотим отобразить вершины куба в виде голубых точек.

В MeshInspector.cs зайдём в функцию EditMesh() и добавим следующее:

Объяснение кода: эта строка преобразует локальную позицию вершины в координату в мировом пространстве.

В той же функции, в блоке if сразу после только что добавленной строки кода добавим следующее:

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Перемещение отдельной вершины

Начнём с самого простого шага манипуляций с мешем — перемещения отдельной вершины.

Затем добавим в функцию PullOneVertex() следующее:

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Похоже, что некоторые из вершин имеют одинаковую позицию, поэтому когда мы перетаскиваем только одну, остальные вершины остаются за ней, и меш ломается. В следующем разделе мы устраним эту проблему.

Нахождение всех похожих вершин

Визуально меш куба состоит из восьми вершин, шести сторон и 12 треугольников. Давайте проверим, так ли это.

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Объяснение кода: [HideInInspector] скрывает общую переменную от окна Inspector.

Закомментируем этот атрибут:

Примечание: сокрытие значений вершин помогает [HideInInspector] в случае более сложных 3D-мешей. Так как размер массива вершин может достигать тысяч элементов, то это может приводить к торможению Unity при попытке просмотра значения массива в Inspector.

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

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

Поэтому расчёт таков: 6 x 4 = 24 вершины.

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

В MeshStudy.cs заменим весь код внутри функции DoAction() на следующий:

Перейдём в функцию PullSimilarVertices() и добавим следующее:

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Теперь, когда мы выполнили первый шаг в манипуляции мешами, сохраним сцену и перейдём к следующему разделу.

Манипулирование мешами

В этом разделе вы узнаете о манипулировании мешами в реальном времени. Существует множество способов, но в этом туториале мы рассмотрим наиболее простой вид манипуляций мешами, а именно перемещение заранее созданных вершин меша.

Сбор выбранных индексов

Начнём с выбора вершин, которые будем перемещать в реальном времени.

Откройте сцену 02 Create Heart Mesh из папки Scenes. В окне Scene вы увидите красную сферу. Выберите Sphere в Hierarchy и перейдите в Inspector. Вы увидите, что к объекту прикреплён компонент скрипта Heart Mesh.

Теперь нам нужно, чтобы скрипт Editor для этого объекта отображал вершины меша в окне Scene. Перейдите в папку Editor и дважды щёлкните на HeartMeshInspector.cs.

Сохраните файл и откройте HeartMesh.cs из папки Scripts. В функцию ClearAllData() добавьте следующее:

Сохраните файл и вернитесь в Unity. Выберите Sphere и перейдите в Inspector к компоненту скрипта HeartMesh. Разверните Selected Indices, нажав на значок стрелки рядом с ним. Это позволит нам отслеживать каждую вершину, добавляемую в список.

Включите Is Edit Mode с помощью флажка рядом с ним. Благодаря этому в окне Scene будут отрисовываться вершины меша. При нажатии на синие точки в Selected Indices должны соответствующим образом меняться значения. Также протестируйте кнопку Clear Selected Vertices, чтобы убедиться, что она очищает все значения.

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Примечание: в изменённом custom Inspector у нас есть опция для отображения/скрытия манипулятора transform с помощью Show Transform Handle. Так что не паникуйте, если не найдёте в других сценах манипулятор Transform! Перед выходом включайте его.

Превращение сферы в сердце

Изменение вершин меша в реальном времени по сути состоит из трёх этапов:

В той же функции Init() перед закрывающей скобкой блока else добавим следующее:

Внутрь функции StartDisplacement() добавим следующее:

Источник техники Falloff
Исходная формула взята из файла пакета ассетов Procedural Examples, который можно бесплатно скачать из Unity Asset Store.

Сохраните файл и вернитесь в Unity. Выберите Sphere, перейдите к компоненту HeartMesh и попробуйте добавить несколько вершин в свойство Selected Indices. Отключите Is Edit mode и нажмите Play, чтобы посмотреть на результат своей работы.

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Поэкспериментируйте со значениями Radiusofeffect, Pullvalue и Duration, чтобы получить разные результаты. Когда будете готовы, измените настройки в соответствии с показанным ниже скриншотом.

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Нажмите на Play. Превратилась ли ваша сфера в сердце?

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Поздравляю! В следующем разделе мы сохраним меш в префаб для дальнейшего использования.

Сохранение меша в реальном времени

Для сохранения процедурного меша в форме сердца в режиме Play необходимо подготовить префаб, дочерним элементом которого будет 3D-объект, а затем заменить его ассет меша новым с помощью скрипта.

В окне Project найдите CustomHeart в папке Prefabs. Нажмите на значок стрелки, чтобы развернуть его содержимое и выберите Child. Теперь вы видите в окне превью Inspector объект Sphere. Это префаб, который будет хранить данные нового меша.

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Объяснение кода: возвращает ассет меша со значениями из меша в форме сердца.

Сохраните файл и вернитесь в Unity. Нажмите Play. После завершения анимации в Inspector появится кнопка Save Mesh. Нажмите на кнопку, чтобы сохранить новый меш, а затем остановите проигрыватель.

Перейдите в папку Prefabs и посмотрите на префаб CustomHeart. Вы должны увидеть, что теперь в объекте префаба CustomHeart есть совершенно новый меш в форме сердца.

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Соединяем всё вместе

В предыдущей сцене функция DisplaceVertices() использовала формулу Falloff для определения силы перетаскивания, которая прикладывалась к каждой вершине в пределах заданного радиуса. Точка «затухания» (fall off), в которой сила перетаскивания начинает снижаться, зависит от использованного типа Falloff: Linear, Gaussian или Needle. Каждый тип создаёт в меше разные результаты.

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

В этом разделе мы рассмотрим другой способ манипулирования вершинами: с помощью заданной кривой. Взяв правило, что скорость равна расстоянию, поделённому на время (d=(v/t)), мы можем определить позицию вектора, ссылаясь на его расстояние, поделённое на время.

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Использование способа с кривой

Сохраните текущую сцену и откройте 03 Customize Heart Mesh из папки Scenes. Вы увидите в Hierarchy экземпляр префаба CustomHeart. Нажмите на значок стрелки рядом с ним, чтобы развернуть его содержимое и выберите Child.

Просмотрите его свойства в Inspector. Вы увидите компонент Mesh Filter с ассетом Heart Mesh. Прикрепите к Child в качестве компонента скрипт Custom Heart. Теперь ассет должен смениться с HeartMesh на clone.

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Далее откройте CustomHeart.cs из папки Scripts. Перед функцией Start() добавьте следующее:

Перейдите в CurveType1() и добавьте следующее:

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Чтобы увидеть подробные результаты для разных типов кривых, введите значения в соответствии со скриншотом:

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Для списка Curve Type выберите значение Curve1, убедитесь, что для Edit Type выбрано None и нажмите Play. Вы должны увидеть, что меш расходится в паттерн. Покрутите модель, чтобы увидеть её в виде сбоку, и сравните результаты для обоих типов кривых. Здесь вы видите, как выбранный Curve Type влияет на смещение меша.

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

unity смена материала скриптом. image loader. unity смена материала скриптом фото. unity смена материала скриптом-image loader. картинка unity смена материала скриптом. картинка image loader. В каком уроке можно посмотреть тему по сабжу?

Вот и всё! Можете нажать на Clear Selected Vertices, чтобы сбросить Selected Indices и поэкспериментировать с собственными паттернами. Но не забывайте, что есть и другие факторы, которые будут влиять на конечный результат меша, а именно:

Куда двигаться дальше?

Файлы готового проекта находятся в архиве проекта туториала.

Не останавливайтесь на этом! Попробуйте использовать более сложные техники, применяемые в туториале «Процедурная генерация лабиринтов в Unity».

Надеюсь, вам понравился этот туториал, а информация оказалась полезной. Особую благодарность я выражаю Джасперу Флику из Catlike Coding за его отличные туториалы, которые помогли мне собрать демо для моего проекта.

Источник

Погружение в скрипты игрового движка Unity3d, ч.1

Игровой объект

Создание нового игрового объекта с именем MyObject.
Созданный объект будет доступен по ссылку myObject.

Поиск объекта по его имени.

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

Возвращает список всех объектов с указанным тегом:

Проверка на наличие у объекта требуемого тега. Возвращает true, если у указанного объекта имеется тег MyTag:

Уничтожение объекта через минуту, после его создания:

Возвращает компонент component, привязанный к объекту GameObject, либо null, если объект не содержит данного компонента. Может использоваться, например, для доступа к другим скриптам, привязанным к объекту.

Возвращает все имеющиеся у объекта компоненты типа componentType.

Привязать компонент myComponent к объекту GameObject и получить ссылку на него.

Положение игрового объекта

Свойство transform объекта GameObject содержит в себе данные о положении объекта в игровом мире.

Возвращает глобальные координаты объекта в игровом мире. Возвращаемая величина имеет тип Vector3, который представляет из себя список из 3 координат — x, y и z:

Переместить объект в точку 0, 10, 0 игрового мира.

Тоже самое, что и в случае глобальных координат, но с локальными. Локальные координаты расситываются относительно родительского объекта. В случае отсутствия родительского объекта локальные координаты совпадают с глобальными:

Поворот объекта в углах Эйлера. Метод также возвращает координаты в виде объекта Vector3:

Тоже самое, что и предыдущий пример, но поворот объекта рассчитывается относительно родительского объекта:

Текущий угол поворота объекта, основанный на кватернионах. Возвращает объект типа Quaternion.

Текущий поворот объекта, основанный на кватернионах, но относительно родительского объекта:

Сброс угла поворота объекта:

Вращаем наш объект в указанную сторону со скоростью 1 градус в секунду. Принимает в качестве координат объект типа Vector3. Метод deltaTime объекта Time содержит время в секундах, затраченное на выполнение предыдущего кадра:

Тоже самое, что и предыдущий пример, но вращение объекта относительно координат родителя:

Перемещаем наш объект в указанном направлении со скоростью 1 юнит в секунду. Также принимает в качестве координат объект класса Vector3:

Физические свойства игрового объекта

Метод rigidbody объекта GameObject хранит в себе его физические свойства. Прежде, чем использовать метод rigidbody, его необходимо добавить к игровому объекту.

Получаем/задаем вектор скорости объекта:

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

Задание массы объекту. Рекомендуется использовать массу в пределах от 0.1 до 10. Использование слишком больших значений может привести к непредсказуемым результатам при расчете физики:

Влияние на объект гравитации. Принимает в качестве параметра булево значение. Позволяет отключить влияние гравитации на отдельные объекты:

Влияние физики на игровой объект. Позволяет отключить частично, либо полностью влияние физических законов на объект:

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

Указание координат точки центра массы объекта. Применяет координаты в виде уже знакомого нам объекта Vector3.

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

Режим определения столкновений между объектами. Можно указать несколько разных режимов:
CollisionDetectionMode.ContinuousDynamic для быстро движущихся объектов;
CollisionDetectionMode.Continuous для столкновений с быстро движущимися объектами;
CollisionDetectionMode.Discrete (по умолчанию) для обычных столкновений;
В случае отсутствия проблем с определением столкновений рекомендуется использовать свойство по умолчанию.

Задать плотность объекта:

Применить импульс к объекту с указанным вектором. В результате применения импульса объект придет в движение пропорционально силе импульса.

Применить импульс к объекту с вектором в его (объекта) системы координат:

Добавить объекту крутящий момент. Применение данного метода заставит объект вращаться вокруг своего центра масс GameObject.rigidbody.centerOfMass.

Тоже самое, что и предыдущий пример, но относительно координат объекта:

Применение импульса к объекту из внешней указанной точки. Заставляет объект двигаться и вращаться одновременно. Может использоваться, например, для симуляции попадания в объект пули. Первый параметр указывает вектор направления силы, второй параметр — исходную точку направления силы.

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

Заставить объект «уснуть», и запретить дальнейший расчет физических показателей для него:

Проверить «заснул» ли объект:

«Разбудить» объект для возможности дальнейшего применения влияния физики на него:

Трассировка лучей

Один из самых часто используемых в разработке на Unity3D объект, это Ray. Данный объект позволяет выпустить луч из указанной точки, в указанном направлении, и вернуть некоторые свойства объектов, которых он смог достичь.

Создаем объект класса RaycastHit, который содержит информацию об объекте, с которым столкнулся луч:

Отправляем луч длиной в 50 юнитов из позиции rayPosition в направлении rayVector, и заносим объект, с которым столкнулся луч в переменную hit:

Получаем дистанцию до объекта, с которым столкнулся луч. Дистанция не может быть больше, чем протяженность луча:

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

Для получения тега объекта используем следующий способ:

Unity3D содержит еще множество различных методов и объектов, полезных и не очень. К сожалению полный их обзор увеличил бы и без того объемную статью, поэтому я постараюсь рассказать об остальном более подробно в будущем, если мне представится такая возможность. Я бы хотел пожелать опытным разработчикам побольше интересных проектов, а начинающим — успехов и интересных открытий. Спасибо, что уделили внимание данной статье.

Источник

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

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