|
Общие вопросы вопросы не попадающие ни в один из доступных разделов |
16.01.2012, 21:11
|
#226
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
Я в окне сцены смотрю. Мне интересно как GUITexture там рисуется.
|
(Offline)
|
|
16.01.2012, 21:16
|
#227
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
|
(Offline)
|
|
19.01.2012, 23:43
|
#228
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
А вот если использовать методы Slerp и Lerp, то скорость интерполяции вектора\кватерниона будет же разной в начале и конце. И до цели результат так и не дойдет.
Есть методы, что бы интерполировать с одинаковой скоростью? Для вектора такой метод еще не сложно написать, а с кватернионом как это сделать хз.
|
(Offline)
|
|
20.01.2012, 01:11
|
#229
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Ты вообще о чем? Оба метода это линейная интерполяция, там не может быть разной скорости по определению.
|
(Offline)
|
|
20.01.2012, 02:32
|
#230
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
pax, да, но получается иначе. Вот пример написал.
private static float lerp(float from, float to, float t) {
return from + ( to-from )*t;
}
float current = 0;
float to = 50;
for (int i = 0; i < 15; i++) {
current = lerp(current, to, 0.2f);
System.out.println( current );
}
Результат:
10.0
18.0
24.4
29.52
33.616
36.8928
39.51424
41.611393
43.289116
44.631294
45.705036
46.56403
47.251225
47.80098
48.240784
|
(Offline)
|
|
20.01.2012, 02:38
|
#231
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
А вот другой вариант.
private static float test(float from, float to, float max) {
float delta = to-from;
if( delta < -max ) delta = -max;
if( delta > max ) delta = max;
return from + delta;
}
float current = 0;
float to = 50;
for (int i = 0; i < 15; i++) {
current = test( current, to, 5 );
System.out.println( current );
}
Результат равномерный.
5.0
10.0
15.0
20.0
25.0
30.0
35.0
40.0
45.0
50.0
50.0
50.0
50.0
50.0
50.0
Для вектора такое легко сделать, а вот если бы для кватерниона, то было бы класс.
|
(Offline)
|
|
20.01.2012, 07:26
|
#232
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Хоть пользоваться интерполяцией научись сначала - все дело в неизменном начальном и конечном значении и изменении параметра, а у тебя исходные данные всегда разные. ты все время двигаешь по одному и тому же параметру но используешь разные значения, которые на каждом шаге ближе друг к другу.
private static float lerp(float from, float to, float t) { return from + ( to-from )*t; } float from= 0; float current = 0; float to = 50; for (int i = 0; i < 15; i++) { current = lerp(from, to, i/14f); System.out.println( current ); }
Последний раз редактировалось pax, 20.01.2012 в 11:18.
|
(Offline)
|
|
20.01.2012, 16:09
|
#233
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
Я же об этой проблеме и писал. В одном цикле оно легко правильно пользоваться интерполяцией.
А если мне надо сгладить поворот персонажа?
Тогда надо интерполировать в нескольких кадрах и хранить начальный и конечный кватернион наверно будет глупо. Да еще и кадры от начального до конечного кватерниона считать.
Согласитесь, будет порядком удобнее просто задавать максимальное значение дельты при интерполяции как я писал во втором примере.
Конечно на крайний случай можно использовать углы эйлера, тем более вращение происходит вокруг одной оси. Но все же почему нету таких функций как я хотел(.
|
(Offline)
|
|
20.01.2012, 16:44
|
#234
|
Бывалый
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений (для 880 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от WISHMASTER35
Но все же почему нету таких функций как я хотел(.
|
Unity убог, в нем ничего нет и разработчики не заложили возможность расширения.
__________________
Нам суждено построить мосты и храмы,которых никогда не существовало и не могло существовать в природе.
|
(Offline)
|
|
20.01.2012, 20:11
|
#236
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
Охота, но не всегда с моим английским нахожу, что надо. Искать не надо, если не помните.
|
(Offline)
|
|
21.01.2012, 03:29
|
#237
|
ПроЭктировщик
Регистрация: 12.02.2011
Сообщений: 131
Написано 23 полезных сообщений (для 52 пользователей)
|
Ответ: Вопросы от новичка
Обнаружил вот какой косяк:
Добавляю свой шрифт в Unity, перетащив из папки Windows ttf-файл.
У меня две сцены, на каждой по GUIText, у которого выставлен мой шрифт.
Сначала запускается первая сцена (лого), потом вторая (игра). Во второй сцене - надписи этим шрифтом более не пишутся, причем только в собранном exe (в Editor все показывается!).
У первой сцены ставлю Arial, у второй мой - все ок. У первой мой, у второй Arial - все ок. Сильное подозрение, что шрифт просто выгружается или это какая то бага.
Пробовал в первой сцене вызывать DontDestroyOnLoad и передавать ему, как сам компонент GUIText, так и GUIText.font. Вбестолку
Какие будут идеи?
И вот еще:
Что-то гавкнулось в сцене. Теперь добавляя к Dummy объекту компонент GUITexture
и устанавливая черную текстурку, получаю текстуру на весь экран, хотя размеры и
прочее по нулям. Аналогично с GUIText - новый компонент добавляется с пустым
значением font и его прописывание ничего не дает, текст не отображается.
Если добавлять не как компоненты, а как объекты, то некоторое время все ок, а потом
отваливается.
Как такое лечить то? Unity 3.4.2 Pro cracked.
Последний раз редактировалось Aikon, 21.01.2012 в 13:37.
|
(Offline)
|
|
21.01.2012, 13:38
|
#238
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Шрифт загружается кодом, или назначается на поле гуитекста?
По поводу как лечить не знаю, не пользуюсь данными компонентами.
|
(Offline)
|
|
21.01.2012, 14:22
|
#239
|
ПроЭктировщик
Регистрация: 12.02.2011
Сообщений: 131
Написано 23 полезных сообщений (для 52 пользователей)
|
Ответ: Вопросы от новичка
pax, через назначение в редакторе. Для шрифтов в Unity API функций почти нет, только через Resources.Load (пробовал повторно подгружать, но не получилось; шрифт клал в папку Resources разумеется).
|
(Offline)
|
|
21.01.2012, 14:24
|
#240
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Странные у тебя глюки, попробуй Unity переустановить. Поставь последнюю 3.4.2f3 если стоит не она.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:20.
|