| 
	
		
		
			| Разные значения для параметров Axis"Mouse Y" (Z) |  |  |  | 
| 35363 | Дата: Пятница, 04 Мая 2018, 15:48 | Сообщение # 1 |  |   участник Сейчас нет на сайте | Мне необходимо задать разные значения для параметров Axis"Mouse Y" (Z). что то на подобие
 
 if (Input.GetKey("q"))
 {
 float v = 15 * Time.deltaTime;
 rb.AddTorque(new Vector3(0, 0, v));
 }
 if (Input.GetKey("e"))
 {
 float v = -30 * Time.deltaTime;
 rb.AddTorque(new Vector3(0, 0, v));
 }
 значения поворотов для каждой оси должны быть разными(Y+,Y-,Z+,Z-), а не едиными как во множествах примерах
 
 строка из справки
 float h = horizontalSpeed * Input.GetAxis("Mouse X");
 float v = verticalSpeed * Input.GetAxis("Mouse Y");
 transform.Rotate(v, h, 0);
 
 ЗЫ заметил баг, если развернуть камеру на 180 вверх или вниз, то Q,E отрабатывают в обратном порядке, хотелось бы узнать как и это полечить.
 
 Если ничего не получается, а до этого получалось -  необходимо вернутся в то состояние при котором все получалось!
 
 
 Сообщение отредактировал 35363 - Пятница, 04 Мая 2018, 15:49 |  |  |  |  |  | 
| drcrack | Дата: Пятница, 04 Мая 2018, 15:56 | Сообщение # 2 |  | старожил Сейчас нет на сайте | Я вот вообще не понял о чем ты. Чем тебя не устраивает пример из справки? 
 
 Цитата  ЗЫ заметил баг, если развернуть камеру на 180 вверх или вниз, то Q,E отрабатывают в обратном порядке, хотелось бы узнать как и это полечить. Не поворачивать камеру на 180 градусов
 |  |  |  |  |  | 
| Navarh | Дата: Пятница, 04 Мая 2018, 21:52 | Сообщение # 3 |  |   частый гость Сейчас нет на сайте | Цитата 35363 (  )  хотелось бы узнать как и это полечитьПопробуй сделать проверку. Если текущий угол поворота камеры меньше  0, то менять знак(15 на -15, -30 на 30).
 
 В Юнити не работаю, но если тут такая же система, как в Анриале, то должно помочь. Там поворот идет от 0 до 180, а потом от -0 до -180.
 
 
 Сообщение отредактировал Navarh - Пятница, 04 Мая 2018, 23:24 |  |  |  |  |  | 
| 35363 | Дата: Суббота, 05 Мая 2018, 04:37 | Сообщение # 4 |  |   участник Сейчас нет на сайте | Цитата Navarh (  )  Попробуй сделать проверку. Если текущий угол поворота камеры меньше 0, то менять знак(15 на -15, -30 на 30).Идея хорошая, отработать должно, но как костыль. А вот как разделить Z Y на z, -z. y, -y я хз
 
 ЗЫ Navarh, Вы dedicated server на анриле делали? То мы из за нехватки информации на юньку и пересели, эпики не шибко любят делится подобного рода инфой.
 
 Если ничего не получается, а до этого получалось -  необходимо вернутся в то состояние при котором все получалось!
 
 
 Сообщение отредактировал 35363 - Суббота, 05 Мая 2018, 04:50 |  |  |  |  |  | 
| Navarh | Дата: Суббота, 05 Мая 2018, 11:49 | Сообщение # 5 |  |   частый гость Сейчас нет на сайте | Цитата 35363 (  )  dedicated server на анриле делали?Нет
 |  |  |  |  |  | 
| drcrack | Дата: Суббота, 05 Мая 2018, 13:30 | Сообщение # 6 |  | старожил Сейчас нет на сайте | Цитата  А вот как разделить Z Y на z, -z. y, -y я хзЯ очень сомневаюсь что есть хотя бы 1 человек на форуме, который понял, что именно ты хочешь сделать
 |  |  |  |  |  | 
