![]() |
Ответ: Фак по Юнити.
PHP код:
|
Ответ: Фак по Юнити.
Вот, работает, спасибо!
|
Ответ: Фак по Юнити.
PHP код:
|
Ответ: Фак по Юнити.
Как всеже изменить немного коодинаты дропа относительно игрока + что бы спавн происходил перед самим игроком?
Я делаю так: PHP код:
|
Ответ: Фак по Юнити.
PHP код:
|
Ответ: Фак по Юнити.
Написал пару функция упрощающих работу с GUI редактора.
Код:
public static T ObjectField<T>(string label, T field) where T : Object { Только не понятно почему where T : System.Enum считается ошибкой. |
Ответ: Фак по Юнити.
Цитата:
и зачем делать горизонталы с метками, если есть перегруженная функция, которая автоматом метку выводит и все ровно делает? |
Ответ: Фак по Юнити.
pax, что за функция?
|
Ответ: Фак по Юнити.
Если ты не заметил, то там три перегрузки, две из которых принимают label
http://unity3d.com/support/documenta...jectField.html А у этой аш шесть, 4 с лэйблом http://unity3d.com/support/documenta...EnumPopup.html |
Ответ: Фак по Юнити.
Блин! Как же туплю. Не глянул на все варианты метода. Хотя все равно мой вариант ObjectField выглядит намного проще.
pax, а ты ngui использовал или свой писал? Не пойму как там что все объекты имея одинаковые z координаты отображаются правильно и со всех сторон. Как будь-то рисуется в порядке от родителя к детям. |
Ответ: Фак по Юнити.
Не использовал, но сортировка должна быть обязательно. Если проще, там у шейдера должен быть отключен ztest и zwrite
|
Ответ: Фак по Юнити.
В ngui один меш на все элементы. Там уже в самом меше все отсортировано. Отсортировать каждый объект для рендеринга от родительского к дочернему наверно нельзя(
Но и создавать меш каждый кадр это тратить кучу памяти. А для мобильного частые вызовы сборщика мусора совсем не гуд. Замкнутый круг получается( кстати, я вот не пойму событие типа OnMouseOver вызываются для всех колайдеров? Не слишком ли это затратно, ведь это почти никогда не надо. И на с тачами это я так понимаю не работает? |
Ответ: Фак по Юнити.
Цитата:
Цитата:
|
Ответ: Фак по Юнити.
Цитата:
А объект может узнать, что в его иерархии произошли изменения? Для Editor'а такое событие есть, а для скрипта не видел. Интересно как там происходит добавление новых элементов. Цитата:
|
Ответ: Фак по Юнити.
Ну памяти уйдет не так уш и много, а ускорить пересоздание массивов можно разными способами.
Вот про событие изменения объекта ничего не знаю, что за событие вызывается в редакторе? Вообще можно, при добавлении или удалении компонента, мессадж вверх по иерархии слать. |
Ответ: Фак по Юнити.
Да вообщем-то можно пересоздавать массивы только когда полигонов станет больше.
А вот использовать два материала на самом деле еще сложнее. Если нету проверки з-буфера, то отрисовать два меша правильно вообще нельзя, если конечно они не накладываются друг на друга. Событие EditorWindow.OnHierarchyChange. |
Ответ: Фак по Юнити.
Если отрисовка идет в порядке созданных полигонов, то почему нет? Сортировать полигоны по субмешам со своими материалами тоже не сложно.
|
Ответ: Фак по Юнити.
Я видел модели на которых было несколько материалов. Это называется субмеш? И я так понимаю материалов может быть не больше 3х т.к. есть только uv, uv1, uv2 ?
И за сколько дравкалов отрисуется такой объект, если у него первый полигон будет с одним материалом, второй с другим, третий снова с первым и так вперемешку. |
Ответ: Фак по Юнити.
Субмешей может быть сколько угодно, на каждый свой материал.
Дравколов будет столько, сколько субмешей. uv, uv1, uv2 указываются для вершин, субмеш это набор индексов вершин треугольников. Причем uv это одно и то же что и uv1 |
Ответ: Фак по Юнити.
Даже не представляю как это реализовано в unity.
Отрисовать несколько групп треугольников, причем в таком порядке, что, треугольник то с 1й группы, то со 2й, то снова с 1й. На opengl es 1.0 такое будет работать? Конечно, если можно будет не использовать 3-буфер, то можно повысить скорость. Особенно благодаря отключению очистки буфера глубины у камеры. Но вызов для каждой вершины TransformPoint и запись в массив может быть довольно медленным. |
Ответ: Фак по Юнити.
1-2-1 нельзя, можно 1-2-3, где 1 и 3 с одинаковыми материалами.
И зачем трансформировать вершины, если это делать видеокарта? |
Ответ: Фак по Юнити.
Цитата:
Цитата:
Может можно было бы создать шейдер, который принимает массив текстур или просто какое-то количество и в шейдере выбирать нужную текстуру. Только не знаю можно ли так сделать и куда записывать какому треугольнику какую текстуру. |
Ответ: Фак по Юнити.
Цитата:
В шейдер максимум может попасть до 8 текстур на современных видеокартах, и переключение текстур делать совсем не стоит. Проще упаковать текстуры в одну большую и вывести за один дравкол. |
Ответ: Фак по Юнити.
Как в скрипте можно создать прямую, а еще лучше функцию, по которой будет перемещаться объект?
|
Ответ: Фак по Юнити.
PHP код:
|
Ответ: Фак по Юнити.
Я сделал свой коллайдер из 11 поликов, установил на объект, все вроде бы хорошо, но во время самой игры коллайдер свою функцию не выполняет. Все работает только если поставить галочку к Convex.
Как исправить? Что я делаю не так? Почему при convex работает, а так - нет? |
Ответ: Фак по Юнити.
Двигающиеся объекты должны быть Convex, а еще иметь RigidBody с флажком IsKinematic
UPD: можно сделать компаунды: соединить несколько коллайдеров одним RigidBody |
Ответ: Фак по Юнити.
pax, IsKinematic - если не двигающиеся, поправка.
Как сделать повторение анимации несколько раз подряд? |
Ответ: Фак по Юнити.
IsKinematic если двигающийся вручную кодом через transform.
Повторение - поставить клипу Loop |
Ответ: Фак по Юнити.
Я имел введу, как не зациклить, а повторить? Как сделать так, что бы при нажатии кнопки анимация проигрывалась, например, ровно 3 раза?
|
Ответ: Фак по Юнити.
SaM_, там кажешься можно было в очередь анимации ставить http://unity3d.com/support/documenta...layQueued.html . Только не знаю одну и ту же можно поставить в очередь.
|
Ответ: Фак по Юнити.
Как включить цвет вершин в шейдере?
Пишу так Код:
Shader "XGUI/XGUIShader" { |
Ответ: Фак по Юнити.
combine texture * primary
или combine texture * primary DOUBLE |
Ответ: Фак по Юнити.
Получилось так:
Код:
Shader "XGUI/XGUIShader" { А "RenderType"="Transparent" что-то дает? А то что с ним, что без него. |
Ответ: Фак по Юнити.
pax, а ты пробовал скрывать скрипты в инспекторе? Оказывается сохранение такого GO вызывает ошибку SerializedObject of SerializedProperty has been Disposed и или вообще скрытые скрипты не сохраняются, или не полностью сохраняются. Не пойму как можно при сохранении сделать эти скрипты не скрытыми.
|
Ответ: Фак по Юнити.
не пробовал
|
Ответ: Фак по Юнити.
pax, значит баг юнити. Там еще, если в OnDisable попытаться снять флаги скрытия скриптов, то события OnEnable/OnDisable начинают постоянно вызываться(
Я не пойму, если в ExecuteInEditMode скрипте я в режиме редактора создал меш, то это меш должен сохраняться? Или его лучше создавать перед каждым стартом игры? В префаб меш почему-то не сохраняться( |
Ответ: Фак по Юнити.
меш надо сохранять в ассеты с расширением *.asset
http://unity3d.com/support/documenta...eateAsset.html |
Ответ: Фак по Юнити.
Пытаюсь вставить в созданную в юнити анимацию Animation Event. Пишет, что не может найти скрипты для прикрепления к ивенту. Может кто знает правило написание скрипта с функцией на C#, чтобы интерфейс Animation Event его увидел?
|
Ответ: Фак по Юнити.
Должно увидеть:
PHP код:
|
Ответ: Фак по Юнити.
Скорее всего из–за последнего пункта и не видело, спасибо
|
Ответ: Фак по Юнити.
вот думаю как сделать систему отслеживания нажатия на элементы моего gui.
Делаю так: В одном скрипте, в LateUpdate пускать от курсора луч и если была коллизия с какой-то кнопкой, то поднять у нее флаг, что над ней мышка или она нажат. А в следующем кадре в Update опрашивать эти кнопки. Только будет запаздывать на кадр, но думаю это не страшно. Но вот не пойму когда кнопка должна сбрасывать у себя эти флаги? В Update нельзя т.к. идет их опрос, в LateUpdate нельзя т.к. можно сбросить новые данные. Наверно я что-то делаю абсолютно не так. Можно было бы сделать, что бы каждая кнопка сама пускала в себя луч, но хочу это выделить в отдельный скрипт, который бы потом мог хранить данные о том, что мышка или тач над элементом gui или свободен и передавать его в игру. |
Ответ: Фак по Юнити.
зачем в GUI лучи?
|
Ответ: Фак по Юнити.
Цитата:
|
Ответ: Фак по Юнити.
Если это 3d объекты, то симитировать мышь можно достаточно просто:
1. Сначала мышь ни над чем. 2. Ты кидаешь луч каждый FixedUpdate, если во что-то попал - то OnMouseEnter для этого объекта. 3. Запоминаешь объект. 4. Если в следующем цикле попал в тот же объект - OnMouseOver 5. Если в другой, то тому что запомнен - OnMouseExit, новый запоминаешь и ему OnMouseEnter. 6. Если Input.GetMouseDown и есть запомненный объект - OnMouseDown 7. и т.д. А почему тебе не подходят эти события? http://unity3d.com/support/documenta...MouseExit.html http://unity3d.com/support/documenta...MouseDown.html http://unity3d.com/support/documenta...MouseDrag.html http://unity3d.com/support/documenta...ouseEnter.html http://unity3d.com/support/documenta...MouseOver.html http://unity3d.com/support/documenta...OnMouseUp.html |
Ответ: Фак по Юнити.
Цитата:
У меня такая структура: _рутовый объект ____меню 1 и его обработчик _______кнопки ____меню 2 и его обработчик _______кнопки т.е. обработчик и не на самой кнопке и не на самом рутовом объекте. Тут если посылать события, то всем потомкам рутового объекта, а это медленно. Вот и хочу, что бы из любого места можно было узнать состояние кнопки. Запоминать объекты это то же не очень. Тем более в каждом FixedUpdate луч пускать. Хорошо бы в последнем FixedUpdate пустить луч, в Update обработать все кнопки, а в LateUpdate сбросить флаги. Но как узнать, что FixedUpdate последний? |
Ответ: Фак по Юнити.
Блин! FixedUpdate не перед каждым Update вызывается. Из-за этого не всегда срабатывает нажатие на кнопку( Это ппц(
Может можно как-то из главного скрипта отсылать сообщения только объектам, которые будут обрабатывать его, а не всем подряд? |
Ответ: Фак по Юнити.
FixedUpdate срабатывает 100 раз в секунду.
Причем здесь каждый FixedUpdate? Все что я написал надо сделать в одном скрипте. И про сообщения писал только тому объекту под которым луч. Хоть пытайся понимать что тебе предлагают. |
Ответ: Фак по Юнити.
Можно как-то ограничить скорость GUI.RepeatButton?
|
Ответ: Фак по Юнити.
Есть у меня TileSet со списком объектов класса Tile.
Tile это обычный класс, ни от чего не унаследованный. У каждого тайла есть свой id. И есть скрипт Map, у которой есть ссылка на TileSet и поля в которые нужно записывать id тайлов. Сейчас мне эти id приходится вручную писать. Можно ли сделать, что бы id можно было выбрать TileSet'а, а не писать их вручную? id - это сейчас просто int. Делать в Editor'е редактирование каждого поля - не выход т.к. поля могут удаляться\добавляться или просто их быть много. Или лучше тайл наследовать от ScriptableObject и как обычно записывать каждый объект в ссылку? |
Ответ: Фак по Юнити.
Цитата:
Цитата:
|
Ответ: Фак по Юнити.
Мне надо как-то в Editor'е определить нажал ли я на id тайла или что-то другое. Для этого id придется сделать специальным классом, что бы отличать от других int'ов.
И потом в Editor'е как-то переопределить поле редактирования для этого типа элемента. Тогда должно получится. |
Ответ: Фак по Юнити.
Решил я достать все SerializedProperty из скрипта и вручную все поля рисовать, что бы можно было изменить в инспекторе поле для моего типа.
Только не пойму как проверить поле какого типа храниться в SerializedProperty? Т.е. мне надо это SerializedProperty сравнить с typeof(MyClass). |
Ответ: Фак по Юнити.
|
Ответ: Фак по Юнити.
Как бэ моего класса нету в SerializedPropertyType. Разве сначала проверить на SerializedPropertyType.ObjectReference, а потом достать ссылку и проверить ее.
Я думал может можно проще. |
Ответ: Фак по Юнити.
Честно - не пользовался этим сериалайзд проперти. Всегда сами писали отображение нужных свойств с помощью EditorGUI + делали SetDirty
|
Ответ: Фак по Юнити.
Цитата:
Разве SerializedProperty.type возвращает например строку PPtr<$Block>. Только не понятно с чем такое сравнивать надо. наверно сую я свой нос туда куда не надо) Хотел сделать скрипт карты, а в нем ссылки на тайлы земли, травы и др. И чтобы в эти ссылки можно было записать только объекты из tileset'а, который тоже с этом скрипте. На каждую переменную делать вручную поле будет не удобно т.к. часто придется изменять и редактор скрипта( Декомпилировал класс Editor. Вот так рисуется инспектор Код:
internal bool DoDrawDefaultInspector() |
Ответ: Фак по Юнити.
Прошу помощи!
Данный скрипт по идеи должен генерировать лабиринт из блоков. Никаких ошибок не выдает, на сцену помещен правильно, изъянов найти не могу. Но при запуске unity просто виснет и не отвечает - в чем проблема? |
Ответ: Фак по Юнити.
PHP код:
|
Ответ: Фак по Юнити.
Как думаете свой static batching в инди версии реально сделать? Теоретически это довольно просто, но может я каких-то подводных камней не вижу.
И пару вопросов по нему есть. Если в сцене есть прозрачные оъекты с которыми надо сортировать объекты, то статический батчинг это как-то учитывает? Есть какие-то ограничения на размеры сбатченного меша? А то как бы, если весь уровень слепится в один меш, то придется весь уровень каждый раз рисовать. |
Ответ: Фак по Юнити.
CombineChildren.cs в стандартных скриптах делает собирает все модели в одну. Для разных материалов создается своя модель. Работает в бесплатной версии.
|
Ответ: Фак по Юнити.
Nuprahtor, батчит он даже больше, чем стандартный статический батчинг. Вот только он и не статические объекты батчит( И если объект с данный материалом всего один, то он все равно создаст его копию(.
Надо будет доделать этот скрипт. Или может уже есть где улучшенная версия? Кстате, почему, если в скрипте нету Start(), то его нельзя отключить в инспекторе? |
Ответ: Фак по Юнити.
enable отключает Update, FixedUpdate и OnGUI (может еще какие). Если их нет в скрипте, то и отключать нечего.
|
Ответ: Фак по Юнити.
Подправил CombineChildren.cs что бы работал только со статическими объектами.
Но вот прикол! На андроиде все gameObject.isStatic равны false. Хотя в редакторе норм. Это так надо? |
Часовой пояс GMT +4, время: 14:22. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot