![]() |
Ответ: Вопросы от новичка
Ну или хотя бы дайте намек как это все синхронизировать? Есть 3 вида анимации. Бег вперед, влево, вправо. Если по скорости только то не выйдет. Нажатие клавиши направления отправлять? Или только в зависимости от значения vertical и horizontal (плюс или минус).
|
Ответ: Вопросы от новичка
Цитата:
PHP код:
|
Ответ: Вопросы от новичка
Все бы хорошо, но z тест все равно не работает(: А у тебя работало?
pie, а их надо синхронизировать? Если их везде вовремя включать, то должно быть нормально. |
Ответ: Вопросы от новичка
Цитата:
PHP код:
|
Ответ: Вопросы от новичка
Как узнать изменились ли координаты x и z. Чтобы поставить это в условие. Типо этого:
PHP код:
|
Ответ: Вопросы от новичка
pax, спасибо, но у меня инди.
А нельзя сделать, чтобы когда рисуешь например box'ы, то они не вылазили за границы? А то, если текстура у box'а большая, то box не уменьшается, хотя при ExpandWidth(true) кажется растягивается. pie, сравнивай с предыдущими координатами. |
Ответ: Вопросы от новичка
Вложений: 1
Когда-то пытался написать окошко с выбором текстуры как в TerrainEditor.
Теперь смог написать)) Кнопки хорошо масштабируется и автоматически переносится на новую строку. Код:
private static int SelectionSpriteGrid(int selected, XAtlas atlas, int approxSize) { |
Ответ: Вопросы от новичка
Цитата:
PS: Кстати GL и Graphics должны так же поддерживаться только в Pro. |
Ответ: Вопросы от новичка
Если я выложу и остальной код, то для начинающего будет еще сложнее. Впрочем начинающие не лезут в редактор.
Там кстате, странный баг есть. DrawRect в разных местах рисуется более светлым или темным. Не пойму в чем дело. Использую GL и Graphics в инди версии. Возможно не все функции присутствуют. |
Ответ: Вопросы от новичка
А свои классы нельзя наследовать от Object?
Попробовал так сделать, но в таком классе поля не сохраняются. Если проверять ссылку на такой класс на null, то результат всегда положителен т.е. ссылка равна null, хотя это не так. Собственно хотел, чтобы в одном классе хранились списки спрайтов, а в других классах хранились ссылки на спрайты, именно на те объекты, а не их копии. Думал, если наследовать от Object, то будет так, но оно еще хуже) |
Ответ: Вопросы от новичка
ScriptableObject с сохранением в ассеты, либо делай свою сериализацию с поддержкой ссылок. Мы кстати тестировали сцену с большим количеством перекрестных ссылок - делали карту двухмерную, в каждом тайле добавляли ссылку на соседние тайлы (хотели сделать граф для поиска путей). так вот сцена сохранялась, а при открытии Unity падало. Поддержка сказала, что это известный баг, но второстепенный, поэтому не знаю, исправили ли его...
|
Ответ: Вопросы от новичка
Префабы плодить не хочу. Сейчас у меня у каждого спрайта свой id и я сравниваю эти id, а не ссылки, но это довольно не удобно(
А что за сериализацию с поддержкой ссылок? Класс я помечаю аннотацией [System.Serializable], но это не помогает. |
Ответ: Вопросы от новичка
Нет, я имею ввиду сохраняй все в свой формат с поддержкой ссылок (сам пиши механизм нахождения ссылок). Другого варианта нет. Вообще на твоем бы месте я оставил все как есть, раз работает.
Можно сделать каждый спрайт MonoBehaviour и вешать эти компоненты на какой-то дочерний объект - держатель информации. Тогда сможешь сохранить на них ссылки. |
Ответ: Вопросы от новичка
Цитата:
Цитата:
А если у меня не MonoBehaviour, а ScriptableObject, то можно добавлять компоненты на префаб? gameObject.AddComponent тут нету(: |
Ответ: Вопросы от новичка
Префаб это объект сцены, а не объект данных как ScriptableObject. Можно в один ассет добавлять много других - сделать сборный ассет.
|
Ответ: Вопросы от новичка
зависит ли скорость выполнения функций Invoke и InvokeRepeating от фпс?Если да,то мне их надо перемножать на Time.deltaTime?
|
Ответ: Вопросы от новичка
Может и надо было оставить как работало)) Теперь вообще куча ошибок каких-то))
Добавляю спрайт на префаб, а вместо моего спрайта написано type mismatch. Что это значит? |
Цитата:
Цитата:
|
Ответ: Вопросы от новичка
Не знаю где там были разные типы данных, но было из-за того, что атлас и спрайт в одном месте.
Теперь бы еще разобраться с ArgumentException: Getting control 4's position in a group with only 4 controls when doing mouseDown Aborting. |
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Ошибка ArgumentException: Getting control 4's position in a group with only 4 controls when doing mouseDown
Aborting была из-за того, что я начинал рисовать Button в MouseDown) Всегда думал, что если в шейдере написать "Queue" = "Background" то рисоваться будет от родителя к детям по иерархии. Но сейчас почему-то в одной сцене в редакторе это перестало работать. Других способов рисовать в таком порядке нету? |
Ответ: Вопросы от новичка
"Queue" = "Background" - это слой, в котором все рисуется в произвольном порядке. Слой можно менять прибавлением цифры к названию слоя, например "Queue" = "Background+1". Чтобы рисовать по порядку - надо сделать один меш, в котором части (сабмеши) расположены по порядку. Либо если используется один и тот же материал, то индексы треугольников шли в нужном порядке.
Либо если тебя устроит скопировать материал и задать вручную порядок: http://unity3d.com/support/documenta...nderQueue.html Но не забывать что между стандартными слоями Unity разница в 1000: Background: 1000, Geometry: 2000, Transparent: 3000 и Overlay: 4000 |
Ответ: Вопросы от новичка
Функция networkView.RPC принимает:
(string name, RPCMode mode, params object[] args) Я отправляю: (string , RPCMode ,string[]) Пример: Цитата:
Цитата:
Sending RPC failed because 'SendAllNames' parameter 0 didn't match the RPC declaration. Expected 'System.String[]' but got 'System.String' |
Ответ: Вопросы от новичка
не уверен что будет работать, но может объявить как
void SendAllNames(params string[] names) Но все равно сомнительно, что функция может принимать массивы Цитата:
|
Ответ: Вопросы от новичка
Спасибо, попробую (params я делал, не помогло)
|
Ответ: Вопросы от новичка
pax, спасибо, но у меня разные меши и разные материалы и хотел, чтобы динамический батчинг работал. Но видно мне это не поможет.
Свой GUI пробую делать) Видно лучше будет задать каждому мешу свою Z координату и включить Z буфер. В NGUI все в один меше, но я так не хочу т.к. придется и пересчитывать каждый кадр и памяти на это будет уходить. |
Ответ: Вопросы от новичка
С Z-буфером в GUI будет отстой, тебе придется писать шейдеры с альфатестом, что даст плохой результат на прозрачности (краях). Так же Z-буфер не спасет при прозрачном GUI. Так что ИМХО не стоит. Z- не сортирует меши при отрисовке.
|
Ответ: Вопросы от новичка
Я когда-то писал шейдер, делал RenderType=Transparent чтобы меши сортировались по расстоянию до камеры и кажется полностью отключал работу с Z-буфером. Вообщем-то отлично работало, но правильно сортировалось только для 2д.
Интересно было бы и для 3д сделать, но там уже либо cutout либо черт его знает. А стандартным GUI красивый шрифт не сделаешь? Как здесь http://static.starapk.com/images/pi2010120904334933.jpg например. Кстати, заметил, что если Time.scaleTime сделать равным 0, то Time.deltaTime будет равен NAN и отсюда куча ошибок. А видь не сложно было сделать, чтобы вместо Nan deltaTime возвращала 0. |
Ответ: Вопросы от новичка
1. Шрифт сделаешь, если кастомный шрифт делать. Правда не уверен о цвете.
2. Обычно timeScale ставят 0.00001 или подобный. |
Ответ: Вопросы от новичка
Вот и я не знаю можно ли векторные шрифты так раскрашивать. Но скорее всего нет.
А как сделать, чтобы через GUILayout нарисовать элемент в самом низу или справа т.е. направление поменять? А то если разные скрипты рисуют в GUILayout то накладываются друг на друга( Надо по углам размещать элементы) |
Ответ: Вопросы от новичка
1) гугли по ключевым словам Unity FontTool CustomFont
2) GUILayout.FlexibleSpace(); |
Ответ: Вопросы от новичка
Да я пробовал FlexibleSpace, но что-то он не работает.
Пишу так Код:
GUILayout.BeginHorizontal(); |
Ответ: Вопросы от новичка
Твой код:
PHP код:
![]() |
Ответ: Вопросы от новичка
Это ты в инспекторе нарисовал? Я в игре рисую.
|
Ответ: Вопросы от новичка
В игре тоже самое.
1. Прочитай мой урок - особенно раздел про меню. Змейка Scaven'а 2. Вот тебе пример: PHP код:
![]() PHP код:
![]() PHP код:
![]() |
Ответ: Вопросы от новичка
Помню как-то давно скачивал данный двиг меня он заинтересовал, делал разные сценки из деревьев, воды и т.д. Потом забросил это дело, потому что толку, что есть двиг, если кроме паскаля да vb ничего не знаешь. Вспомнил про данный двиг, да захотелось чего-нибудь создать. Хотел бы спросить, какой язык программирования лучше выучить чтобы использовать данный двиг в своих целях, какой быстрее выучить, у какого больше возможностей и т.д. И назовите какой-нибудь хоть один серьезный проект на этом двиге(под серьезным я подразумеваю, что он разрабатывался не одним человек, в нем идеальная графика, мощный ИЕ, хорошая производительность и т.д.) Стоит ли вообще учить язык программирования только чтобы начать что-то делать на этом движке?
|
Ответ: Вопросы от новичка
AntiRock, изучай шарп. Серьезный проект - nfs world.
|
Ответ: Вопросы от новичка
Цитата:
Цитата:
Цитата:
Игры AAA-класса для PC, PS3, XBox 360 на нем практически не делают. Он не конкурент CryEngine'у и UDK. По крайней мере, пока (ждем Unity3D 4.0 :)). Unity гораздо чаще используется для создания мобильных и небольших игр. В этом плане конкурентов у него практически нет. Цитата:
Если решил изучить Boo (Python), то несколько в меньшей степени, но все-таки также может пригодится знание языка за пределами Unity. Изучать UnityScript (Java) можно, но общего с настоящей Java'ой там только синтаксис. Если потом решишь писать на чистой Java (например, для Андроид - приложений), то могут возникнуть трудности, ибо тут же придется понимать, что такое ООП, классы, наследования, методы и т.д. и т.п. |
Ответ: Вопросы от новичка
Спасибо за развернутый ответ. Порекомендуйте какую-нибудь книжку по JS, ту с которой вы возможно сами начали изучение, или та с которой изучение JS станет интересным занятием, надеюсь я понятно изложил. =)
|
Ответ: Вопросы от новичка
И еще вопрос: в каком плане Unity не конкурент "КрайЭнгин"? Производительность, графика или что-то еще? В юнити вроде очень даже реалистичные сцены получаются, да и шейдеры вроде можно написать под нее, что не хуже crysis2 будет...
|
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Цитата:
В общем, я сторонник Quick Start'ов. Изучать что-то новое лучше, когда быстро пробегаешь по справке, попутно гугля непонятные места. А потом, когда уже освоишься, можно и в дебри уходить, изучая каждую мелочь. Цитата:
Зато у нас свои плюсы есть. Огромнейшим плюсом считаю компиляцию скриптов "на лету", полную кастомизацию интерфейса и здоровенную кросс-платформенность. Цитата:
|
Ответ: Вопросы от новичка
Посоны! Нужна помощь!
Делаю систему ботов. Требования: - Модель состоит из меша и кучи анимированных костей - Бот может пинать всё, что попадается ему под ноги (всякие ящики с коллайдерами + Rigidbody) - Убил бота - он упал по рэгдольному. Стрельнул из шотгана с близкого расстояния - он красиво и по физике отлетел. - Взависимости от того, по какой части тела попал, дается то или иное количество очков. - Бот не может проходить сквозь стены - Два бота не могут входить друг в друга В общем, что делал я: 1) Через стандартный "Ragdoll Wizard" создавал коллайдеры, rigidbody и joint'ы для отдельных частей тела. 2) Для всех rigidbody делаю isKinematic равным true. 3) Стреляю по боту с помощью Physics.Raycast. Взависимости от того, по какому коллайдеру попал, даю то или иное количество очков игрокам и уменьшаю количество жизней у бота. 4) Убил бота - выключаю везде isKinematic и придаю немного силы на ту часть тела, куда был произведен последний выстрел. Всё отлично. 5) Осталось выполнить последние два пункта. Решил делать через CharacterController и метод SimpleMove. Добавляю CharacterController, настраиваю капсулу. Проверяю. Черт! Выстрел (Physics.Raycast) возвращает не часть тела, а саму капсулу. Решил тем, что поместил CharacterController на слой "IgnoreRaycast". Проверяю - теперь всё работает. 6) Использую SimpleMove. Блин! Движение какое-то беспонтовое. Дергается и практически стоит на месте. Оказывается, ему мешают коллайдеры (части тела), которые находятся внутри капсулы CharacterController'а. Отключаю коллайдеры - CharacterController перемещается нормально, но теперь не понятно, по какой части тела попадаешь. И вот, вопрос: что можно с этим сделать? Крайне желательно все действия производить через скрипты, не давая конечному пользователю (настройщику ботов) что-то перед этим химичить и настраивать в различных Manager'ах проекта. |
Ответ: Вопросы от новичка
Ну думается можно отвести один слой на то, что в нем никакая физика друг с другом не будет взаимодействовать (выключить все галочки в матрице коллизий на против этого слоя). Туда перенести колайдеры частей тела, по ним стрелять рейкастом именно по этому слою. А когда рагдол - то переносить все в дефолтный слой...
Толкать предметы можно чем-то вроде PhysicsFPSWalker или RigidbodyFPSWalker |
Ответ: Вопросы от новичка
А можно ли как-нибудь с помощью скриптов создать / изменить / удалить слои? Чтобы пользователь перед этим вручную не отводил "один слой на то, что в нем никакая физика друг с другом не будет взаимодействовать".
|
Ответ: Вопросы от новичка
Cлоев всего 32 и все доступны в рантайме, просто большинство не стандартных не имеют имени (если не задать).
Матрицу коллизий в рантайме можно настраивать с помощью Physics.IgnoreLayerCollision ИМХО найти с помощью LayerMask.LayerToName первый слой без имени и его настроить функцией, приведенной выше. |
Ответ: Вопросы от новичка
Скачал вчера новый юнити и сразу начали вылазить ошибки
Mesh.vertices is too small. The supplied vertex array has less vertices than are referenced by the triangles array. Mesh.uv is out of bounds. The supplied array needs to be the same size as the Mesh.vertices array. Mesh.normals is out of bounds. The supplied array needs to be the same size as the Mesh.vertices array. Хотя если теперь перед генерацией вызвать mesh.Clear(); то нормально все. С чего такие требования теперь? |
Ответ: Вопросы от новичка
Новые оптимизации для динамических мешей, тут написано: http://unity3d.com/unity/whats-new/unity-3.5.3
|
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Цитата:
По поводу моей задачи: пока изучал Physics.IgnoreLayerCollision, наткнулся на более простую Physics.IgnoreCollision. Этого оказалось достаточно! Даже слои не пришлось использовать. Ура! Просто в Start'е написал: PHP код:
|
Ответ: Вопросы от новичка
Как можно сделать красивую не линейную интерполяцию? Т.е. чтобы чем ближе к 0.5 тем быстрее интерполяция.
Сейчас так написал Код:
public static Vector2 SinLerp(Vector2 a, Vector2 b, float frame) { Вот https://dl.dropbox.com/u/55489242/Di...WebPlayer.html чтобы диаманты красиво менялись. |
Ответ: Вопросы от новичка
Цитата:
То, что кристаллы меняются местами по неправильной синусоиде, не заметил. Точнее заметил, но не обратил внимания. Дискомфорта не вызывает. Цитата:
|
Ответ: Вопросы от новичка
cahekp, не, меня бесит, когда скорость в начале интерполяции намного быстрее, чем в конце. Не пойму что я не так написал. Вообще мне кажется есть попроще способы для такой интерполяции. Да и когда диамант резко меняет скорость на противоположную тоже не круто, хотя везде наверна так и есть.
Тут еще вопрос сделать при падении на другой диамант отскок диаманта или сделать, чтобы диамант немного заходил в другой и выскакивал из него. Я кстати, вместо диамантов хочу фрукты сделать) |
Ответ: Вопросы от новичка
Вопрос по поводу частиц. Как сделать так, чтобы когда камера находятся ближе к частицам они не уменьшались?
|
Ответ: Вопросы от новичка
Цитата:
Цитата:
|
Ответ: Вопросы от новичка
Цитата:
У частиц есть такой параметр: "Max Particle Size" (максимальный размер частицы). Находится в "Particle Renderer". По-умолчанию равен 0.25 - 0.5. Просто сделай его побольше. |
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
|
Ответ: Вопросы от новичка
Люди помогите с сетью.
Дело в том что подключение идет в игровом лобби, а сами игроки(теми что управляют) создаются потом. Так вот, у всех подключившихся создаются игроки, но они все принадлежат серверу. (создаются игроки просто Instatiate'ом на которм лежит NetworkView). В общем суть в том что нужно на каждом клиенте установить кем управляешь ты, а кем не ты. |
Ответ: Вопросы от новичка
is.SarCasm, проверяй с помощью NetworkViewID.isMine
|
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
У меня дурацкие вопросы:
1) Если я создал два объекта и хочу управлять одним объектом из скрипта другого - обязательно искать объект методом GameObject.Find()? Можно ли получить доступ к нем напрямую или этот метод не перебирает их? Просто после блица не хотелось бы юзать методы перебора.:-D 2) Все что находится функции Start() удаляется, а в Awake() все просто хранится? 3) MonoBehavior - это как я понял независимая от объектов логика игры (то есть правила). Как ее заюзать на JS? Пока нашел только шарп. |
Ответ: Вопросы от новичка
1. Как скрипты общаются
2. Две функции выполняющиеся в разное время: Awake - при создании объекта, Start - перед первым Update. 3. Скрипты на js автоматом его наследуют (не явно). ЗЫЖ Почитай мои уроки ;) |
Ответ: Вопросы от новичка
Цитата:
Тут же ж в справке усё написано: http://docs.unity3d.com/Documentatio...e_Objects.html Видимо, ты просто не внимательно ее прочитал. Цитата:
Если не вдаваться в подробности, то всё, что в Start, выполняется позже Awake. Для более гибкой инициализации. Вот и всё. Цитата:
Все Javascript'ы наследуются от MonoBehaviour по-умолчанию. |
Часовой пояс GMT +4, время: 04:22. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot