А чем в проекте занимаетесь вы? как обычно "написанием тз и управлением"? Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
для мобильной игры оптимальное количество Draw Call's 80+/-
ну это скорее всего очень устаревшие цифры, вон вверху сообщение 14го года в котором про 300-400 для ПК говориться, сейчас же в pubg 25000 drawcall за кадр доходит, так что опираться на какое-то количество drawcalls для измерения производительности не правильно, но чем меньше конечно тем лучше Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
ну как минимум тем что это видеохостинг, не предназначенный что бы там просто разговаривать, для этого есть более подходящие штуки Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
Я просто убрал поиск и сделал назначение объекта в инспекторе) хи
В инспекторе не удобно постоянно что-то менять, в коде гораздо проще, хотя поиск по имени/тегу тоже плохой вариант. хи) Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
этот метод возвращает (bool): true если тег у обьекта == Player, flase - в противоположном случае. И получается что ты к результату определения "равен ли тег ЭТОГО обьекта" пытаешься "применить" метод GetComponent, который есть только в GameObject/MonoBehaviour
вместо этого используй ПОИСК обьекта по тегу, вот информация: https://docs.unity3d.com/ScriptReference/GameObject.FindWithTag.html Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
Не помню, нужно ли hp делать статиком, или паблик пойдет)
static точно не нужен, он делает поле "одним" для всех экземпляров класса, то есть в итоге у всех было бы одно и тоже ХП Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
Всем привет, нужно в приложение добавить небольшую паззл игру (пазлы рандомно размещаются по игровому полю), паззл должен складываться из уже имеющихся изображений в приложении, и собственно вопрос: как это лучше реализовать? немного не ясно с тем как лучше разрезать изображение (пазлы могут быть треугольные/квадратные/и т.д.). Сами изображения тоже не квадратные (то есть имеются пустые участи). Пока есть два варианта: 1. Разрезать изображение перед началом игры на эти самые части, но тут вопрос как это лучше сделать, не знаю с помощью чего это реализовать 2. Использовать уже заранее разрезанные пазлы, которые использовать в качестве маски, а "под " сам пазл ставить изображение целиком со смещением, но тогда как проверить что маска "пустая" и там ничего в ней нет (что бы знать когда паззл полностью сложен (а пустые элементы складывать не обязательно, так как игрок их просто не увидит))
Подкиньте плиз идей как бы это лучше реализовать, что бы не получилось криво работающего велосипеда
Добавлено (26 Апреля 2018, 19:28) --------------------------------------------- для работы с изображениями в виндос обычно использую accord.net, но очень сомневаюсь что он "взлетит" на иос или андроид
Добавлено (26 Апреля 2018, 19:31) --------------------------------------------- emgu cv там в сторе 400$ стоит, другие opencv библиотеки дешевле, но сомневаюсь что это разумно использовать их для такой задачи
unity (если для игр (2d, 3d)): бесплатный, много встроенных плюшек (в том числе реклама, покупки и т.д.), C# - на нём можно писать почти всё, много поддерживаемых платформ, огромное комьюнити, ассет стор, развивается в последнее время очень круто - это то что первое вспоминается про движок, ну а там уже лучше посмотри на ещё существующие альтернативы и выбери то что подойдёт лучше
Сообщение отредактировал zhuravelsv - Суббота, 21 Апреля 2018, 21:06
Всем привет Вопрос в том как реализовать верификацию транзакции/покупки через unity iap на сервере. Примеры кода не нужны, интересует собственно то с помощью чего это делать, например, происходит покупка, в клиенте я получаю ид транзакции или токен, передаю его на сервер, и дальше с помощью какого сервиса мне проверить валидность токена и получить данны покупки. Загвоздка в том что юнити такую возможность не предоставляет (нету никаких сервисов что бы к ним можно было получать доступ со стороны сервера и проверять покупку), в гугле есть возможность получения данных покупки через их апи, но там немного пока что не ясно с авторизацией, а в епл вообще ничего не нашел кроме какого-то куска кода на (наверное) objective-c для проверки покупки на клиентской стороне. в общем может быть как-то не очень ясно описал проблему, но в общем если есть опыт в этом, напишите пожалуйста как вы проверяете покупку на сервере (если она была проведена через unity iap) Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
очень круто выглядит, но гроза как-то слишком часто мерцает, что немного портит общий вид (на мой взгляд) Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
Добрый день, есть проблема: в одном приложении которое использует примерно 600-700 мб озу, на 5/6 айфоне при повторном запуске происходит краш приложения (во время загрузки ресурсов и ассет бандлов), а теперь более детально по шагам:
1. Запускаю приложение, оно работает отлично 2. Закрываю его в "диспетчере задач" (не знаю как правильно в иос это называется), и: 2.1 Открываю сразу же повторно (оно в 30-40% случаев крашится во время загрузки) 2.2 Или Немного жду (минуту к примеру) и запускаю - всё отлично
И есть один нюанс, если оно закрашилось на пункте 2.1, оно просто закрывается, НО в диспетчерез задач оно висит с скриншотом от последнего удачного запуска, когда оно работало нормально, хотя тот экземпляр приложения я закрыл через диспетчер так же, и после него и другое ещё запустил (которое и закрашилось во время загрузки (в отдельной сцене). Получается что часть данных сама система (иОС) кеширует, независимо от того закрыли ли приложение (и кеширует на некоторое ограниченное время), и самое интересное что если рабочий экземпляр загрузил много ресурсов в память, пользователь его закрыл, то при выполнении пункта 2.1 крашится будет намного чаще, вот собственно и вопрос, как это работает, и что кеширует в память иОС
П.С. Приложение на юнити
Добавлено (16 Марта 2018, 18:44) --------------------------------------------- на более новых устройствах приложение работает нормально, то есть не хватает ему ОЗУ (нужно 2ГБ), но так как при первом запуске (или если подождать немного после последнего запуска) всё работает отлично, то собственно и есть само предположение что система что-то сохраняет в памяти, что потом и мешает ему нормально выполнить загрузку (крашится приложение так как это обычно происходит при нехватке памяти, просто закрывается с небольшим подвисанием системы но в диспетчере остаётся)
Добавлено (16 Марта 2018, 18:44) --------------------------------------------- и ещё дополню, тестирование проводилось на 11+ версиях иОС
Добавлено (16 Марта 2018, 18:50) --------------------------------------------- и ещё одно дополнение: на андроиде вообще никаких подобных проблем не наблюдается, значит это какая-то иОС-специфичная проблема в работе с озу (андроид лучше чем иОС )
Добавлено (17 Марта 2018, 15:47) --------------------------------------------- up
Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
могу ли я тут найти спонсоров для создания игры? в роли управляющего проэктом)
А подумайте теперь зачем им управляющий у которого нету ни команды, ни опыта, ничего
Добавлено (06 Марта 2018, 13:55) ---------------------------------------------
ЦитатаnoJIoTeH4uK ()
идея геймплея 0.01 даже 01 )))) а ну да)))
таких идей огромное количество, но почему-то игр не так много, наверное потому что реализация проекта в реальных условиях будет гораздо сложнее чем "представление" этого проекта у кого-то в голове, выше писали - напишите диз док и у вас появится миллион проблем (как геймплейных так и "программных"), о которых сейчас вы даже не думали (знаю по своему опыту - пока нет диз дока всё кажется относительно ясно и понятно, но в момент написания о описания абсолютно всех пунктов появляется реальное ощущение сложности проекта )
Добавлено (06 Марта 2018, 13:57) ---------------------------------------------
ЦитатаnoJIoTeH4uK ()
нарисовать текстурки и вставить алгоритмы в движок)
вы явно даже близко не представляете что такое "вставить алгоритмы в движок" Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
Странно это создавать 500 аккаунтов что бы писать себе и своей игре положительные отзывы на форуме и в ютубе Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
Я - часть команды, которая тоже учавствует в разработке
Цитатаzhuravelsv ()
Как именно?
ЦитатаDanilius ()
Если что-то непонятно было, можно спросить конкретно
Так а куда уже конкретнее? Или это был какой-то сложный вопрос? Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
Сообщение отредактировал zhuravelsv - Пятница, 02 Февраля 2018, 13:15
Ты же в проект людей ищешь, не я. Вот я и спрашиваю, какова твоя роль в проекте Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
Как именно? Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
Если я правильно понимаю то что написано в справке, то изменение материала создаёт его копию на каждом обьекте, соответственно это тоже влияет на производительность, лучше написать простой шейдер который это будет делать автоматически
Modifying material will change the material for this object only. If the material is used by any other renderers, this will clone the shared material and start using it from now on.
ЦитатаdefGMDefeloper ()
На каждом обьекте есть скрипт:
Это 10к обьектов на которых такой скрипт? Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
Это частично решило проблему, загрузка намного быстрее, хотя далеко не идеально, и памяти теперь использует не 4гб а 1, теперь подумаю над загрузкой не всего сразу а частично только то что нужно в текущий момент Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
Зачем тебе сразу столько текстур в кадре? Иначе непонятно для чего ты их все в память сразу загружаешь. Загружай и выгружай по мере использования
В кадре все конечно не использую, но как я писал выше они долго подгружаются, у меня на один обьект 75 кадров, одновременных анимаций - сейчас одна (пару дней назад было около 20, заказчик решил немного изменить их показ, но не факт что он не передумает, то есть должен загружать сразу штук 20 обьектом)
Добавлено (05 января 2018, 23:01) ---------------------------------------------
ЦитатаRutraple ()
Плюс глянь на сжатие текстур, если оно не поддерживается android, то может иметь место двойная распаковка в память (сжатые сохранятся вместе с разжатыми), считай x2 затрат памяти на все текстуры.
Это у меня на ПК прям в редакторе всё так печально (4гб и долгая подгрузка), на андроиде забивает 2гб ОЗУ и крашится
Добавлено (05 января 2018, 23:07) --------------------------------------------- Попробую в атласы всё запихнуть, но если вдруг кто-то имеет ещё идеи и предположения просьба написать сюда
Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
Добрый день, нужна помощь в решении проблемы, проблема: В игре есть большое количество изображений, они нужны для покадровой анимации, размер примерно 30кб каждое (1000х600 пикселей +-). Изначально планировал загружать их все сразу в память с помощью Resource.Load, но получается что они в памяти занимают около 4х гб!!, что просто очень плохо, так как игра для андроид и на диске они занимают всего 80 МБ, при этом их загрузка происходит так же ооочень долго, не подскажете что можно сделать для того что бы это нормально работало и не занимало настолько много памяти? в Preloaded Assets добавил папку resources целиком, думал что поможет быстрее грузить всё, но нет. Количество изображений: около 3.5к, хотя даже при загрузке пары сотен уже долго жду (секунд 10)
Добавлено (05 января 2018, 21:40) --------------------------------------------- загружаю вот так
Код
Texture2D texture = Get<Texture2D>(string.Concat("Textures/", name)); return Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
Добавлено (05 января 2018, 21:41) --------------------------------------------- Возможно нужно удалять из памяти Texture2D, пробовал просто не создавать спрайт а возвращать null, не помогло
Добавлено (05 января 2018, 21:48) --------------------------------------------- если вместо texture2d загружать sprite то работает быстрее, но опять слишком много памяти занимает
Код
public static class ResourceHelper { public static T Get<T>(string path) where T : Object { return Resources.Load<T>(path); }
public static AnimationClip GetAnimationClip(string name) { return Get<AnimationClip>(string.Concat("Animation/", name)); }
Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
Сообщение отредактировал zhuravelsv - Пятница, 05 Января 2018, 21:38