Wpis z mikrobloga

Hmm, chę napisać "rozpiędzanie" obiektu zamiast maksymalnej prędkości po wciśnięciu przycisku najprościej jak się da, nie wiem tylko czy to może zadziałać jeśli zrobiłbym to w ten sposób...

if(input.odpowiedniklawisz){
for (float i = 0.01; i <= 5; i++)
transform.Translate(Vector2.right * i *Time.deltaTime);
}

Pomysł taki żeby po wciśnięciu klawisza wykonywała się pętla dodawania do zmiennej samej siebie dopóki nie będzie maksymalną, a potem z tą maksymalną prędkością żeby dalej obiekt się poruszał, tylko chyba jednak mi to nie podziała za bardzo :/ .

#gamedev #unity3d
  • 31
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

nie lepiej uzywac realnych wartosci fizycznych typu przyspieszenie, predkosc etc? wciskajac klawisz nadajesz przyspieszenie, predkosc liczy sie sama, polozenie tez - w zaleznosci od czasu.
  • Odpowiedz
@NikczemnyPan: O, ciekawe - jak sterowanie obiektem przerzuciłem na rigidbody to jest ładnie widoczne to rozpędzanie o którym było mowa bez potrzeby kodzenia. Tylko nadal musiałem w kod wstawić stałą np. 4f , a chciałbym jeszcze móc widzieć tą zmienną od "rozpędzania" żebym mógł uaktywniać inne pierdoły po osiągnięciu prędkości określonej.
  • Odpowiedz
@MichaelP: nie bardzo łapie, wydaję się że dość unity specyficzne pytanie ( wciąż nie robiłem nic w unity). Ale skoro przeszedłeś na komponent rigbody. To dodaj nowy skrypt który w każdym updejcie gry pobierze to rigbody i sprawdzi obecna prędkość rigbody. I jezeli rigbody osiagnie okreslone predkości to wtedy niech się coś uaktywnia.
  • Odpowiedz
@MichaelP: od tego masz Rigidbody.velocity
Jeżeli obiekt porusza się po 1 osi, wystarczy ci tylko rigidbody.velocity.x/y/z, jeżeli po przekątnej, pobierz długość wektora velocity i to będzie twoja prędkość wypadowa.
  • Odpowiedz