forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Unity (http://forum.boolean.name/forumdisplay.php?f=144)
-   -   Недостатки Unity3d (http://forum.boolean.name/showthread.php?t=17003)

Knightmare 06.07.2012 20:44

Ответ: Недостатки Unity3d
 
Цитата:

Сообщение от cahekp (Сообщение 232327)
Кэш лежит в папке Library. Саму папку Library коммитить не надо. На каждом компьютере она честно пересоздается. Метаданные в Юнити (дополнительный файл с расширением *.meta рядом с каждым ресурсом - параметры импорта) должны быть включены (Editor Settings -> Meta Files) и их нужно коммитить.

Ну ок, они видимо поменяли что-то с версии 3.5.х (или 3.6.х, не помню что там было актуально на тот момент). Проблема была в том, что всякие там метаданные, кэш и прочая лабуда сваливались в папку Library, в виде здоровенной иерархии папок и файлов (я там даже не нашел корреляции с количеством ассетов и файлов в проекте), которые появлялись/исчезали когда им вздумается. Потеря любого из тысяч этих файлов приводила к сломанным сценам. Вообще это все не есть нормально, все вспомогательные данные должны восстанавливаться, таскать нужно за собой только код и ассеты, все.

Цитата:

Сообщение от cahekp (Сообщение 232327)
Кстати, задачу подробнее можешь озвучить? Интересно стало.

Прям точно как было уже не вспомню сейчас, в общих чертах: есть уровень, на нем всякие препятствия, стены и т.п., есть модель игрока, он может крутиться на месте, но в целом неподвижен и физика не него не действует. Задача была чтобы он в стены и препятствия не проваливался при поворотах (да, вращался он не вокруг собственной оси, а вокруг заданной точки), при этом камера должна была вращаться свободно. Примерно так, где-то может приврал. Итог - физику нельзя было заюзать т.к. игрок статичен и сцена статична -> физика тупо не считается для них. Казалось бы - да и хер с ней, физический движок может легко проверить пересечение двух тел. Но вот только нет для этого функционала (чувак как раз об этом просил на форуме). Собственно в итоге я для частного случая и написало решение. Скажем так, для меня это не проблема вообще (я там на чистом OGL даже пилил местами, где это было нужно, хотя наружу торчат жалкие огрызки API), а для кого-то это будет блокер.

cahekp 06.07.2012 21:21

Ответ: Недостатки Unity3d
 
Хм... Ну, вроде, задача не из сложных. Вполне реализуема без всяких костылей.

Насколько я правильно понял задачу, я бы на игрока в этом случае повешал CharacterController (чтоб сквозь стены не проходил, но на другие физ.объекты не влиял) и управлял его движением вокруг какой-то точки с помощью метода Move(Vector3.Cross((centerPoint - playerPosition).normalized, Vector3.up) * speedPlayer);
В таком случае игрок даже не должен иметь компонент Rigidbody. Всё через коллайдеры.

Knightmare 06.07.2012 21:29

Ответ: Недостатки Unity3d
 
Цитата:

Сообщение от cahekp (Сообщение 232333)
Хм... Ну, вроде, задача не из сложных. Вполне реализуема без всяких костылей.

Насколько я правильно понял задачу, я бы на игрока в этом случае повешал CharacterController (чтоб сквозь стены не проходил, но на другие физ.объекты не влиял) и управлял его движением вокруг какой-то точки с помощью метода Move(Vector3.Cross((centerPoint - playerPosition).normalized, Vector3.up) * speedPlayer);
В таком случае игрок даже не должен иметь компонент Rigidbody. Всё через коллайдеры.

Я где-то сказал что сложная? Как раз наоборот, просто даже тут пришлось велосипедить. С CharacterController тоже были грабли какие-то, в целом ход мыслей был примено таким - так, нам всего-то надо проверить пересечение в данный момент времени -> еба, нет такого функционала, ок давайте нам сюда CharacterController -> блин, работает как говно, ну давайте просто поиграемся с физ. телами -> блджад, еще хуже, ну ок, напишу руками -> PROFIT. И так то там, то тут, для одной вещи запилишь велосипед, для другой, там костыль поставишь, тут подопрешь. И все работает. А нахер ваш юнити-то тогда нужен? Где хваленная магия? Собственно об этом и разговор, совсем не о том, что вот прям никак нельзя чего-то там сделать.

Dzirt 06.07.2012 22:12

Ответ: Недостатки Unity3d
 
Короче грубо говоря - пока все више перечисленные минусы касаются недочетов и багов предыдущих версий юнити которые в связи с активнм развитием продукта - исправлятся\исправились )

pax 06.07.2012 23:09

Ответ: Недостатки Unity3d
 
Цитата:

Сообщение от Knightmare (Сообщение 232321)
Сложная иерархия объектов, на них болтаются контроллеры, физика, звук и прочая лабуда. Все засунуто в префаб, ведь ты хочешь как нормальный человек юзать это на нескольких сценах. Добавляешь префаб на сцену - связи теряются, модификация префаба понятное дело больше не влияет на инстансы. FUUUUUUUUUUUUUUUUUUUUUUU-!!11

Собственно ты кнопочку Apply не заметил в инспекторе. После разрыва при нажатия Apply - префаб приобретает вид отредактированного чудо объекта. И в остальных сценах если там была связь все заменится.

Amatsu 06.07.2012 23:09

Ответ: Недостатки Unity3d
 
Ну наконец на булке срач без политики

Knightmare 06.07.2012 23:16

Ответ: Недостатки Unity3d
 
Цитата:

Сообщение от pax (Сообщение 232345)
Собственно ты кнопочку Apply не заметил в инспекторе. После разрыва при нажатия Apply - префаб приобретает вид отредактированного чудо объекта. И в остальных сценах если там была связь все заменится.

Ну блин, связь теряется. Да, меняется префаб, да новый инстанс создается нормально, но потом он теряет связь с префабом и больше не меняется (если не ошибаюсь - после запуска проекта, до этого вполне все работает). Удалил и создал заново - все ок, до следующего запуска.

pax 06.07.2012 23:20

Ответ: Недостатки Unity3d
 
При запуске префабы в сцене перестают быть префабами, зачем связи в рантайме? Чтобы влиять на новые создаваемые объекты? После остановки Play сцена восстанавливается в исходный вид, все связи возвращаются. Небыло на моей памяти действительно потери связи объекта сцены с префабом.

Knightmare 06.07.2012 23:26

Ответ: Недостатки Unity3d
 
Часть возращалась, да. Часть - нет. Возможно потому что у меня сцена в рантайме сильно модифицировалась, фиг знает.

pax 06.07.2012 23:29

Ответ: Недостатки Unity3d
 
В рантайме нельзя модифицировать сам префаб (который в ассетах), он предназначен для создания копий, в самой сцене можно делать что угодно.

Вообще со всеми согласен, нет движков без недостатков, в Unity их порядочно. Но если придерживаться стандартного функционала - все OK. Нативных плагинов не писал еще, так что не могу ничего сказать по этому поводу. Те задачи, которые встают решаются, может не 100%, но >80%. Может потому что не ставим усложненных задач. Со временем хочу изучить obj-c, чтобы писать плугины. Надеюсь время будет.

Knightmare 06.07.2012 23:38

Ответ: Недостатки Unity3d
 
Я тебе давно говорил - изучай Obj-C, даже не для того чтобы писать плагины, вообще пригодится, под iOS куча интересных проектов и еды приносит значительно больше чем геймдев. Ну правда для начала придется потренироваться на кошках и пописать нудную херню (хотя тут тоже как посмотреть, иногда обламывается мелкий проект на $500-1000, а работы меньше чем на день, чистейший профит).

pax 06.07.2012 23:41

Ответ: Недостатки Unity3d
 
Хочется да, надеюсь появится время на это.

cahekp 06.07.2012 23:51

Ответ: Недостатки Unity3d
 
Цитата:

Сообщение от pax (Сообщение 232351)
Со временем хочу изучить obj-c, чтобы писать плугины

Погодите-ка, а Unity на Objective-C написан, что ли?

Knightmare 07.07.2012 00:02

Ответ: Недостатки Unity3d
 
Нет, для iOS версии на obj-c можно писать расширения (фейсбуки, геймцентры, инаппы всякие там).

cahekp 07.07.2012 13:47

Ответ: Недостатки Unity3d
 
Последние новости: позвал jimon'а сюда через личку. Ждем-с ответа. :)


Часовой пояс GMT +4, время: 19:25.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot