Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 14.12.2015, 16:11   #2281
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Проверь, в каком порядке вызываются. Может ты сохраняешь настройки еще не загрузив их.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 14.12.2015, 16:41   #2282
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Вопросы от новичка

Сообщение от pax Посмотреть сообщение
Проверь, в каком порядке вызываются. Может ты сохраняешь настройки еще не загрузив их.
Да вроде проверял. И очередность судя по логам нормальная:


[SETTINGS] be saved
нету -значит вообще при старте не сохраняет, только при изменении.

Гребаный делегат, почему он вызывается при старте? А, хотя понятно почему.


Исправил, поставив загрузку настрое до присвоения события.
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 15.12.2015, 13:49   #2283
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Вопросы от новичка

Можно как-то получить все объекты на сцене, включая выключенные из CustomEditor ? По идее для редактора они должны быть равнозначными и как-то можно получить, но не нашел в справке!!
__________________
Сайт: http://iexpo.ml

Последний раз редактировалось RegIon, 15.12.2015 в 18:48.
(Offline)
 
Ответить с цитированием
Старый 30.01.2016, 15:52   #2284
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Вопросы от новичка

Локализация игры.
Подскажите какой-нибудь способ - как подменять картинки согласно текущей локали.
С текстами я придумал простой способ, а с картинками пока нет. Просто вытаскиванием из бандла/ресурсов, разве что.
(Offline)
 
Ответить с цитированием
Старый 31.01.2016, 09:51   #2285
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Ну по сути картинки будут в том же атласе для экономии дравколов, так что можно просто спрайты запоминать для каждого языка и потом их менять.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
RegIon (01.02.2016), Жека (31.01.2016)
Старый 01.02.2016, 00:56   #2286
AVL
Разработчик
 
Регистрация: 27.01.2011
Адрес: Афипский
Сообщений: 419
Написано 100 полезных сообщений
(для 182 пользователей)
Ответ: Вопросы от новичка

Товарищи, я нифига не понял... По какой логике работает сжатие текстур в юнити? В гугле выдается куча статей и обсуждений по теме того как оптимизировать размер билда, но там обычно уже оптимизации на тему того как уменьшить размер текстуры, не сильно потеряв в качестве. Но блин, как получается так что когда все ассеты в png весят 20мб, билд под Android - 30мб, но при этом билд под винду - 200мб, а под webgl - вообще все 300? При том что для всех текстур стоит сжатие по умолчанию - Compressed.
С webgl вот что непонятно: в папке билда появляются 2 папки - Compressed и Release. И во всех туториалах написано, что сервер, увидев .htaccess файл, будет отправлять браузеру только Compressed. Тогда зачем вообще нужна папка с несжатыми ассетами, зачем ее заливать на сервер, и почему без нее игра не запускается? Например, хочу залить на itch.io, все 300мб в zip сжались до 30, но вот игра не запускается - сайт жалуется на слишком большой файл.
(Offline)
 
Ответить с цитированием
Старый 01.02.2016, 07:24   #2287
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Обновись уже на Unity 5.3, там в webgl только сжатый билд. Вообще с WebGL надо разные версии Unity пробовать, 5.3.1 крашится у нас к примеру. Я бы на твоем месте взял последний патч релиз отсюда: http://unity3d.com/unity/qa/patch-releases
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 01.02.2016, 08:01   #2288
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Вопросы от новичка

Ещё в юнити есть штука Sprite Packer в меню Window. По дефолту выключена. Если твои картинки в отдельных файлах, то полезно включать пакер.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nex (01.02.2016)
Старый 01.02.2016, 13:06   #2289
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Вопросы от новичка

Его лучше включить после того, как добавил-изменил ресурсы, а то как расчет освещения - будет жрать ресурсы, если без зпрядки на ноуте сидишь - слеиает заряд моментально, так как CPU на 100% крутится.

Я сделал кастом инспектор, который составляет соответсвие локали с объектами с тегом multilang. Он загоняет их в json. Текст выглядит как %marker - по нему выбирается из json пака слов, а спрайт/текстура как %tex_marker, он уже выбирается из префабов (лучше из ресов наверное ) с именем marker.

На объектах где языкозависимый ресурс - скрипт, где он подписан на обновление контроллера, через который происходиь изменение ланга. Т.е меняешь индекс в контроллере - он рассылает эвент о смене языка, после которого объект запрашивает у него текст/картинку на которкэую сменить по %marker , и если он есть - возвращает новый. Так, если частичный перевод нет проблем с отсутсвием текста вообще, если в лангпаке его нет -стоит прошлый, в котором есть ресурс.
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 01.02.2016, 14:44   #2290
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Вопросы от новичка

RegIon, я примерно так же делать буду.

Вопрос по файлу .gitignore.
Я надавно прочитал, что в папке Library хранится важная инфа, meta-данные о связях объектов.
Пришлось включить эту папку в гит (кроме кэша шейдеров), до этого была выключена, т.к. я использовал "рекомендуемый" .gitignore, взятый на стэковерфлоу.

Но в папке Library столько шлака, файлы то создаются, то удаляются.
Кто шарит, подскажите - что делать с этой папкой.
(Offline)
 
