![]() |
Ответ: Вопросы от новичка
Lestar, по ширине или длине экрана выравнивать? На планшетах не будет очень большими элементы? тут желательно плотность пикселей еще знать.
|
Ответ: Вопросы от новичка
если использовать ортогональную камеру и плейны, то высота ортогональной камеры выстанавливается в половину высоты экрана, если экран уменьшается, то плены остаются в том же масштабе относительно размеров экрана. Единственное можно скорректировать горизонтальную позицию немного. Интерфейс такой можно рендерить отдельной камерой.
|
Ответ: Вопросы от новичка
pax, т.е. рисовать не через GUI, а в 3д? Тогда еще сложнее будет т.к. все будет растягиваться в зависимости от соотношения сторон. Ну ладно как нибудь буду подстраивать размеры GUITexture.
Кстати, нет скрипта что-то типа GUITexture, только чтобы отслеживал нажатие мышкой\тачем на текстуру как GUI.Button? А то из-за такой мелочи свой скрипт создавать не очень хочется) |
Ответ: Вопросы от новичка
Не будет ничего нигде растягиваться если не трогать камеру. Через Screen позиционировать элементы, а не скейлить их. Отслеживаем нажатие через OnMouseDown + вешаем на камеру(я так понял ты добиваешься, чтобы на девайсах работало)
PHP код:
|
Ответ: Вопросы от новичка
Аа, ну да, в ортогональной камере вроде не должно растягивается. Но все же для 2д интерфейса я бы все же использовал бы GUI, а не парился с плейнами и вторыми камерами.
Отслеживать нажатие 2д элементов через Raycast это уже слишком. Я хочу, что бы на девайсах с разными размерами экранов нормально смотрелся интерфейс. |
Ответ: Вопросы от новичка
GUI все одно лучше рисовать во второй камере(так собственно все и делают), тогда получишь полный контроль над ним, независимо от поведения первой камеры. Вот использовать для девайсов родную систему GUI это да, жопа, припарки от нее получишь еще те.
|
Ответ: Вопросы от новичка
А конкретнее какой полный контроль? Мне не так и много надо.
И какие припарки от GUI можно получить? Вот, кстати, еще одни вопрос по адаптации под все размеры. Как сделать, что бы размер шрифта был нормального размера на всех экранах? |
Ответ: Вопросы от новичка
Твой гуй не будет никак зависеть от того, что ты делаешь с главной камерой и в случае с плашками проще будет работать, так как будет возможность вывести 1 пиксель=1 юнит. Стандартный ГУЙ даже если твой код очень чист периодически вызывает уборщик, который в свою очередь дает лишнюю нагрузку. Стандартный ГУЙ дает +1 ДК на каждую выведенную кнопку, текстуру. Для шрифтов используй GUIStyle.
|
Ответ: Вопросы от новичка
Не знаю, что надо сделать с камерой, что бы испортить GUI.
Вообщем я так понимаю стандартный GUI медленный, вызывает сборщик мусора, и лучше 2д рисовать плейном и в отдельной ортогональной камерой. Мне бы пока как по легче, нет особого желания сильно возится с GUI, тем более в самом начале проекта. |
Ответ: Вопросы от новичка
Цитата:
Такое чувство, что я кого то уговариваю. Хоть на голове стойте, но не жалуйтесь потом, что на девайсе "шото тупит игра, движок гавно". |
Ответ: Вопросы от новичка
У меня GUI не портился. Просто например в GUITexture Pixel Inset при разных разрешениях всегда одинаковые. В принципе это можно выравнять.
Да и если плейнами делать GUI в ортогональной камере, то выравниваться они будут только по высоте. По ширине все равно надо будет корректировать, если будет другое соотношение сторон. А если свой GUI сделать, то как текст рисовать? |
Ответ: Вопросы от новичка
Есть как Screen.width, так и Screen.height .Для букв писать дополнительно тузлу. Генерить плайник, на него накладывать шрифт.
|
Ответ: Вопросы от новичка
Если я в коде генерирую меш, то куда его можно сохранить, что бы повторно не создавать его? Можно конечно в статическую ссылку, но в unity вроде что-то для этого есть.
Кто-нибудь знает как работает проектор? На сколько он тормазит? МИ можно ли проецируемую им картинку немного отодвинуть от плоскости на которую проецируется? И можно ли его яркость увеличить, а то совсем ели видно. |
Ответ: Вопросы от новичка
1. Если генерируешь в редакторе, то сохраняй в ассеты. Если в рантайме, то статическая переменная подойдет.
2. Не пробовал, не могу подсказать. |
Ответ: Вопросы от новичка
Со статической переменной он вообще никогда не удалиться.
Еще сейчас предупреждение начало лезть Cleaning up leaked objects in scene since no game object, component or manager is referencing them Mesh has been leaked 1 times. Пишет, что на меш ссылок уже нет, а он существует. Хз где и как его удалять( |
Ответ: Вопросы от новичка
Если создаешь в редакторе, то естественно ссылок на него не останется, если он не на объекте, а в статической переменной. Если потом хочешь его переиспользовать - сохрани в ассеты.
|
Ответ: Вопросы от новичка
Черт! Как эти триггеры работают?
Повесил на игрока большой сферический триггер. Сделал, что бы в OnTriggerEnter этот триггер включал у врага полосу жизней, а в OnTriggerExit выключал. Но включается только когда я уже в впритык подхожу, а выключаться он вообще не думает. Пробовал и с OnTriggerStay, но было не лучше. |
Ответ: Вопросы от новичка
http://unity3d.com/support/documenta...xCollider.html смотреть коллизионную матрицу. Я так понимаю ригидбоди на одном из обьектов есть.
|
Ответ: Вопросы от новичка
Тригер работает только, если на двух объектах Rigidbody?
У меня на игроке, на котором триггер, был CharacterMotor, а враги пока были просто сферы с Rigidbody. OnTriggerEnter иногда срабатывал только, если впритык подойти, а иногда и из далека. Снял Rigidbody и вообще все перестало работать( Можно, кстати, сделать, что бы триггер проверялся только с объектами определенного слоя или тега? |
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Да я для оптимизации хотел это сделать так что проверять с чем уже столкнулись не подходит. А вот как настраивать столкновение между слоями выглядит интересно, хотя пока не знаю как это делать.
Так все же, если игрок под управлением CharacterController и не имеет Rigidbody, то как определить какие игроки рядом с ним? Не перебирать же все GameObject. А триггеры вообще как-то тупо устроены. |
Ответ: Вопросы от новичка
Настройки столкновений между слоями.
http://unity3d.com/support/documenta...csManager.html Для того, чтобы найти вокруг объекты можно использовать http://unity3d.com/support/documenta...lapSphere.html |
Ответ: Вопросы от новичка
OverlapSphere - классная функция. Жаль только kAllLayers надо самому вычислять т.к. в LayerMask это поленились реализовать( Да и не нравится мне, что нет класса в котором хранились бы имена всех тегов и слоев, а то вручную писать константные величины - опасное дело.
Вот такая демка получается http://dl.dropbox.com/u/55489242/My%...WebPlayer.html На SE x10 fps 25-30. Теперь буду делать автоприцеп. т.е. буду из этих ближних врагов выбирать того, на который больше всего смотрит игрок и на него поворачиваться при стрельбе. Должно получится удобное управление) |
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Цитата:
Тут как минимум не отловишь событие изменения слоев или тегов. В Android'е R класс так сделан. В нем содержатся id всех ресурсов. |
Ответ: Вопросы от новичка
Ну я вообще имел ввиду написать вручную, как добавляешь тег, так в свой класс добавляешь константы. Но раз это сложно... Для тегов написать нельзя, потому что тегов может быть больше, чем записано в редакторе, вдруг ты в рантайме теги создаешь? Для слоев можно утилитку написать с помощью вот этого:
http://unity3d.com/support/documenta...yerToName.html |
Ответ: Вопросы от новичка
Не представляю зачем в рантайме создавать теги, если только не для подобных случаях с константами.
А где настройки тегов, слоев и др храниться? А то скачал пример Third Person MMO Controller, а там надо было вручную добавлять теги. |
Ответ: Вопросы от новичка
Выбираешь из выпадающего списка слоев пункт Edit Layers и первый раскрывающийся список - это теги.
|
Ответ: Вопросы от новичка
Я имел ввиду в каком файле.
|
Ответ: Вопросы от новичка
Никогда не задавался этим вопросом, вероятно в TagManager.asset
|
Ответ: Вопросы от новичка
Я немного перепутал) В Third Person MMO Controller надо было вручную настраивать Input. С эти немного провозился) Но уже вижу, что все настройки хранятся в папке Library. А эта папка не запаковывается в package(
|
Ответ: Вопросы от новичка
Как можно OnGUI заставить выполняться в редакторе? [ExecuteInEditMode] не помогает, специальных событий для этого вроде тоже нету.
|
Ответ: Вопросы от новичка
Почему не помогает? Объект в сцене, чтобы работало? Ты смотришь в окне Game?
|
Ответ: Вопросы от новичка
Я в окне сцены смотрю. Мне интересно как GUITexture там рисуется.
|
Ответ: Вопросы от новичка
http://unity3d.com/support/documenta....BeginGUI.html повторю ссылку из этой темы: http://forum.boolean.name/showthread.php?t=14066
|
Ответ: Вопросы от новичка
А вот если использовать методы Slerp и Lerp, то скорость интерполяции вектора\кватерниона будет же разной в начале и конце. И до цели результат так и не дойдет.
Есть методы, что бы интерполировать с одинаковой скоростью? Для вектора такой метод еще не сложно написать, а с кватернионом как это сделать хз. |
Ответ: Вопросы от новичка
Ты вообще о чем? Оба метода это линейная интерполяция, там не может быть разной скорости по определению.
|
Ответ: Вопросы от новичка
pax, да, но получается иначе. Вот пример написал.
Код:
private static float lerp(float from, float to, float t) { 10.0 18.0 24.4 29.52 33.616 36.8928 39.51424 41.611393 43.289116 44.631294 45.705036 46.56403 47.251225 47.80098 48.240784 |
Ответ: Вопросы от новичка
А вот другой вариант.
Код:
private static float test(float from, float to, float max) { 5.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 45.0 50.0 50.0 50.0 50.0 50.0 50.0 Для вектора такое легко сделать, а вот если бы для кватерниона, то было бы класс. |
Ответ: Вопросы от новичка
Хоть пользоваться интерполяцией научись сначала - все дело в неизменном начальном и конечном значении и изменении параметра, а у тебя исходные данные всегда разные. ты все время двигаешь по одному и тому же параметру но используешь разные значения, которые на каждом шаге ближе друг к другу.
PHP код:
|
Ответ: Вопросы от новичка
Я же об этой проблеме и писал. В одном цикле оно легко правильно пользоваться интерполяцией.
А если мне надо сгладить поворот персонажа? Тогда надо интерполировать в нескольких кадрах и хранить начальный и конечный кватернион наверно будет глупо. Да еще и кадры от начального до конечного кватерниона считать. Согласитесь, будет порядком удобнее просто задавать максимальное значение дельты при интерполяции как я писал во втором примере. Конечно на крайний случай можно использовать углы эйлера, тем более вращение происходит вокруг одной оси. Но все же почему нету таких функций как я хотел(. |
Ответ: Вопросы от новичка
|
Ответ: Вопросы от новичка
Цитата:
http://unity3d.com/support/documenta...veTowards.html Не охото совсем учиться программировать? |
Ответ: Вопросы от новичка
|
Ответ: Вопросы от новичка
Обнаружил вот какой косяк:
Добавляю свой шрифт в Unity, перетащив из папки Windows ttf-файл. У меня две сцены, на каждой по GUIText, у которого выставлен мой шрифт. Сначала запускается первая сцена (лого), потом вторая (игра). Во второй сцене - надписи этим шрифтом более не пишутся, причем только в собранном exe (в Editor все показывается!). У первой сцены ставлю Arial, у второй мой - все ок. У первой мой, у второй Arial - все ок. Сильное подозрение, что шрифт просто выгружается или это какая то бага. Пробовал в первой сцене вызывать DontDestroyOnLoad и передавать ему, как сам компонент GUIText, так и GUIText.font. Вбестолку :( Какие будут идеи? И вот еще: Что-то гавкнулось в сцене. Теперь добавляя к Dummy объекту компонент GUITexture и устанавливая черную текстурку, получаю текстуру на весь экран, хотя размеры и прочее по нулям. Аналогично с GUIText - новый компонент добавляется с пустым значением font и его прописывание ничего не дает, текст не отображается. Если добавлять не как компоненты, а как объекты, то некоторое время все ок, а потом отваливается. Как такое лечить то? Unity 3.4.2 Pro cracked. |
Шрифт загружается кодом, или назначается на поле гуитекста?
По поводу как лечить не знаю, не пользуюсь данными компонентами. |
Ответ: Вопросы от новичка
pax, через назначение в редакторе. Для шрифтов в Unity API функций почти нет, только через Resources.Load (пробовал повторно подгружать, но не получилось; шрифт клал в папку Resources разумеется).
|
Ответ: Вопросы от новичка
Странные у тебя глюки, попробуй Unity переустановить. Поставь последнюю 3.4.2f3 если стоит не она.
|
Ответ: Вопросы от новичка
pax, пересоздал сцену - действительно те же глюки. Сейчас буду переустанавливать :(
P.S. Версия последняя, доступная с сайта - 3.4.2. |
Ответ: Вопросы от новичка
3.4.2f3? или f2
|
Ответ: Вопросы от новичка
А, что там по части версии 3.5?? :) Кто нибудь уже пробовал с ней работать?
|
Ответ: Вопросы от новичка
Пробовали, она пока бета.
http://chess-of-honour.shgames.ru/ написали для конкурса, ждем результатов. |
Ответ: Вопросы от новичка
С GUITexture и GUIText разобрался. Оказалось, что не стоит навешивать обе компоненты на один объект, поскольку каждый из компонент требует свой transform.
С шрифтом пока не ясно. |
Ответ: Вопросы от новичка
Вложений: 1
Снова я в затуплении) Не пойму такое количество драв калов это нормально?
Включен режим эмуляции Opengl es 1.x т.е. на крутое освещение дравкалы не будут создаваться. В камере видно всего пару одинаковых деревьев и врагов, а дравкалов до 50 можит быть. До запуска сцены показывает 3 батча, а после запуска 0, хотя деревья должны батчится. occlusion culling считал, но ничего не изменилось. Если отключить терейн, то дравкалы падают до 17(в принципе норм для оставшихся объектов). Террейн так и должен вызывать столько дравкаллов(получается аж 28 ) или у меня где-то руки кривые? Кстате, скайбокс вызывает 6 дравкалов. Не мало. |
Ответ: Вопросы от новичка
Посмотри сколько материалов висит на солдате. 39к трисов для девайса это очень много. У террайна увеличить pixel error. И деревья, расставленные через terrain engine не должны батчится.
|
Ответ: Вопросы от новичка
Не используй террейн для мобильников. И обрати внимание что у тебя 23 текстуры используется. Еще GUI. Для скайбокса это нормальное если ты его сделал из шести текстур, а не кубмэпой.
|
Ответ: Вопросы от новичка
Я написал код. Вот кусочек. Тут есть ошибка. Думаю Вы её заметили. Мне нужно именно вот такой способ, если такой нельзя, то хотя бы альтернативный метод.
Код:
function ShootDouble () { |
Ответ: Вопросы от новичка
Засовывать в switch
PHP код:
|
Ответ: Вопросы от новичка
Он работает отлично. Не работает вот этот момент:
PHP код:
|
Ответ: Вопросы от новичка
Цитата:
И еще одно: когда говоришь, что ругается, то не делай всех телепатами, напиши текст ошибки. |
Ответ: Вопросы от новичка
Assets/scripts/player/machinegun.js(105,25): BCE0070: Definition of 'machinegun.ShootDouble' depends on 'machinegun.ShootDouble' whose type could not be resolved because of a cycle. Explicitly declare the type of either one to break the cycle.
|
Ответ: Вопросы от новичка
попробуй
PHP код:
|
Ответ: Вопросы от новичка
PHP код:
|
Ответ: Вопросы от новичка
pax, ты же в своем кубизме в скрипте объединял блоки в большие меши.
А если все эти блоки будят статические, то статический батчинг сможет так же оптимизировать? Вот еще я думаю можно ли эти кубы генерировать на лету в шейдере? Есть же какой-то геометрический шейдер, который может создавать геометрию. Что-то меня тоже заинтересовала идея тайлового уровня. Только маленького как в старых играх) |
Часовой пояс GMT +4, время: 17:47. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot