|
Общие вопросы вопросы не попадающие ни в один из доступных разделов |
30.07.2012, 20:04
|
#526
|
ПроЭктировщик
Регистрация: 04.11.2011
Сообщений: 176
Написано 19 полезных сообщений (для 64 пользователей)
|
Ответ: Вопросы от новичка
2pax, Спасибо. Разобрался. Но а как сделать чтобы кнопки за боксом не нажимались?
И как можно регулировать размер GUI.Box в зависимости от размера текста?
|
(Offline)
|
|
30.07.2012, 20:10
|
#527
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от pie
Но а как сделать чтобы кнопки за боксом не нажимались?
|
Не рисовать бокс поверх кнопок.
Сообщение от pie
И как можно регулировать размер GUI.Box в зависимости от размера текста?
|
var labelSize = GUI.skin.label.CalcSize(new GUIContent("Текст"));
Далее задавать размер бокса.
|
(Offline)
|
|
30.07.2012, 21:48
|
#528
|
Мастер
Регистрация: 05.04.2008
Сообщений: 910
Написано 530 полезных сообщений (для 3,006 пользователей)
|
Ответ: Вопросы от новичка
Посоветуйте нормальные реализации DeltaPitch/Yaw. Мои какие-то пока кривые..
|
(Offline)
|
|
30.07.2012, 21:58
|
#529
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Вопросы от новичка
в unity же кажись в кватеринонах ориентация?
их же можно просто slerp-ить...
или тебе не для плавных поворотов?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
30.07.2012, 22:05
|
#530
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Может тебе они не нужны, если тебе надо плавно повернуть один объект на другой, то можно воспользоваться примерно таким способом:
public float speed = 0.1F; public Transform targetTransform; ...
var from = transform.rotation; var to = Quaternion.LookRotation(targetTransform.position - transform.position); transform.rotation = Quaternion.Slerp(from , to , Time.time * speed);
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
|
|
30.07.2012, 22:23
|
#531
|
Мастер
Регистрация: 05.04.2008
Сообщений: 910
Написано 530 полезных сообщений (для 3,006 пользователей)
|
Ответ: Вопросы от новичка
Не для плавных поворотов, мне надо потом просто нормализовать это значение и помножить на скорость разворотов Так что здесь главное, чтобы оно просто правильно выдавало -/+ у значения.
|
(Offline)
|
|
30.07.2012, 23:01
|
#532
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
30.07.2012, 23:22
|
#533
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Вопросы от новичка
var to = Quaternion.LookRotation(targetTransform.position - transform.position);
попробуй для определения направления поворота просто здесь проверять значение to.x(или to.w) (для оси Y), и to.y (для оси X) на меньше-больше нуля.
теоретически должно работать.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
30.07.2012, 23:53
|
#534
|
Мастер
Регистрация: 05.04.2008
Сообщений: 910
Написано 530 полезных сообщений (для 3,006 пользователей)
|
Ответ: Вопросы от новичка
Перевел, сейчас посмотрим что получится...
float DeltaYaw( Transform p_eEntity1, Transform p_eEntity2) {
float l_dx = p_eEntity2.position.x - p_eEntity1.position.x;
float l_dz = p_eEntity2.position.z - p_eEntity1.position.z;
return -Mathf.Atan2(l_dx,l_dz);
}
float DeltaPitch( Transform p_eEntity1, Transform p_eEntity2 ) {
float l_dx = p_eEntity2.position.x - p_eEntity1.position.x;
float l_dy = p_eEntity2.position.y - p_eEntity1.position.y;
float l_dz = p_eEntity2.position.z - p_eEntity1.position.z;
return( -Mathf.Atan2(l_dy, Mathf.Sqrt(l_dx*l_dx + l_dz*l_dz)) );
}
Последний раз редактировалось EvilChaotic, 31.07.2012 в 01:10.
|
(Offline)
|
|
31.07.2012, 00:00
|
#535
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Можно чуть проще записать
float DeltaYaw( Transform p_eEntity1, Transform p_eEntity2) { float l_d = p_eEntity2.position - p_eEntity1.position; return -Mathf.Atan2(l_d.x,l_d.z); }
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
31.07.2012, 01:04
|
#536
|
Мастер
Регистрация: 05.04.2008
Сообщений: 910
Написано 530 полезных сообщений (для 3,006 пользователей)
|
Ответ: Вопросы от новичка
Обе функции при определенных углах возвращают не правильное значение.
Ща отдохну и попробую вариант Олега.
|
(Offline)
|
|
31.07.2012, 01:12
|
#537
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Я думаю они правильное значение возвращают с точки зрения блица, но не правильное для Unity. В Unity вращение часто меняет свое значение при переходе через 90/180 градусов.
Можешь попробовать использовать следующее:
// величина поворота на цель var rotation = Quaternion.FromToRotation(transform.forward, targetTransform.position - transform.position);
// углы Эйлера var euler = rotation.eulerAngles;
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
31.07.2012, 02:29
|
#538
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Вопросы от новичка
т.е. конечно же надо смотреть не итоговый кватерион - а разницу
diff = Quaternion.Inverse(from) * to;
или как там в юнити
|
(Offline)
|
|
01.08.2012, 00:48
|
#539
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
пустые сабмеши дравкалов не вызывают.
а как можно в редакторе сделать свой редактор массива материалов? вывести список не сложно, но не пойму как сделать добавление материала. как-то можно, по нажатию на кнопку сразу открыть браузер? или может както по другому это сделать?
|
(Offline)
|
|
01.08.2012, 07:12
|
#540
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Увеличиваешь массив (на кнопку например), отображаешь пустое поле с типом материала, кликаешь по нему - выбираешь материал из "браузера".
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:12.
|