Управления космическим кораблем мышкой - Форум Игроделов
Пт, 03 Май 2024, 12:02 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » HELP & FAQ » Управления космическим кораблем мышкой (Space Rangers)
Управления космическим кораблем мышкой
KriatonuSДата: Чт, 24 Сен 2015, 14:15 | Сообщение # 1
Нет аватара
 
Сообщений: 16
Награды: 0
Репутация: 0
Статус: Offline
Народ помогите! Все мозги уже себе вынес.
Есть корабль, который перемещается только по X,Z. Под ним поверхность с тегом.
При нажатии мышки на поверхности, корабль должен плавно повернуться к месту нажатия,
затем набирая скорость подлететь к назначению с плавным торможением и соответственно остановиться.
С камерой RTS разобрался - а вот с кораблем никак.
Помогите пожалуйста с кодом и разъяснениями.
 
СообщениеНарод помогите! Все мозги уже себе вынес.
Есть корабль, который перемещается только по X,Z. Под ним поверхность с тегом.
При нажатии мышки на поверхности, корабль должен плавно повернуться к месту нажатия,
затем набирая скорость подлететь к назначению с плавным торможением и соответственно остановиться.
С камерой RTS разобрался - а вот с кораблем никак.
Помогите пожалуйста с кодом и разъяснениями.

Автор - KriatonuS
Дата добавления - 24 Сен 2015 в 14:15
VolkOrievithДата: Чт, 24 Сен 2015, 17:14 | Сообщение # 2
Нет аватара
 
Сообщений: 222
Награды: 0
Репутация: 53
Статус: Offline
Я так понял, совсем в скриптинге новичек.
Пускаем луч в место щелчка мышью, затем направляем корабль туда.
Код

var Point : Vector3;
var speed : float;

functiom Update () {

if (Input.GetButtonDown ("Fire1")){
var ray : Ray = Camera.main.ScreenPointToRay(Input.mousePosition);
var hit :  RaycastHit;
          if (Physics.Raycast(ray, hit, 1000))
Point = hit.point;
}
if (Vector3.Distance (transform.position, Point) > 10){
transform.Rotate (0, Vector3.Normalize(transform.InverceTransformDirection ( Point - transform.position)).z * time.deltaTime * 5, 0);
transform.position += transform.forward * time.deltaTime * speed;
}
}


Копируй осторожнее, писал вслепую, наверное наделал ошибок) Но суть понятна.
Плавности ускорения и торможения нет, но их легко сделать самому.


Сообщение отредактировал VolkOrievith - Чт, 24 Сен 2015, 17:15
 
СообщениеЯ так понял, совсем в скриптинге новичек.
Пускаем луч в место щелчка мышью, затем направляем корабль туда.
Код

var Point : Vector3;
var speed : float;

functiom Update () {

if (Input.GetButtonDown ("Fire1")){
var ray : Ray = Camera.main.ScreenPointToRay(Input.mousePosition);
var hit :  RaycastHit;
          if (Physics.Raycast(ray, hit, 1000))
Point = hit.point;
}
if (Vector3.Distance (transform.position, Point) > 10){
transform.Rotate (0, Vector3.Normalize(transform.InverceTransformDirection ( Point - transform.position)).z * time.deltaTime * 5, 0);
transform.position += transform.forward * time.deltaTime * speed;
}
}


Копируй осторожнее, писал вслепую, наверное наделал ошибок) Но суть понятна.
Плавности ускорения и торможения нет, но их легко сделать самому.

Автор - VolkOrievith
Дата добавления - 24 Сен 2015 в 17:14
Форум Игроделов » UNITY3D » HELP & FAQ » Управления космическим кораблем мышкой (Space Rangers)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024