forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Общие вопросы (http://forum.boolean.name/forumdisplay.php?f=166)
-   -   Вопросы от новичка (http://forum.boolean.name/showthread.php?t=15809)

WISHMASTER35 16.01.2012 21:11

Ответ: Вопросы от новичка
 
Я в окне сцены смотрю. Мне интересно как GUITexture там рисуется.

pax 16.01.2012 21:16

Ответ: Вопросы от новичка
 
http://unity3d.com/support/documenta....BeginGUI.html повторю ссылку из этой темы: http://forum.boolean.name/showthread.php?t=14066

WISHMASTER35 19.01.2012 23:43

Ответ: Вопросы от новичка
 
А вот если использовать методы Slerp и Lerp, то скорость интерполяции вектора\кватерниона будет же разной в начале и конце. И до цели результат так и не дойдет.
Есть методы, что бы интерполировать с одинаковой скоростью? Для вектора такой метод еще не сложно написать, а с кватернионом как это сделать хз.

pax 20.01.2012 01:11

Ответ: Вопросы от новичка
 
Ты вообще о чем? Оба метода это линейная интерполяция, там не может быть разной скорости по определению.

WISHMASTER35 20.01.2012 02:32

Ответ: Вопросы от новичка
 
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

WISHMASTER35 20.01.2012 02:38

Ответ: Вопросы от новичка
 
А вот другой вариант.
Код:

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

Для вектора такое легко сделать, а вот если бы для кватерниона, то было бы класс.

pax 20.01.2012 07:26

Ответ: Вопросы от новичка
 
Хоть пользоваться интерполяцией научись сначала - все дело в неизменном начальном и конечном значении и изменении параметра, а у тебя исходные данные всегда разные. ты все время двигаешь по одному и тому же параметру но используешь разные значения, которые на каждом шаге ближе друг к другу.

PHP код:

private static float lerp(float fromfloat tofloat t) {
        return 
from + ( to-from )*t;
}
        
float from0;
        
float current 0;
        
float to 50;
        for (
int i 015i++) {
            
current lerp(fromtoi/14f);
            
System.out.printlncurrent );
        } 


WISHMASTER35 20.01.2012 16:09

Ответ: Вопросы от новичка
 
Я же об этой проблеме и писал. В одном цикле оно легко правильно пользоваться интерполяцией.
А если мне надо сгладить поворот персонажа?
Тогда надо интерполировать в нескольких кадрах и хранить начальный и конечный кватернион наверно будет глупо. Да еще и кадры от начального до конечного кватерниона считать.
Согласитесь, будет порядком удобнее просто задавать максимальное значение дельты при интерполяции как я писал во втором примере.
Конечно на крайний случай можно использовать углы эйлера, тем более вращение происходит вокруг одной оси. Но все же почему нету таких функций как я хотел(.

Lestar 20.01.2012 16:44

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 217309)
Но все же почему нету таких функций как я хотел(.

Unity убог, в нем ничего нет и разработчики не заложили возможность расширения.

pax 20.01.2012 18:56

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 217309)
Но все же почему нету таких функций как я хотел(.

Блин, читайте справку, все за вас искать надо чтоли? http://unity3d.com/support/documenta...teTowards.html
http://unity3d.com/support/documenta...veTowards.html

Не охото совсем учиться программировать?

WISHMASTER35 20.01.2012 20:11

Ответ: Вопросы от новичка
 
Охота, но не всегда с моим английским нахожу, что надо. Искать не надо, если не помните.

Aikon 21.01.2012 03:29

Ответ: Вопросы от новичка
 
Обнаружил вот какой косяк:
Добавляю свой шрифт в Unity, перетащив из папки Windows ttf-файл.
У меня две сцены, на каждой по GUIText, у которого выставлен мой шрифт.
Сначала запускается первая сцена (лого), потом вторая (игра). Во второй сцене - надписи этим шрифтом более не пишутся, причем только в собранном exe (в Editor все показывается!).

У первой сцены ставлю Arial, у второй мой - все ок. У первой мой, у второй Arial - все ок. Сильное подозрение, что шрифт просто выгружается или это какая то бага.
Пробовал в первой сцене вызывать DontDestroyOnLoad и передавать ему, как сам компонент GUIText, так и GUIText.font. Вбестолку :(

Какие будут идеи?

И вот еще:
Что-то гавкнулось в сцене. Теперь добавляя к Dummy объекту компонент GUITexture
и устанавливая черную текстурку, получаю текстуру на весь экран, хотя размеры и
прочее по нулям. Аналогично с GUIText - новый компонент добавляется с пустым
значением font и его прописывание ничего не дает, текст не отображается.
Если добавлять не как компоненты, а как объекты, то некоторое время все ок, а потом
отваливается.
Как такое лечить то? Unity 3.4.2 Pro cracked.

pax 21.01.2012 13:38

Шрифт загружается кодом, или назначается на поле гуитекста?

По поводу как лечить не знаю, не пользуюсь данными компонентами.

Aikon 21.01.2012 14:22

Ответ: Вопросы от новичка
 
pax, через назначение в редакторе. Для шрифтов в Unity API функций почти нет, только через Resources.Load (пробовал повторно подгружать, но не получилось; шрифт клал в папку Resources разумеется).

pax 21.01.2012 14:24

Ответ: Вопросы от новичка
 
Странные у тебя глюки, попробуй Unity переустановить. Поставь последнюю 3.4.2f3 если стоит не она.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot