![]() |
Ответ: Вопросы от новичка
Так можно, будет работать, но тогда теряется весь смысл. Я хотел программно создавать груз и удалять когда мне надо.
|
Ответ: Вопросы от новичка
Phyton, а в чём проблема программно удалить чайлда? Он ничем не отличается от других объектов.
gruz = Instantiate(); gruz.setParent(gruzovik); // что-то делаем Destroy(gruz); всё должно работать. даже gruz.setParent(null); можно не делать. |
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Щас проверил: если двигать родителя, то дочерний transform.position тоже меняется. В редакторе не меняется, а если вывести в коде
PHP код:
EDIT: в редакторе мы видим координаты, которые соответствуют transform.localPosition - это смещение относительно родителя. |
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Да имхо ты где-то простой косяк в расчетах сделал.
PHP код:
|
Ответ: Вопросы от новичка
Цитата:
Код:
using UnityEngine; А вот и сам просчет дистанции с машиной и грузом. Код:
float dist = Vector3.Distance (cars[0].position, transform.position); |
Ответ: Вопросы от новичка
Есть вероятность, что при создании кодом и создании в редакторе структуры объектов отличаются? Или возможно скрипт potera_gruza добавляется не тому объекту?
|
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Префаб никак не может быть связан с объектом сцены, только наоборот. При создании экземпляра префаба в сцене надо обязательно ему ссылки на объекты сцены передавать.
|
Ответ: Вопросы от новичка
В Unity 5 Wheel Collider теперь направлен по строго по Y ригида к которому он прикручен???
Что за ересь, теперь никак не развернуть?( у меня танк боком ездить теперь только умеет(у blendera поменяны x и y оси) ) |
Ответ: Вопросы от новичка
Как убрать устаревшие ненужные из списка?
http://puu.sh/kYyiu/566f6f7ae8.png |
Ответ: Вопросы от новичка
Del
|
Ответ: Вопросы от новичка
Подскажите 2 вещи в свете производительности:
1. Если у меня одинаковые текстуры для материалов, но часть мешей требует материала cutout, прочие opaque. Разделять ли их по материалам как они "просят", или всех сажать на 1 cutout и пусть ориентируются по альфа-маске? В свете производительности? 2. Отрезаются ли те объекты, которые вне поля зрения камеры (но в пределах planes) если не используется Occl.cul.? В руководстве как-то туманно для меня это описано. И если не отрезаются и рендерятся все вместе, то можно как-то их отрезать не используя Occl.cul.? |
Ответ: Вопросы от новичка
1. Если для мобильников, то лучше два материала.
2. Если отключен окклюжн кулинг, то рисуются абсолютно все объекты. Отрезать вручную вроде нельзя (если только отключать Renderer'ы ненужных объектов). |
Ответ: Вопросы от новичка
Нет, для ПЦ.
Плохо, что нельзя. Спасибо! |
Ответ: Вопросы от новичка
Лучше не использовать анимацию UI на мобилках ?
Просто простейшее перемещение капец как лагает. |
Ответ: Вопросы от новичка
Пробуй на перемещаемые объекты вешать CanvasGroup.
|
Ответ: Вопросы от новичка
Цитата:
Что бы отключать рейкаст на время перемщения? |
Ответ: Вопросы от новичка
Скорее для того, чтобы не пересчитывать весь UI, ты же не описал что у тебя за лаги. Ну и PixelPerfect выключай до кучи. Он больно много жрет.
|
Ответ: Вопросы от новичка
Цитата:
PixelPerfect всегда был выключен, не знаю почему вырубил, наверное с ним вообще все плохо. |
Ответ: Вопросы от новичка
К сожалению с мобильниками опыта нету, в стимкрафте UI анимирован через Mecanim и окно Animation. У нас еще Unity 4.6.5 без оптимизаций UI, как в Unity 5.2
|
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Код:
Vector3 vec = Camera.main.ScreenToWorldPoint(Input.mousePosition); |
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Цитата:
Занес в Preload assets - Все работает |
Ответ: Вопросы от новичка
Откуда появляются черные линии?
Сурс имейдж - 100x100 Готовая нарезка - 50x50 Вот код Код:
Details = new Texture2D[4]; ![]() |
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
texture.wrapMode = TextureWrapMode.Clamp;
|
Ответ: Вопросы от новичка
Цитата:
Проблема сразу решилась, благодарю :super: |
Ответ: Вопросы от новичка
Есть ли где шейдер, похожий на Toon Outline, только для 2D?
Сроду не писал шейдеры, поэтому написать самому не представляется возможность |
Ответ: Вопросы от новичка
pax, подскажи, пожалуйста такую штуку:
есть GO, двигаю его через Translate z+. В зависимости от поворота GO направление перемещения соотв. меняется. Как мне получить координаты точки идущей впереди от GO, скажем, со смещением +1 (без использования дочернего смещенного GO)? |
Ответ: Вопросы от новичка
Вариант 1:
PHP код:
PHP код:
PHP код:
|
Ответ: Вопросы от новичка
Вариант 4:
PHP код:
Подумал, и дописал: Может пригодиться, когда трансформа нет, только кватернион. |
Ответ: Вопросы от новичка
Спасибо!
|
Ответ: Вопросы от новичка
Блин, Unity обновили, но косяк со студией так и остался - открывается очень долго и порой по несколько раз.
А в монодевелоп совсем сломали copypast |
Ответ: Вопросы от новичка
Не могу понять почему не сохраняется quality в settings_quality, showFPS главное сохраняется, а он нет.
События updateSettings и saveSettings 100% вызываются. После загрузки, quality = 0 ![]() Собственно проблема тут: http://iexpo.tk/game/ |
Ответ: Вопросы от новичка
Проверь, в каком порядке вызываются. Может ты сохраняешь настройки еще не загрузив их.
|
Ответ: Вопросы от новичка
Цитата:
![]() Цитата:
Гребаный делегат, почему он вызывается при старте? А, хотя понятно почему. ![]() Исправил, поставив загрузку настрое до присвоения события. |
Ответ: Вопросы от новичка
Можно как-то получить все объекты на сцене, включая выключенные из 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 срабатывает при любом выходе из коллизии даже в случае множественных коллизий(т.е. если из нескольких действующих коллизий одна прервалась)? Готовых решений не ищу, скорей нужен совет, что почитать или как лучше реализовать в плане логики алгоритм получения количества коллизий, если выбранный мной простой путь не работает или в корне не верен. Заранее спасибо! |
Ответ: Вопросы от новичка
1. Можно создать список для проверяемых объектов. При событии OnCollisionEnter2D добавлять в этот список объект с которым столкнулись. При событии OnCollisionExit2D удалять объект с которым было столкновение из списка. И где нибудь в Update обрабатывать этот список с объектами.
Но тут возможно может получится так, что объект может записаться в список столкновений и тут же удалится, а функция обработки запустится после всего этого. Но можно вызывать функцию обработки прям из события OnCollisionEnter2D. Код:
void OnCollisionEnter2D(GameObject obj) { |
Ответ: Вопросы от новичка
Цитата:
PHP код:
Пробовал такое? |
Ответ: Вопросы от новичка
Цитата:
2. Collision2D.contacts - это точки столкновения, т.е. части одного объекта, с которым столкнулись. Цитата:
Цитата:
|
Ответ: Вопросы от новичка
Цитата:
Цитата:
Цитата:
Цитата:
|
Ответ: Вопросы от новичка
Можно сделать функцию RefineTargetObject(GameObject obj), которая будет определять очередную цель по каким-то параметрам.
Вызываешь эту функцию в методе OnCollisionEnter2D() и передаёшь туда объект столкновения. Можно завести переменные под те параметры, по которым ты проверяешь, например minHp. В функции RefineTargetObject делаешь сравнение PHP код:
Начальное значение для minHp можно сделать int.MaxValue. obj.hp - это упрощённо, на самом деле hp ты получишь из своего obj.GetComponet<...> |
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Цитата:
|
Ответ: Вопросы от новичка
Цитата:
|
Часовой пояс GMT +4, время: 19:17. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot