Скрипт вертикальной наводки ствола. - Форум Игроделов
Чт, 02 Май 2024, 02:25 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » СКРИПТИНГ » Скрипт вертикальной наводки ствола.
Скрипт вертикальной наводки ствола.
KriatonuSДата: Ср, 20 Янв 2016, 22:08 | Сообщение # 1
Нет аватара
 
Сообщений: 16
Награды: 0
Репутация: 0
Статус: Offline
Народ. Сделал танк, башню, камеру. В общем все играбельно. Встал вопрос с вертикальной наводкой ствола. Вынес уже все мозги.
Проблема в том, что основание ствола имеет свой угол. А камера - свой и они отличаются.
Камера при создании ей угла вычисляет о 0 до 360 и не считает отрицательный угол.
А основание ствола при при повороте вниз уходит в отрицательные значения, а при повороте вверх в положительные.
Никак не могу заставить уровнять углы. Общая система мне понятна. Но из-за разницы углов полный бардак.
Основание ствола привязано к башне. А камера в свободном полете.
Есть идеи как это организовать. Буду очень благодарен.
Да и как ограничить угол вертикальной наводки.
 
СообщениеНарод. Сделал танк, башню, камеру. В общем все играбельно. Встал вопрос с вертикальной наводкой ствола. Вынес уже все мозги.
Проблема в том, что основание ствола имеет свой угол. А камера - свой и они отличаются.
Камера при создании ей угла вычисляет о 0 до 360 и не считает отрицательный угол.
А основание ствола при при повороте вниз уходит в отрицательные значения, а при повороте вверх в положительные.
Никак не могу заставить уровнять углы. Общая система мне понятна. Но из-за разницы углов полный бардак.
Основание ствола привязано к башне. А камера в свободном полете.
Есть идеи как это организовать. Буду очень благодарен.
Да и как ограничить угол вертикальной наводки.

Автор - KriatonuS
Дата добавления - 20 Янв 2016 в 22:08
VolkOrievithДата: Чт, 21 Янв 2016, 20:50 | Сообщение # 2
Нет аватара
 
Сообщений: 222
Награды: 0
Репутация: 53
Статус: Offline
Какое-то корявенькое описание, многого не понял.
Поворачивать ствол вверх/вниз лучше так:
Код

var YSpeed : float;
var YAngle : float;
var MaxY : float;
var MinY : float;
var Direction : Vector3;

function Update () {
YAngle = Mathf.Clamp (YAngle + Time.deltaTime * Mathf.Clamp(Input.GetAxis ("Mouse Y"), -1.5, 1.5) * YSpeed, MinY, MaxY);
Direction = Vector3 ( 0, Mathf.Sin ( Mathf.Deg2Rad * YAngle), Mathf.Cos ( Mathf.Deg2Rad * YAngle));
transform.localRotation = Quaternion.Slerp ( transform.localRotation, Quaternion.LookRotation (Direction), Time.deltaTime * 20);
}

Если знаете английский, в переменных разобраться - раз плюнуть.
Минимальный угол - отрицательное число, то есть, допустим нужно чтобы дуло наклонялось на 10 градусов вниз. Так и ставим значение -10, но не 350.


Сообщение отредактировал VolkOrievith - Чт, 21 Янв 2016, 20:51
 
СообщениеКакое-то корявенькое описание, многого не понял.
Поворачивать ствол вверх/вниз лучше так:
Код

var YSpeed : float;
var YAngle : float;
var MaxY : float;
var MinY : float;
var Direction : Vector3;

function Update () {
YAngle = Mathf.Clamp (YAngle + Time.deltaTime * Mathf.Clamp(Input.GetAxis ("Mouse Y"), -1.5, 1.5) * YSpeed, MinY, MaxY);
Direction = Vector3 ( 0, Mathf.Sin ( Mathf.Deg2Rad * YAngle), Mathf.Cos ( Mathf.Deg2Rad * YAngle));
transform.localRotation = Quaternion.Slerp ( transform.localRotation, Quaternion.LookRotation (Direction), Time.deltaTime * 20);
}

Если знаете английский, в переменных разобраться - раз плюнуть.
Минимальный угол - отрицательное число, то есть, допустим нужно чтобы дуло наклонялось на 10 градусов вниз. Так и ставим значение -10, но не 350.

Автор - VolkOrievith
Дата добавления - 21 Янв 2016 в 20:50
KriatonuSДата: Чт, 21 Янв 2016, 21:09 | Сообщение # 3
Нет аватара
 
Сообщений: 16
Награды: 0
Репутация: 0
Статус: Offline
Спасибо огромное за ответ - сейчас буду пробовать.
 
СообщениеСпасибо огромное за ответ - сейчас буду пробовать.

Автор - KriatonuS
Дата добавления - 21 Янв 2016 в 21:09
Форум Игроделов » UNITY3D » СКРИПТИНГ » Скрипт вертикальной наводки ствола.
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024