Ответить с цитированием
Старый 01.02.2016, 17:06   #2291
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Ответ: Вопросы от новичка

Library в репозитории быть не должна по идее. Единственный "минус" от её отсутствия в репе - при клонировании репы в новое место юнити придётся переимпортировать ассеты в свои кэши. Один раз. Мета-данные лежат в файлах .meta.

Наш .gitignore:
[Ll]ibrary/
[
Tt]emp/
[
Oo]bj/
[
Bb]uild/
[
Bb]uild_*/
.
vscode/

[
Tt]emp.meta

# Autogenerated VS/MD solution and project files
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj

# Unity3D generated meta files
*.pidb.meta 
Юнити имеет следующую страницу мануала, где в числе прочего упоминается:
8. Optional: Set up an ignore filter for the unversioned Library directory: svn propedit svn:ignore MyUnityProject/ Subversion will open a text editor. Add the Library directory.
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Жека (01.02.2016)
Старый 01.02.2016, 19:32   #2292
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Вопросы от новичка

Спасибо. Щас снова читал про эту папку и увидел

《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 полезна.
Вот и добавил её. Но там реально шлак с точки зрения пригодности для репозитория.

Теперь ясно стало.
(Offline)
 
Ответить с цитированием
Старый 12.02.2016, 21:46   #2293
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Вопросы от новичка

Как *епть* в Unity получить угол по оси X в диапазоне 0 - 360 ???

Я устал и не могу это понять... эти углы эйлера зло. Тем более в юнити. ТО у нее угол дофига, то ограничен 180 градусов.

Нужно узнать какая цифра барабана игрового автомата выпала. автомат 6*ти значный, на 3 барабана.
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 13.02.2016, 19:57   #2294
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Обычно ты можешь просто запомнить угол и его менять в отдельной флоат переменной, а потом применять вращение к барабану (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 (два оборота).
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 25.02.2016, 13:54   #2295
Владимир
AnyKey`щик
 
Регистрация: 19.02.2016
Сообщений: 4
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы от новичка

Доброго времени суток.
Собственно вот и я пришел на ваш форум поскольку начал осваивать Unity. За тупые вопросы сильно не пинайте, поскольку изучаю Unity всего месяц, притом месяц же изучаю и C#(более того не программер, в молодости учил только C++ и то дальше простеньких программ не пошло), поэтому вопросы могут быть весьма тупыми. И то и другое изучаю на боевую, т.е. пишу простенькую игрушку.
Итак собственно вводные:
Есть объект игрока, есть объект врага и есть объект растения. Урон наноситься игроком врагу или растению и врагом всем остальным Урон наноситься непосредственным контактом. Если рассматривать коллизию 1:1 то проблем написать такой код у меня нет, есть проблема с написанием кода 1:многим. Моя цель выбрать из всех объектов с которыми я столкнулся один, с минимальным значением одной из переменных экземпляра объекта, а для этого мне нужно получить количество объектов с которым столкнулся мой игрок.
Вот кусок кода:

 void OnCollisionEnter2D(Collision2D coll)
    {
        // Получаем количество коллизий.
        int count = coll.contacts.Length;
        //Объявляем переменную объекта.
        GameObject ob;
        //Объявляем переменную объекта с минимальным hp.
        GameObject minHpOb;
        Debug.Log("Количество коллизий : " + coll);

        //Задаем цикл  в котором перебираем всех противников
        for (int i = 0; i < coll; i++)
        {

            //выбираем только объекты с тегами Plant, Player, Enemy
            if (coll.contacts[i].collider.gameObject.tag == "Plant" || coll.contacts[i].collider.gameObject.tag == "Player" || coll.contacts[i].collider.gameObject.tag == "Enemy")
            {
                //Получаем GameObject и присваиваем переменной.
                ob = coll.contacts[i].collider.gameObject;
                Debug.Log("Имя объекта с которым столкнулись : " + ob);
            
                //первое присваивание minHpOb объекту ob.
                if (minHpOb = null)
                {
                    minHpOb = ob;
                }
Тут то и возникла главная моя проблема. Как я понимаю функции OnCollisionEnter2D и OnCollisionStay2D обрабатываются для каждой коллизии отдельно. Т.е. по факту переменная count = coll.contacts.Length; будет всегда равна 1(хотя вроде как до 5 версии все работало правильно и выдавалось именно общее количество коллизий). Собственно из этого и вытекают мои вопросы.
1. Мне собственно нужно получить количество объектов с которыми столкнулся объект игрока. Что почитать? Офф. справку читал, но если честно мало, что понял в данном конкретном вопросе.
2.OnCollisionExit2D срабатывает при любом выходе из коллизии даже в случае множественных коллизий(т.е. если из нескольких действующих коллизий одна прервалась)?
Готовых решений не ищу, скорей нужен совет, что почитать или как лучше реализовать в плане логики алгоритм получения количества коллизий, если выбранный мной простой путь не работает или в корне не верен.
Заранее спасибо!

Последний раз редактировалось Владимир, 26.02.2016 в 08:07.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com