Вопрос-[ответ] по Unity
| |
QWER56 | Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Вопрос-[Ответ] по Unity3d
База скриптов Unity3d Курс Уроков по Unity 3D от Alcatraz
ConsMark - поисковик по интернет магазинам.
Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54 |
|
| |
drcrack | Дата: Суббота, 28 Мая 2022, 01:17 | Сообщение # 8901 |
старожил
Сейчас нет на сайте
| Цитата Но я почему-то уверен, что есть способ без теней не освещать объект, который находится за другим объектом. Да, сделать источники света меньше, а стену толще, чтобы они ее не пробивали 
Можно попробовать на слоях: https://docs.unity3d.com/Package....rs.html Сложность и вообще возможность заставить это работать зависит от твоих уровней и как ты их генерируешь
Еще в теории есть такая фича как задание bounding box / bounding planes источникам света вручную, но в юнити ее насколько знаю нет
Сообщение отредактировал drcrack - Суббота, 28 Мая 2022, 10:25 |
|
| |
mrFrankenstein | Дата: Воскресенье, 29 Мая 2022, 23:29 | Сообщение # 8902 |
частый гость
Сейчас нет на сайте
| Цитата drcrack (  ) В чем проблема-то, в том что теней нет? Включи или запеки) И ещё про это. https://imgur.com/XRXQNkq

Тама вот написано "Realtime shadows for point lights are not supported. Either disable shadows or set the light mode to Baked." что в переводе на наш означает "Тени в реальном времени для точечных источников света не поддерживаются. Либо отключите тени, либо установите режим освещения на Запеченный." если верить переводчику.
Вот чего хочу спрсить: А как, собсно тени-то включить? в статье аткого ничего не нашёл, или просто не туда смотрю. Я хз в общем( Версия Unity 2020.3.31f1 (64-bit)
Сообщение отредактировал mrFrankenstein - Воскресенье, 29 Мая 2022, 23:33 |
|
| |
drcrack | Дата: Вторник, 31 Мая 2022, 08:45 | Сообщение # 8903 |
старожил
Сейчас нет на сайте
| Обнови Unity и URP Судя по https://docs.unity3d.com/Package....OG.html тени для Point Lights поддерживаются с 11.0
Сообщение отредактировал drcrack - Вторник, 31 Мая 2022, 08:46 |
|
| |
mrFrankenstein | Дата: Вторник, 31 Мая 2022, 19:02 | Сообщение # 8904 |
частый гость
Сейчас нет на сайте
| Цитата drcrack (  ) Обнови Unity и URP
Даже как-то стыдно за себя стало... Спасибо)Добавлено (02 Июня 2022, 14:09) --------------------------------------------- Я тут глупость одну придумал и вот совета у вас хочу спросить.
Мой уровень строится при старте сцены, и оптимизировать его мне практически нечем (или я просто плохо учился). И я подумал "А не могу ли я использовать тут хаб для статичных объектов?" Ну тоесть уровень строится, расставляются декорации и свет, строится навмеш, а потом всё заменяется на не реагирующие со светом примитивы (кубы или шары), сохраняющие местоположение, размер и название объекта. На каждый такой примитив вешается скрипт, который по функции "OnBecameVisible" меняет примитив на нужный объект из хаба, а когда тот "OnBecameInvisible"- всё меняется обратно.
Вроде всё просто, а всё ровно кажется, что херня какая-то получится... Что скажете на это?
|
|
| |
Storm54 | Дата: Четверг, 02 Июня 2022, 14:50 | Сообщение # 8905 |
постоянный участник
Сейчас нет на сайте
| Какие-то дикие костыли. На уровне GPU нет никакого различия между юнитевскими статическими объектами, динамическими или еще какими-нибудь. Есть просто набор треугольников (мешей), текстур и программ (шейдеров), которые все это дело рисуют. Сгенерите сцену из динамических объектов и не парьтесь. Если станет слишком много вызовов отрисовки (draw calls), то можно в несколько строчек эти меши объединить - https://docs.unity3d.com/Manual/combining-meshes.html Галочка static просто дает понять юнити, что эти объекты не двигаются на сцене, а значит их можно попытаться объединить во время билда, но ничего не мешает вам сделать это самостоятельно через вызов Mesh.CombineMeshes или собственную реализацию. Естественно, что объединяемые меши должны использовать один и тот же материал (в общем случае), чтобы после объединения их можно было отрисовать тем же материалом.
Сообщение отредактировал Storm54 - Четверг, 02 Июня 2022, 14:51 |
|
| |
drcrack | Дата: Четверг, 02 Июня 2022, 21:05 | Сообщение # 8906 |
старожил
Сейчас нет на сайте
| Цитата На каждый такой примитив вешается скрипт, который по функции "OnBecameVisible" меняет примитив на нужный объект из хаба, а когда тот "OnBecameInvisible"- всё меняется обратно. Ты почти изобрел frustum culling — обьекты вне поля зрения камеры не рисуются (не отправляются на видеокарту), и это базовая фича юнити (и вообще любого современного движка)
|
|
| |
mrFrankenstein | Дата: Пятница, 03 Июня 2022, 11:29 | Сообщение # 8907 |
частый гость
Сейчас нет на сайте
| Цитата Storm54 (  ) Если станет слишком много вызовов отрисовки (draw calls), то можно в несколько строчек эти меши объединить
именно это из-за этого я всем этим и занялся. Спасибо за подсказку, сейчас сяду пробовать)
Цитата drcrack (  ) Ты почти изобрел frustum culling
это было бы второй моей целью, т.к. базовый рендерит всё что перед камерой, а не только то, что видно. А поскольку у меня под 2000 базовых обьектов (это только основные) то и вызовов отрисовки какое-то неймоверное количество, особенно если зайти в край уровня и посмотреть назад... Сейчас с комбайном попробю и, если что, вернусь)Добавлено (06 Июня 2022, 14:00) --------------------------------------------- так... Я попробовал комбинировать меши и всё получилось отлично и батчей стало намного меньше (спасибо друзья), но... У меня имеется целая куча одинаковых квадратиков для пола и потолка, меши которых комбинируются в первую очередь и с ними есть некоторая проблема. https://imgur.com/EdmVkAi
Их меши тупо приклеиваются друг к другу (как с лева), из-за чего остается неимоверное количество треугольников, которые просто не нужны. Есть ли какой-нибудь способ пересчитать скомбинированный меш так, чтобы убрать лишнее? Добавлено (06 Июня 2022, 15:14) --------------------------------------------- Как я понял, CombineMeshes берёт объекты и перекладывает их матрицы в массив, а потом по массиву лепит это всё друг к другу. И я подумал, что наверное можно попробовать проверить матрицы на точки , которые есть у нескольких объектов сразу и избавится от них (если это возможно). https://imgur.com/V58gnHr
 Проблема только в том, что я хз как обращаться с матрицами и никогда их даже не трогал, а инфы которая всё это разжевывает я не могу найти:( Кто-нибудь может знает где смотреть? Добавлено (16 Июля 2022, 14:28) --------------------------------------------- Прошлые разы мне тут очень помогали, может и сейчс помогут) Мне надо в один контейнер упаковать (или сделать что-нибудь близкое к этому) переменные типа булеан, флоат, стринг и вектор3, а потом запихнуть этот контейнер в список, чтобы можно было легко перебирать эти контейнеры и менять их при необходимости. При чём количество таких контейнеров не известно. вот. если можете сказать что почитать по этому поводу- буду очень признателен, ато я даже не знаю с чего подступится...