| 35363 | Дата: Суббота, 05 Мая 2018, 15:53 | Сообщение # 7 |  |   участник Сейчас нет на сайте | Цитата drcrack (  )  Я очень сомневаюсь что есть хотя бы 1 человек на форуме, который понял, что именно ты хочешь сделатьЧто тут не понятного? я же не на техническом вам тут излагаю. Нужно что бы когда крутиш камеру вниз была к примеру скорость 5, когда вверх была скорость 10, та же ситуация с влево/вправо. На импатах это легко прописать а вот с мышью
 
 if (Input.GetKey("w"))
 {
 forceValue = объект.вперед * сумма движения;
 }
 if (Input.GetKey("s"))
 {
 forceValue = - объект.вперед * сумма движения;
 }
 
 А теперь нужно то же самое только с использованием инпата миши - Input.GetAxis("Mouse X")
 потому что если прописать
 if (Input.GetAxis("Mouse X"))
 {
 forceValue = объект.вперед * сумма движения;
 }
 if (Input.GetAxis("Mouse X"))
 {
 forceValue = - объект.вперед * сумма движения;
 }
 Юнька не проглотит код
 так как Input.GetAxis("Mouse X") принимает общую сумму up dawn с ОДНИМ значением. А мне надо что то подобное на осях миши negative/positive button. В общем я хз как Вам господа еще пояснить.
 
 Если ничего не получается, а до этого получалось -  необходимо вернутся в то состояние при котором все получалось!
 
 
 Сообщение отредактировал 35363 - Суббота, 05 Мая 2018, 15:53 |  |  |  |  |  | 
| drcrack | Дата: Суббота, 05 Мая 2018, 16:29 | Сообщение # 8 |  | старожил Сейчас нет на сайте | Цитата  Нужно что бы когда крутиш камеру вниз была к примеру скорость 5, когда вверх была скорость 10а че сразу нельзя было написать так?)
 
 
 Код float v = verticalSpeed * Input.GetAxis("Mouse Y");^ оригинал "из справки"
 
 
 Код var mouseY = Input.GetAxis("Mouse Y");var speed = (mouseY > 0) ? 10 : 5;
 var v = speed * mouseY;
^ разная скорость в зависимости от знака
 
 PS
 
 Цитата  В общем я хз как Вам господа еще пояснить. так сказанул как будто мы все тут тупые, один ты умный
 был бы умный, не было бы этой темы, и даже если была бы, в ней не было бы бреда вроде "Input.GetAxis("Mouse X") принимает общую сумму up dawn с ОДНИМ значением."
 
 
 Сообщение отредактировал drcrack - Суббота, 05 Мая 2018, 16:35 |  |  |  |  |  | 
| 35363 | Дата: Суббота, 05 Мая 2018, 19:25 | Сообщение # 9 |  |   участник Сейчас нет на сайте | Цитата drcrack (  )  ^ оригинал "из справки"Уважаемый, тебя кто то обвинил в тупости? Что за оффтоп? Лучше ткни мне линком в справку, то я не нашел, куда это тулить у себя.
 void FixedUpdate() {
 UpdateCursorPosition();
 
 //DZ - мертвая зона
 pitch = Mathf.Clamp(distFromVertical, -screen_clamp - DZ, screen_clamp + DZ) * pitchYaw_strength;
 yaw = Mathf.Clamp(distFromHorizontal, -screen_clamp - DZ, screen_clamp + DZ) * pitchYaw_strength;
 
 float x_axis = Input.GetAxis("Mouse X");
 float y_axis = Input.GetAxis("Mouse Y");
 
 pointerPosition += new Vector2(x_axis * mouse_sensitivity_modifier, y_axis * mouse_sensitivity_modifier);
 
 // 17 = turnspeed
 rb.AddRelativeTorque((pitch * 17 * Time.deltaTime),(yaw * 17 * Time.deltaTime),(roll * 17 * Time.deltaTime));
 
 }
 Если я сделаю так,
 float x_axis = Input.GetAxis("Mouse X");
 var speedX = (x_axis > 0) ? 10 : 5;
 var mx = speedX * x_axis;
 float y_axis = Input.GetAxis("Mouse Y");
 var speedY = (y_axis > 0) ? 10 : 15;
 var my = speedX * y_axis;
 pointerPosition += new Vector2(x_axis * mouse_sensitivity_modifier,
 y_axis * mouse_sensitivity_modifier);
 // 17 = turnspeed
 rb.AddRelativeTorque((pitch * mx * Time.deltaTime),(yaw * my * Time.deltaTime),(roll * 17 * Time.deltaTime));
 
 То поворот отрабатывает не корректно. Скрипт реализую для управления самолетом что бы во время повреждений менялось управление.
 
 Если ничего не получается, а до этого получалось -  необходимо вернутся в то состояние при котором все получалось!
 |  |  |  |  |  | 
| drcrack | Дата: Воскресенье, 06 Мая 2018, 15:03 | Сообщение # 10 |  | старожил Сейчас нет на сайте | Цитата  То поворот отрабатывает не корректно.конкретней
 |  |  |  |  |  
 |