forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Общие вопросы (http://forum.boolean.name/forumdisplay.php?f=166)
-   -   Вопросы от новичка (http://forum.boolean.name/showthread.php?t=15809)

pax 02.12.2012 00:16

Ответ: Вопросы от новичка
 
ИМХО такое с помощью OnGUI лучше вообще не делать... Если это чисто кнопки...

WISHMASTER35 02.12.2012 00:44

Ответ: Вопросы от новичка
 
А чем делать? Вручную плашками делать лень. Еще больше проблем получишь.
OnGUI у меня, кстати, один на все элементы. Иерархически посылается сообщение Draw всем элементам.

pax 02.12.2012 01:39

Ответ: Вопросы от новичка
 
Ну если ты делаешь только для PC/Mac то сойдет, если под Android/iOS, то я бы подумал о плейнах или о том, чтобы взять готовое GUI.

WISHMASTER35 02.12.2012 01:58

Ответ: Вопросы от новичка
 
готовое GUI это ngui например? Там свои проблемы, и не бесплатен он. Ориентируюсь на смартфоны.

Я пытался делать свой gui плашками, но сильно застопорился на системе отслеживания нажатий.
Во первых я из главного(родительского) объекта иерархически искать на всех объектах мои коллайдеры и пускал в них луч, что конечно не быстро.
Во вторых там были какие-то проблемы с очередностью выполнения Update'ов. К сожалению нельзя перед Update проверить все кнопки и задать им например pressedDown = true, а после Update'ов сбросить все значения.

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

pax 02.12.2012 02:06

Ответ: Вопросы от новичка
 
http://docs.unity3d.com/Documentatio...Execution.html это возможно решение одной из твоих проблем.

Есть вот такое http://nic-starc.ru/dev/GLU/EN/files/GLUDemo.zip

WISHMASTER35 02.12.2012 02:19

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

Кстати, update у дочерних объектов не должен вызываться позже? Если бы это было так, то проблемы наверно не было.
Кажется на сайте Unity писали, что на разных платформах оно вообще по разному вызывается. Стремно полагаться на очередность выполнения скриптов.
Можно корутиной дождаться конца кадра и сделать все проверки. И для следующего кадра уже было бы все готово. Но блин после конца кадра Input уже не работает.

pax 02.12.2012 02:30

Ответ: Вопросы от новичка
 
Мне бы твои проблемы)
Чтобы проверить обрабатывался элемент в текущем кадре можно использовать номер кадра (хранить кадр последней обработки) - http://docs.unity3d.com/Documentatio...rameCount.html
Конец кадра ты знаешь как использовать.
Надо иметь свою очередь - Собери все компоненты свои с нужной очередью в массив или список.

WISHMASTER35 02.12.2012 02:45

Ответ: Вопросы от новичка
 
Через "жопу" можно многие проблемы решить, но выльется это в тормоза, баги или просто не удобно использовать.
Ну узнаю я, что в данном кадре элемент еще не обрабатывался и что дальше? Насильно вызвать обработчик? Вариант конечно, но как говорится через Ж. Хотя, когда делаешь коммерческий проект, то делаешь только бы работало, и то порой фигово работает))
А у тебя какие проблемы?
Unity4 уже используешь? Наверно еще баги есть?

pax 02.12.2012 03:06

Ответ: Вопросы от новичка
 
Четвертую не использую. Кнопки - плейны. Мои проблемы решаются по ходу возникновения.

По поводу лайоута - Unity делает дополнительный проход (вызов) OnGUI каждый кадр для расчета положений. Так что считай твой OnGUI вызывается минимум 2 раза за кадр (Layout, Repaint). Еще он обрабатывает события мыши или клавиатуры - это отдельный вызов OnGUI. Исходя из этого - функция OnGUI вызывается 2+ раза за кадр. Делай выводы).

WISHMASTER35 02.12.2012 03:42

Ответ: Вопросы от новичка
 
Ну из-за того, что OnGUI вызывается два раза он не делает два раза одно и тоже. Отсутствие батчинга в gui больше тормозит.

RegIon 02.12.2012 11:18

Ответ: Вопросы от новичка
 
запарил, то ему одно не нравится, то другое. Берешь Opengl и пишешь все руками, кстати класс GL и Graphics тебе в помощь
http://docs.unity3d.com/Documentatio...erence/GL.html

WISHMASTER35 02.12.2012 14:13

Ответ: Вопросы от новичка
 
И это мне не нравится

Okay 03.12.2012 22:43

Ответ: Вопросы от новичка
 
Код:

NullReferenceException
ThirdPersonController.Update () (at Assets/Standard Assets/Character Controllers/Sources/Scripts/ThirdPersonController.js:325)

вот такие вот дела при нажатии пробела.

pax 03.12.2012 23:06

Ответ: Вопросы от новичка
 
ну так ищи где ошибка, щелкни по ней два раза в консоли, а там по ситуации.

Okay 03.12.2012 23:39

Ответ: Вопросы от новичка
 
Код:

_animation[jumpPoseAnimation.name].speed = jumpAnimationSpeed;


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

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