Obrót obiektu według kierunku przesunięcia palca

Programowanie w Unity.

Obrót obiektu według kierunku przesunięcia palca

Postprzez franek327327 » 07 Lis 2018, 20:18

Chcę zrobić grę dot. koszykówki (jak się przesunie palcem po ekranie, to w tą stronę poleci piłka, coś jak naciąganie łuku), ale nie mam pojęcia jak obrócić strzałkę pokazującą kierunek lotu według tego w którą stronę się przesunie palec. Strzałka ma się pojawić na piłce a przesuwanie palca nie trzeba zaczynać od piłki, można zaczynać od dowolnego punktu na ekranie. Dodam jeszcze, że gra jest w 2D i ma się obracać samo "z".
franek327327
 
Posty: 3
Rejestracja: 07 Lis 2018, 20:10
Has thanked: 0 time
Been thanked: 0 time

Re: Obrót obiektu według kierunku przesunięcia palca

Postprzez Hostur » 08 Lis 2018, 06:42

Obejrzyj sobie strukturę Touch, ma ona takiego enuma TouchPhase.
Możesz użyć jej np. do tego żeby zapisać koordynaty początku toucha i jego końca a następnie z tych 2 wektorówwyliczyć kierunek przemieszczania się palca. Znajdziesz na pewno masę przykładów jak tylko poszukasz.
Ps.
Korzystaj z Input.GetTouch() zamiast Input.touches[]
To drugie alokuje pamięć, GetTouch jest lżejsze.
Hostur
 
Posty: 648
Rejestracja: 05 Sie 2015, 07:36
Has thanked: 0 time
Been thanked: 0 time

Re: Obrót obiektu według kierunku przesunięcia palca

Postprzez franek327327 » 08 Lis 2018, 10:51

Właśnie używam touchPhase, ale właśnie nie wiem jak zmienić kierunek przesunięcia na rotacje tej strzałki
Poszukam i dam znać potem.
franek327327
 
Posty: 3
Rejestracja: 07 Lis 2018, 20:10
Has thanked: 0 time
Been thanked: 0 time

Re: Obrót obiektu według kierunku przesunięcia palca

Postprzez dawid621 » 08 Lis 2018, 11:33

Proszę https://docs.unity3d.com/ScriptReferenc ... Atan2.html , za pomocą tej funkcji wyliczysz kąt o jaki musisz obrócić strzałkę.
dawid621
 
Posty: 176
Rejestracja: 07 Sie 2016, 18:52
Has thanked: 0 time
Been thanked: 0 time

Re: Obrót obiektu według kierunku przesunięcia palca

Postprzez Hostur » 08 Lis 2018, 13:32

Kiedyś taką funkcję skrobałem, która wyliczała mi kąt myszki względem środka ekranu żeby zmieniać obrót kursora może Ci się przyda

Kod: Zaznacz wszystko
// <summary>
/// Gets angle between mouse position and a middle of the screen.
/// </summary>
/// <returns>Float which represents angle.</returns>
public float MouseAngle()
{
  Vector3 v = Input.mousePosition - _middleOfTheScreen;
  float f = Mathf.Atan2(v.y, v.x);
  f = f * Mathf.Rad2Deg;
  if (f < 0)
    f += 360;
  return f;
}

Z tego co pamiętam działało ;)
Hostur
 
Posty: 648
Rejestracja: 05 Sie 2015, 07:36
Has thanked: 0 time
Been thanked: 0 time

Re: Obrót obiektu według kierunku przesunięcia palca

Postprzez franek327327 » 08 Lis 2018, 15:04

Super, pozmieniałem tam na swoje i działa ten kod - Hostur, dzięki bardzo.
franek327327
 
Posty: 3
Rejestracja: 07 Lis 2018, 20:10
Has thanked: 0 time
Been thanked: 0 time


Wróć do Skrypty

Kto jest na forum

Użytkownicy przeglądający to forum: Bing [Bot] oraz 7 gości