|
|
| |
smertsov | Дата: Среда, 20 Июля 2022, 15:48 | Сообщение # 8908 |
был не раз
Сейчас нет на сайте
| Добрый день.Не подскажите что нужно прописать в коде чтобы персонаж ходил по диагонали прямо, без наклона, без navmesh, используя waypoints. Есть ступеньки на 3d сцене и ai идет к точке на высоте, но наклоняется rotation на угол в -30 градусов, а так сделать в 0 градусов.
Сообщение отредактировал smertsov - Среда, 20 Июля 2022, 15:56 |
|
| |
drcrack | Дата: Четверг, 21 Июля 2022, 10:08 | Сообщение # 8909 |
старожил
Сейчас нет на сайте
| Цитата Прошлые разы мне тут очень помогали, может и сейчс помогут) Мне надо в один контейнер упаковать (или сделать что-нибудь близкое к этому) переменные типа булеан, флоат, стринг и вектор3, а потом запихнуть этот контейнер в список, чтобы можно было легко перебирать эти контейнеры и менять их при необходимости. При чём количество таких контейнеров не известно. вот. если можете сказать что почитать по этому поводу- буду очень признателен, ато я даже не знаю с чего подступится... со списком все просто — делаешь [SerializeField] List<Container> как обычно теперь о самом классе Container: 1) это может быть [Serializable] Container { }, тогда в инспекторе прямо в списке будут твои поля 2) либо [CreateAssetMenu] Container: ScriptableObject, тогда контейнеры будут отдельными ассетами которые ты перетаскиваешь в список (см тут: https://docs.unity3d.com/Manual/class-ScriptableObject.html
Цитата Добрый день.Не подскажите что нужно прописать в коде чтобы персонаж ходил по диагонали прямо, без наклона, без navmesh, используя waypoints. Есть ступеньки на 3d сцене и ai идет к точке на высоте, но наклоняется rotation на угол в -30 градусов, а так сделать в 0 градусов. покажи код
Сообщение отредактировал drcrack - Четверг, 21 Июля 2022, 10:10 |
|
| |
|