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 15.02.2013 19:18

Ответ: Вопросы от новичка
 
pax, не плохое там количество заготовленных делегатов)) Action(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)
А делегаты нельзя перечислять как params?

pax 15.02.2013 21:09

Ответ: Вопросы от новичка
 
Ну собственно params Action[] methods должно работать как и подразумевается

WISHMASTER35 15.02.2013 21:35

Ответ: Вопросы от новичка
 
pax, я перепутал. Я хотел написать дженерики. Т.е. Action(params T[] values). Но видно нельзя, если сделали столько перегрузок.

pax 15.02.2013 21:43

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

WISHMASTER35 16.02.2013 01:19

Ответ: Вопросы от новичка
 
Вложений: 1
Хочу сделать вращение объекта мышкой как в Blender.
Для этого нужно из координат мышки вычислить рычаг за который будем крутить объект.
А чтобы вычислить этот рычаг нужно спроецировать курсор на сферу.
Есть идеи как это правильно сделать?

Сейчас так написал, но по-моему это не совсем правильно.
Код:

float tx = (Input.mousePosition.x-Screen.width/2)/Screen.width * 2;
float ty = (Input.mousePosition.y-Screen.height/2)/Screen.height * 2;
tx = Mathf.Clamp(tx, -1, 1);
ty = Mathf.Clamp(ty, -1, 1);
                               
dir = new Vector3(tx, ty, 0);
dir.z = -Mathf.Clamp01(1-dir.magnitude);
dir.Normalize();

Т.е. если точка в самом правом углу дисплея, то рычаг будет справа на сфере. Рисунок немного неверный, нужно было обрезать синюю линию.

pax 16.02.2013 11:04

Ответ: Вопросы от новичка
 
Попробуй посмотреть вот этот пример http://wiki.unity3d.com/index.php?title=ArcBall

Okay 16.02.2013 18:07

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

Ну в таких случаях я ставлю в коде Debug.Log(1) ... Debug.Log(N) и смотрю на какой строке проблема в логе (проблема будет после последней выведенной цифры в лог). Но у меня такого практически не бывает.
pax, не совсем понял. Напиши пример пожалуйста

pax 16.02.2013 18:14

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

Строка кода 1;
Debug.Log(1);
Строка кода 2;
Debug.Log(2);
Строка кода 3;
Debug.Log(3);
Строка кода 4;
Debug.Log(4);
Строка кода 5;
Debug.Log(5); 

Если последнее в логе перед ошибкой цифра 3, то ошибка на строке "Строка кода 4;"

Okay 16.02.2013 18:38

Ответ: Вопросы от новичка
 
мда :(
лог:
Цитата:

1
2
10
23
54
1
2
10
54
И так далее.

den 16.02.2013 19:03

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

Ну в таких случаях я ставлю в коде Debug.Log(1) ... Debug.Log(N)...
а пошагового выполнения в юнити нет?

pax 16.02.2013 21:17

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

Сообщение от Okay (Сообщение 252987)
мда :(
лог:

И так далее.

Так ошибка после какой цифры то?


Цитата:

Сообщение от Den (Сообщение 252989)
а пошагового выполнения в юнити нет?

В билде нет.

WISHMASTER35 16.02.2013 23:46

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

Сообщение от pax (Сообщение 252949)
Попробуй посмотреть вот этот пример http://wiki.unity3d.com/index.php?title=ArcBall

Что-то не понял как тот пример работает, но мой код работает хорошо.
Код:

public class Trackball : MonoBehaviour {
        void Update () {
                if(Input.GetMouseButton(1)) {
                        float screenSize = Mathf.Max(Screen.width, Screen.height);
                        float tx = (Input.mousePosition.x-Screen.width/2)/screenSize * 2;
                        float ty = (Input.mousePosition.y-Screen.height/2)/screenSize * 2;
                       
                        tx = Mathf.Clamp(tx, -1, 1);
                        ty = Mathf.Clamp(ty, -1, 1);
                       
                       
                        Vector3 lever = new Vector3(tx, ty, 0);
                        lever.z = -Mathf.Clamp01(1-lever.magnitude);
                        lever.Normalize();
                       
                        Vector3 delta = new Vector3(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y"));
                       
                        Vector3 axis = Vector3.Cross(lever, delta);
                        axis = Camera.mainCamera.transform.TransformDirection(axis);
                        transform.Rotate(axis, delta.magnitude*5, Space.World);
                       
                        Debug.DrawLine(transform.position, transform.position+lever, Color.green);
                }
        }
}


is.SarCasm 17.02.2013 00:26

Ответ: Вопросы от новичка
 
1. Как в Photon'е добавить свойство к комнате? Например мне нужно уровень(сцену) этой команты.
2. Как использовать Photon Cloud?

Okay 17.02.2013 00:41

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

Так ошибка после какой цифры то?
pax, в дебаг выводит только вот эти 5 цифр. Причем 23 - через раз выводится. Походу только 5 функций из 54 - правильны.

pax 17.02.2013 01:56

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

Сообщение от is.SarCasm (Сообщение 252999)
1. Как в Photon'е добавить свойство к комнате? Например мне нужно уровень(сцену) этой команты.
2. Как использовать Photon Cloud?

1. PhotonNetwork.CreateRoom принимает i'i таблицу параметров комнаты и массив имен открытых параметров.
2. Скачать с ассет стора Photon Unity Networking. Посмотреть пример с сантехником.

Цитата:

Сообщение от Okay (Сообщение 253000)
pax, в дебаг выводит только вот эти 5 цифр. Причем 23 - через раз выводится. Походу только 5 функций из 54 - правильны.

Если не выводит в лог ошибок, значит их нет.


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

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