![]() |
Ответ: Вопросы от новичка
Проверь, в каком порядке вызываются. Может ты сохраняешь настройки еще не загрузив их.
|
Ответ: Вопросы от новичка
Цитата:
![]() Цитата:
Гребаный делегат, почему он вызывается при старте? А, хотя понятно почему. ![]() Исправил, поставив загрузку настрое до присвоения события. |
Ответ: Вопросы от новичка
Можно как-то получить все объекты на сцене, включая выключенные из CustomEditor ? По идее для редактора они должны быть равнозначными и как-то можно получить, но не нашел в справке!!
|
Ответ: Вопросы от новичка
Локализация игры.
Подскажите какой-нибудь способ - как подменять картинки согласно текущей локали. С текстами я придумал простой способ, а с картинками пока нет. Просто вытаскиванием из бандла/ресурсов, разве что. |
Ответ: Вопросы от новичка
Ну по сути картинки будут в том же атласе для экономии дравколов, так что можно просто спрайты запоминать для каждого языка и потом их менять.
|
Ответ: Вопросы от новичка
Товарищи, я нифига не понял... По какой логике работает сжатие текстур в юнити? В гугле выдается куча статей и обсуждений по теме того как оптимизировать размер билда, но там обычно уже оптимизации на тему того как уменьшить размер текстуры, не сильно потеряв в качестве. Но блин, как получается так что когда все ассеты в png весят 20мб, билд под Android - 30мб, но при этом билд под винду - 200мб, а под webgl - вообще все 300? При том что для всех текстур стоит сжатие по умолчанию - Compressed.
С webgl вот что непонятно: в папке билда появляются 2 папки - Compressed и Release. И во всех туториалах написано, что сервер, увидев .htaccess файл, будет отправлять браузеру только Compressed. Тогда зачем вообще нужна папка с несжатыми ассетами, зачем ее заливать на сервер, и почему без нее игра не запускается? Например, хочу залить на itch.io, все 300мб в zip сжались до 30, но вот игра не запускается - сайт жалуется на слишком большой файл. |
Ответ: Вопросы от новичка
Обновись уже на Unity 5.3, там в webgl только сжатый билд. Вообще с WebGL надо разные версии Unity пробовать, 5.3.1 крашится у нас к примеру. Я бы на твоем месте взял последний патч релиз отсюда: http://unity3d.com/unity/qa/patch-releases
|
Ответ: Вопросы от новичка
Ещё в юнити есть штука Sprite Packer в меню Window. По дефолту выключена. Если твои картинки в отдельных файлах, то полезно включать пакер.
|
Ответ: Вопросы от новичка
Его лучше включить после того, как добавил-изменил ресурсы, а то как расчет освещения - будет жрать ресурсы, если без зпрядки на ноуте сидишь - слеиает заряд моментально, так как CPU на 100% крутится.
Я сделал кастом инспектор, который составляет соответсвие локали с объектами с тегом multilang. Он загоняет их в json. Текст выглядит как %marker - по нему выбирается из json пака слов, а спрайт/текстура как %tex_marker, он уже выбирается из префабов (лучше из ресов наверное ) с именем marker. На объектах где языкозависимый ресурс - скрипт, где он подписан на обновление контроллера, через который происходиь изменение ланга. Т.е меняешь индекс в контроллере - он рассылает эвент о смене языка, после которого объект запрашивает у него текст/картинку на которкэую сменить по %marker , и если он есть - возвращает новый. Так, если частичный перевод нет проблем с отсутсвием текста вообще, если в лангпаке его нет -стоит прошлый, в котором есть ресурс. |
Ответ: Вопросы от новичка
RegIon, я примерно так же делать буду.
Вопрос по файлу .gitignore. Я надавно прочитал, что в папке Library хранится важная инфа, meta-данные о связях объектов. Пришлось включить эту папку в гит (кроме кэша шейдеров), до этого была выключена, т.к. я использовал "рекомендуемый" .gitignore, взятый на стэковерфлоу. Но в папке Library столько шлака, файлы то создаются, то удаляются. Кто шарит, подскажите - что делать с этой папкой. |
Ответ: Вопросы от новичка
Library в репозитории быть не должна по идее. Единственный "минус" от её отсутствия в репе - при клонировании репы в новое место юнити придётся переимпортировать ассеты в свои кэши. Один раз. Мета-данные лежат в файлах .meta.
Наш .gitignore: PHP код:
Цитата:
|
Ответ: Вопросы от новичка
Спасибо. Щас снова читал про эту папку и увидел
《As a user, you should never have to alter the Library folder manually and attempting to do so may affect the functioning of the project in the Unity editor. However, it is always safe to delete the Library folder (while the project is not open in Unity) as all its data is generated from what is stored in the Assets and ProjectSettings folders.》 Значит, моя ошибка была в том, что я закачал из репы файлы в момент, когда редактор был открыт. В итоге похерились некоторые назначенные паблик переменные. И как раз я наткнулся на инфу что library полезна. Вот и добавил её. Но там реально шлак с точки зрения пригодности для репозитория. Теперь ясно стало. |
Ответ: Вопросы от новичка
Как *епть* в Unity получить угол по оси X в диапазоне 0 - 360 ???
Я устал и не могу это понять... эти углы эйлера зло. Тем более в юнити. ТО у нее угол дофига, то ограничен 180 градусов. Нужно узнать какая цифра барабана игрового автомата выпала. автомат 6*ти значный, на 3 барабана. |
Ответ: Вопросы от новичка
Обычно ты можешь просто запомнить угол и его менять в отдельной флоат переменной, а потом применять вращение к барабану (transfrom.eulerAngles = new Vector3(angle, 0,0) или transform.rotation = Quaternion.Euler(angle, 0,0)). Это самый простой и верный способ.
Ну а в целом я бы на твоем месте считал бы угол между осью, перпендикулярной к оси барабана (Например Vector3.up, если ось барабана это Vector3.right) и такой же осью на самом барабане (например transform.up) с помощью Vector3.Angle. Это будет угол 0..180. Знак угла можно определить через векторное произведение up векторов. Далее можно так же получить угол между векторами Vector3.right и полученным с помощью векторного произведения вектором, если угол < 90 градусов (вектора смотрят примерно в одну сторону), то это один знак, если больше, то другой (вектора смотрят в разные стороны). Потом с полученным знаком угол будет -180..180 и его можешь использовать. Так можно решить задачу при произвольной ориентации барабана, если знать направления осей. UPD: Описал чуть более понятно. И к сведению - Unity не работает с углами Эйлера, вращение в Unity хранится в кватернионе и по требованию (transform.eulerAngles) кватернион преобразуется в углы Эйлера. Поэтому они часто не имеют значения 180-360 и т.д а имеют значения в диапазоне -90..90 и подобные, но в целом могут быть разные, т.к. конвертация кватерниона в углы Эйлера не может дать гарантии преобразования в угол например 720 (два оборота). |
Ответ: Вопросы от новичка
Доброго времени суток.
Собственно вот и я пришел на ваш форум поскольку начал осваивать Unity. За тупые вопросы сильно не пинайте, поскольку изучаю Unity всего месяц, притом месяц же изучаю и C#(более того не программер, в молодости учил только C++ и то дальше простеньких программ не пошло), поэтому вопросы могут быть весьма тупыми. И то и другое изучаю на боевую, т.е. пишу простенькую игрушку. Итак собственно вводные: Есть объект игрока, есть объект врага и есть объект растения. Урон наноситься игроком врагу или растению и врагом всем остальным Урон наноситься непосредственным контактом. Если рассматривать коллизию 1:1 то проблем написать такой код у меня нет, есть проблема с написанием кода 1:многим. Моя цель выбрать из всех объектов с которыми я столкнулся один, с минимальным значением одной из переменных экземпляра объекта, а для этого мне нужно получить количество объектов с которым столкнулся мой игрок. Вот кусок кода: Код:
void OnCollisionEnter2D(Collision2D coll) 1. Мне собственно нужно получить количество объектов с которыми столкнулся объект игрока. Что почитать? Офф. справку читал, но если честно мало, что понял в данном конкретном вопросе. 2.OnCollisionExit2D срабатывает при любом выходе из коллизии даже в случае множественных коллизий(т.е. если из нескольких действующих коллизий одна прервалась)? Готовых решений не ищу, скорей нужен совет, что почитать или как лучше реализовать в плане логики алгоритм получения количества коллизий, если выбранный мной простой путь не работает или в корне не верен. Заранее спасибо! |
Часовой пояс GMT +4, время: 17:55. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot