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)

pie 30.07.2012 20:04

Ответ: Вопросы от новичка
 
2pax, Спасибо. Разобрался. Но а как сделать чтобы кнопки за боксом не нажимались?
И как можно регулировать размер GUI.Box в зависимости от размера текста?

pax 30.07.2012 20:10

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

Сообщение от pie (Сообщение 234779)
Но а как сделать чтобы кнопки за боксом не нажимались?

Не рисовать бокс поверх кнопок.

Цитата:

Сообщение от pie (Сообщение 234779)
И как можно регулировать размер GUI.Box в зависимости от размера текста?

PHP код:

var labelSize GUI.skin.label.CalcSize(new GUIContent("Текст")); 

Далее задавать размер бокса.

EvilChaotic 30.07.2012 21:48

Ответ: Вопросы от новичка
 
Посоветуйте нормальные реализации DeltaPitch/Yaw. Мои какие-то пока кривые.. :pardon:

HolyDel 30.07.2012 21:58

Ответ: Вопросы от новичка
 
в unity же кажись в кватеринонах ориентация?

их же можно просто slerp-ить...

или тебе не для плавных поворотов?

pax 30.07.2012 22:05

Ответ: Вопросы от новичка
 
Может тебе они не нужны, если тебе надо плавно повернуть один объект на другой, то можно воспользоваться примерно таким способом:
PHP код:

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); 


EvilChaotic 30.07.2012 22:23

Ответ: Вопросы от новичка
 
Не для плавных поворотов, мне надо потом просто нормализовать это значение и помножить на скорость разворотов :) Так что здесь главное, чтобы оно просто правильно выдавало -/+ у значения.

pax 30.07.2012 23:01

Ответ: Вопросы от новичка
 
нашел вот такие, могу переписать на Unity...
http://www.blitzbasic.com/Community/...hp?topic=66209

HolyDel 30.07.2012 23:22

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

var to = Quaternion.LookRotation(targetTransform.position - transform.position);
попробуй для определения направления поворота просто здесь проверять значение to.x(или to.w) (для оси Y), и to.y (для оси X) на меньше-больше нуля.
теоретически должно работать.

EvilChaotic 30.07.2012 23:53

Ответ: Вопросы от новичка
 
Перевел, сейчас посмотрим что получится...
Код:

        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)) );
        }


pax 31.07.2012 00:00

Ответ: Вопросы от новичка
 
Можно чуть проще записать
PHP код:

float DeltaYawTransform p_eEntity1Transform p_eEntity2) {
   
float l_d p_eEntity2.position p_eEntity1.position;
   return -
Mathf.Atan2(l_d.x,l_d.z);



EvilChaotic 31.07.2012 01:04

Ответ: Вопросы от новичка
 
Обе функции при определенных углах возвращают не правильное значение.
Ща отдохну и попробую вариант Олега.

pax 31.07.2012 01:12

Ответ: Вопросы от новичка
 
Я думаю они правильное значение возвращают с точки зрения блица, но не правильное для Unity. В Unity вращение часто меняет свое значение при переходе через 90/180 градусов.

Можешь попробовать использовать следующее:

PHP код:

// величина поворота на цель
var rotation Quaternion.FromToRotation(transform.forwardtargetTransform.position transform.position);

// углы Эйлера
var euler rotation.eulerAngles


HolyDel 31.07.2012 02:29

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

Код:

diff = Quaternion.Inverse(from) * to;
или как там в юнити

WISHMASTER35 01.08.2012 00:48

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

pax 01.08.2012 07:12

Ответ: Вопросы от новичка
 
Увеличиваешь массив (на кнопку например), отображаешь пустое поле с типом материала, кликаешь по нему - выбираешь материал из "браузера".


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

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