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)

pax 17.04.2012 19:08

Ответ: Вопросы от новичка
 
Эх....
PHP код:

Ray ray cam.ScreenPointToRay(Input.mousePosition); //
        
RaycastHit hit;
        
        if (
Physics.Raycast(rayout hit)) {
            var 
lookDirection hit.point transform.position;
            
lookDirection.0;
            var 
targetRotation Quaternion.LookRotation(lookDirection);
            
transform.rotation Quaternion.Slerp(transform.rotationtargetRotation turnSpeed Time.deltaTime);
        } 


pie 17.04.2012 20:28

Ответ: Вопросы от новичка
 
Спасибо большое! Просто я не дружу с C#. Мне легче на Java. А на нем я незнаю как это будет выглядеть)

pie 18.04.2012 13:42

Ответ: Вопросы от новичка
 
Вопрос по поводу Biped Edition. Как модельке на которой висит скрипт Biped (т.е. он и будет являться куклой тряпичной) сообщить что нужно начать генерировать физику куклы. То что можно нажать кнопку в окне screene не предлагать. Нужно именно как то сказать чтобы кукла начала работать.

Lestar 18.04.2012 16:05

Ответ: Вопросы от новичка
 
Сделать на основе модели регдол и в нужный момент заменить модель регдолом. Если я правильно понял суть вопроса.

RegIon 06.05.2012 17:03

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

    if (Rotate) {
           
            var ang = Vector3.Angle (Physics.gravity, new Vector3 (0, 1, 0));
            CamPivot.transform.localRotation = new Quaternion (0, 0, 1, ang*Mathf.Deg2Rad);
           
        }

Хотел развернуть камеру на угол,равный углу вектора гравитации, работает только от PI/4 до PI/4+PI, не знаю почему, где косяк?

Lestar 06.05.2012 23:52

Ответ: Вопросы от новичка
 
Physics.gravity это сила тяжести. Какое она имеет отношение к определению угла между двумя векторами?

pie 22.05.2012 11:44

Ответ: Вопросы от новичка
 
Вопрос по поводу CarTutorial. В примере вроде бы все нормально. Заменил модель машины на свою, все скрипты добавил, все параметры настроил как надо. когда поворачиваешь колеса в одну сторону они плавно поворачиваются. Если резко повернуть в другую сторону то они с рывком поворачиваются в другую. Как это можно исправить?

is.SarCasm 28.05.2012 13:32

Ответ: Вопросы от новичка
 
Как сделать так, что бы OnGUI запускалась только один раз за цикл?

cahekp 28.05.2012 15:47

Ответ: Вопросы от новичка
 
to is.SarCasm:
Никак. Но можно детектить, зачем в очередной раз Юнити решила вызвать эту функцию. Если у тебя внутри нее есть какие-то вычисления (хотя в справке настоятельно рекомендуют этого не делать), то можешь их "обернуть" вот в такое условие:

void OnGUI() {
...
if (Event.current.type == EventType.Repaint)
{
// Весь код, который лежит тут, вызывается только один
// раз за кадр.
Debug.Log("Current frame: "+Time.frameCount);
}
...
}

pax 29.05.2012 10:30

Ответ: Вопросы от новичка
 
1. Можно отключить GUILayout если он не используется например в Start или Awake. Это снизит количество вызовов на 1.
2. Как сказал cahekp - можно выполнять действие один раз за кадр например в событии Repaint, но там другие события не обработать.

Nuprahtor 29.05.2012 10:36

Ответ: Вопросы от новичка
 
У кого-нибудь получалось привязывать мауслок к правому стику геймпада? Сколько гуглил - ничего полезного не нашел, в Input ось x и y всего одна, и по умолчанию X и Y оси привязываются к левому стику, а второй X и Y оси в настройках нет. Пробовал дублировать MouseX/Y оси и настраивать их для геймпада - та же проблема, единственное, что получилось - привязывание левого-же стика и на движение, и на мауслок :c

pax 29.05.2012 15:06

Ответ: Вопросы от новичка
 
Не взял в деревню геймпад к сожалению, но вероятно в инпут менеджере надо во вторых Horizontal и Vertical (хотя нет, надо править Mouse X и Mouse Y оси) выставить третью и четвертую оси джойстика, вместо x и y

WISHMASTER35 29.05.2012 21:57

Ответ: Вопросы от новичка
 
Скажите, yield return new WaitForSeconds(0.01f); прервет работу ровно на 0.01 секунды? Или может на более долгое время прервать, если игра будет тормозить?

Что бы выполнение сложного алгоритма разделить на несколько кадров обязательно в самом алгоритме вставлять строчку yield return new WaitForSeconds?
Хочется сделать, чтобы не тормозила при выполнении этого алгоритма и в алгоритм ничего лишнего не писать.

cahekp 30.05.2012 10:49

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

Сообщение от WISHMASTER35 (Сообщение 229037)
Скажите, yield return new WaitForSeconds(0.01f); прервет работу ровно на 0.01 секунды? Или может на более долгое время прервать, если игра будет тормозить?

Что бы выполнение сложного алгоритма разделить на несколько кадров обязательно в самом алгоритме вставлять строчку yield return new WaitForSeconds?
Хочется сделать, чтобы не тормозила при выполнении этого алгоритма и в алгоритм ничего лишнего не писать.

Нет, к сожалению, не ровно. Может прерваться как на 0.01, так и на 0.02, или вообще 0.038 какое-нибудь. Юнити выполняет все скрипты и сопрограммы в одном потоке, по этому прерывание зависит от суммарного количества выполняющихся скриптов в кадре.

Очень хорошее объяснение того, как работают корутины, есть тут:
http://answers.unity3d.com/questions...confusion.html
Прям пошаговое объяснение процесса.

К слову, только FixedUpdate выполняется строго по времени.

WISHMASTER35 30.05.2012 20:38

Ответ: Вопросы от новичка
 
А FixedUpdate в другом потоке выполняется?

Ладно, если я в свой алгоритм вставлю "yield return new WaitForSeconds(time)" То как вычислить это time, чтобы алгоритм работал максимально быстро и не создавал тормозов?
И как определить, что алгоритм уже закончил свою работу?
Надо, чтобы в фоне создавались новые куски уровня.


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

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