![](images/chestnut/misc/left.gif) |
Общие вопросы вопросы не попадающие ни в один из доступных разделов |
03.02.2017, 14:49
|
#2416
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Вопросы от новичка
При использовании ScriptableObject для инвентаря столкнулся с проблемой получения нужного ScriptableObject'а через код. Сделал костыль-базу_данных где есть List<>, который заполняю всеми доступными для инвентаря ScriptableObject'ами через редактор и далее в коде уже ищу по имени нужное. Есть ли еще какие-нибудь варианты поиска нужного ScriptableObject через код?
|
(Offline)
|
|
03.02.2017, 18:36
|
#2417
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Помести в Resources и делай загрузку из ресурсов по имени.
var inventoryItem = Resources.Load<MyScriptableObject>("inventory_items/"+itemName)
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
|
|
06.02.2017, 01:59
|
#2418
|
AnyKey`щик
Регистрация: 06.02.2017
Сообщений: 4
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от RegIon
Корутина WWW неплохо нагружает поток,FPS падает до 15.
Загружаю встречно основным действиям картинку с диска.
До этого грузил по необходимости (т.е нужно сменит - останавливаю обработку, загружаю, обновляю), сейчас решил сделать как-то так:
Работаю с текущим изображением + гружу новое, а потом обновляю, когда нужно. Но это нехило грузит.
Что посоветуете?
|
Можно попробовать без корутин, в отдельном потоке.
корутина-то в общем потоке работает.
|
(Offline)
|
|
06.02.2017, 12:53
|
#2419
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Вопросы от новичка
Как из unity3d editor выгружать не нужное? При запуске юнити занимает в памяти 176мб, но после работы в течении дня начинает занимать в памяти уже ~500мб. Так же замечал иногда, что каждую секунду процесс начинает потреблять на пару килобайт больше и через какое то время начинает отжирать довольно много памяти. Никаких юзер скриптов работающих в редакторе у меня нет за исключением атрибута [CreateAssetMenu] в одном из скриптов. Так же никаких левых ассетов из стора и кряков не использую.
|
(Offline)
|
|
06.02.2017, 14:04
|
#2420
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от Nex
Как из unity3d editor выгружать не нужное? При запуске юнити занимает в памяти 176мб, но после работы в течении дня начинает занимать в памяти уже ~500мб. Так же замечал иногда, что каждую секунду процесс начинает потреблять на пару килобайт больше и через какое то время начинает отжирать довольно много памяти. Никаких юзер скриптов работающих в редакторе у меня нет за исключением атрибута [CreateAssetMenu] в одном из скриптов. Так же никаких левых ассетов из стора и кряков не использую.
|
Иногда не выгружаю Unity по 3дня и не замечал такой проблемы. Папка Temp растет конечно катастрофично.
|
(Offline)
|
|
18.03.2017, 16:26
|
#2421
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Вопросы от новичка
Как в играх делают частичную паузу допустим при диалогах, всплывающих окнах при которой всё кроме ключевых персонажей, объектов останавливается?
Время ставить в ноль получается не вариант, ибо остановится вся игра. А делать в каждом скрипте проверку на что то типа GameController.IsPause как то бредово.
|
(Offline)
|
|
18.03.2017, 18:50
|
#2422
|
scientist.alien
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений (для 2,593 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от Nex
Как в играх делают частичную паузу допустим при диалогах, всплывающих окнах при которой всё кроме ключевых персонажей, объектов останавливается?
Время ставить в ноль получается не вариант, ибо остановится вся игра. А делать в каждом скрипте проверку на что то типа GameController.IsPause как то бредово.
|
Вот именно поэтому имеет смысл не пользоваться стандартными Update() напрямую. Мне довольно удобно работать когда у меня есть выделенный класс, который занимается инстанциированием, другой - запуском игровых процессов, третий - обращением к хранилищам данных.
Если у тебя запуск игровой логики на обсчёт сконцентрирован в одном месте (или хотя бы в Update() класса, от которого всё игровое наследуется, и внутри родительского Update() происходит запуск виртуального DoLogic()) - это легко решается. Оверхед от вкручивания чуть более громоздкой архитектуры окупается ![:)](images/smilies/smile.gif)
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab. We LOVE you. We MADE you.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
18.03.2017, 22:42
|
#2423
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Вопросы от новичка
Время ставить в ноль получается не вариант, ибо остановится вся игра.
|
В скриптах, которые не должны останавливаться использовать вмеcто deltatime - Time.unscaledTime
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо seaman за это полезное сообщение:
|
|
16.05.2017, 17:50
|
#2424
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Вопросы от новичка
Блин, никак не пойму как крутить объект типа LookAt вокруг определенной оси. Типа как вращается LineRenderer. Т.е вокруг оси направления dращается LineRenderer.
Красные - как есть, голубые - как надо.
Это квады, кручу выставляя ось right.
|
(Offline)
|
|
16.05.2017, 18:28
|
#2425
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Не особо понял что там нарисовано и как что крутишь, я обычно прибегаю к векторному произведению и восстанавливаю нужной мне осью не правильную.
А в твоем случае - сделай пустышку (парента), поверни внутри нее свой квад как надо и делай лук эт этой пустышке.
|
(Offline)
|
|
16.05.2017, 18:55
|
#2426
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от pax
Не особо понял что там нарисовано и как что крутишь, я обычно прибегаю к векторному произведению и восстанавливаю нужной мне осью не правильную.
А в твоем случае - сделай пустышку (парента), поверни внутри нее свой квад как надо и делай лук эт этой пустышке.
|
Нужно крутить Квад со стримерами (электроразряды) по оси образованной усам подков (от красной к синей) к камере.
Что бы стримеры всегда располагались на этой оси и смотрели на камеру.
Логично, что если 2 подковы будут параллельны взору, то я не увижу эти квады, но этого и не нужно.
|
(Offline)
|
|
16.05.2017, 19:35
|
#2427
|
scientist.alien
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений (для 2,593 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от RegIon
Нужно крутить Квад со стримерами (электроразряды) по оси образованной усам подков (от красной к синей) к камере.
Что бы стримеры всегда располагались на этой оси и смотрели на камеру.
Логично, что если 2 подковы будут параллельны взору, то я не увижу эти квады, но этого и не нужно.
|
Посмотри вот на этот метод.
Вторым параметром можно задать плоскость относительно Look-вектора. Скорее всего в твоём случае будет что-то типа:
var magnetPoseDiff = magnetB.position - magnetA.position;
var cameraDiff = Camera.main.transform.position - magnetA.position;
var rotation = Quaternion.LookRotation( magnetPoseDiff, cameraDiff );
m_quadTransform.rotation = rotation; // обрати внимание, что здесь в глобальных координатах действуем
// опционально может понадобиться довернуть квад на 90 градусов:
m_quadTransform.localRotation *= Quaternion.Euler( Vector3.right *90f );
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab. We LOVE you. We MADE you.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:48.
|