Я новичок. Совсем недавно установил этот движок. Поэтому здесь как и с донорским органом - только под таблетками свой собственный организм не будет отторгать новинку. Ломка началась и у меня - всё кажется неудобным, странным...
По мере продвижения буду стараться делать небольшие отчёты... зачем? Чтоб потом самому не забыть как нашаманить то или иное действо.
Посмотрим, что из этого выйдет :)
Свет
Я пока не умею особо моделить, поэтому начну делать вакханалию вместе с lowpoly. Итак, хочу, чтобы было простенькое lowpoly с цветами, независящими от положения камеры и источников света (почти так в Monument Valley)... Ну вот типа такого:Недавно мне подсказали юзать шейдер Unlit. Задаешь цвет и вперед! Очень удобно, спасибо e-cone за подсказку!
А до этого я сам себе написал шпаргалку, и делал вот это для каждого материала:
- Albedo - выставляем нужный цвет
- Metallic - выкручиваем в 1
- Smoothness - убираем в 0
- Emission - самый важный параметр здесь. Пипеткой тыкаем нужный цвет. Само численное значение выставляется автоматически.
- Убираем галки с Specular highlights и Reflections.
Камера
Мне нужно 2д. Выставляю Projection - Orthographic, и вуаля! У нас в наличие орто-проекционная камера. Конечно, юнити выигрывает именно своим 3д, поэтому чуточку пришлось посидеть, чтобы настроить 2.5D проекцию. Можно и в редакторе выставить угол Эйлера, например, в -60.Но я решил сделать это руками:
float y = -10.0f;
Camera.main.transform.position = new Vector3(0, y, y * Mathf.Tan(Mathf.PI / 6));
Camera.main.transform.localEulerAngles = new Vector3(-60, 0, 0);
Таким образом наша картинка проецируется под 30 градусов на экран. Вертикальные размеры уменьшаются вдвое. Мне очень нравится такой вид, если честно. И рисовать легко, и глубина чувствуется.
Cinema 4D
Импортировать объекты из Cinema 4D вроде нетрудно. Единственное, пришлось руками скопировать плагин из папки юнити в папку синема. Неудобно, но один раз сделать не проблема. После этого просто сохраняем файл из Cinema 4D в папку ассетов, и объекты автоматически распознаются и подхватываются в юнити.Обработка соударений
А вот с этим пришлось попотеть. Реально, в Box2D и Nape очень легко сказать движку "столкновение обработано, не делай ничего сам". А вот как это сделать в Unity "по-нормальному" я так и не понял. В моем случае скорость может меняться только при соударениях, поэтому я сохраняю скорость локально и каждый раз оперирую с этим вектором внутри OnCollisionEnter.DOTween
Буквально через пару дней знакомства мне понадобился твин-движок. Выбрал DOTween...Ну вот вроде все сделал по инструкции: скачал, заимпортил, засетапил. А юнити все равно ругается! Что за ерунда?!
fDoor.transform.DOMoveZ ( 0.3, 0.3 );
Кидается вот такой ошибкой:
error CS1928: Type `UnityEngine.Transform' does not contain a member `DOMove' and the best extension method overload `DG.Tweening.ShortcutExtensions.DOMove(this UnityEngine.Transform, UnityEngine.Vector3, float, bool)' has some invalid arguments
За ногу этот юнити! После нескольких часов изысканий, переустановки DOTween, и чего-то там еще, оказалось, что я просто не указал f у каждого числа. Да, надо так:
fDoor.transform.DOMoveZ ( 0.3f, 0.3f );
Итого
Начало положено... Конечно, вопросов и косяков н-а-а-а-а-а-много больше! Начиная от таких базовых как:- почему не работает transform.position.x += 1?
- как сделать, чтобы 1 пиксель картинки == 1 пиксель на экране (perfect pixel)
- где здесь билборды?
Но я решил собирать более наглядные что ли вещи... вроде света, камеры и другого. А сухому коду посвящать как можно меньше объема постов.
Вот как-то так! До скорого!
0 коммент.:
Отправить комментарий