Autor Wątek: Problem z wystrzeleniem pocisku.  (Przeczytany 4593 razy)

Offline dejmien

  • Użytkownik

# Styczeń 28, 2014, 20:19:43
Witam.

Mam pewien problem ze skryptem odpowiedzialnym za wystrzelenie pocisku... kod wygląda tak:

public Transform ak;
if (Input.GetMouseButtonDown (0))
      {
         GameObject Pocisk = Instantiate(pocisk,ak.position, ak.rotation ) as GameObject;
         Pocisk.rigidbody.velocity = transform.forward*3000 *Time.deltaTime;

      }


zmienna pocisk = prefab z moim nabojem.
zmienna ak = pusty GameObject ustawiony tuż przy lufe karabinu.
Problem w tym że pociski leca tylko przed siebie tzn. gdy obracam kamerę do góry to pociski nie lecą tam gdzie patrze tylko do przodu.
Zmienna ak to pusty GameObject którego umieściłem w MainCamera. Czy ktoś wie co może być nie tak? Przez to utknołem w nauce i nie mogę się uczyć dalej...

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Estivo

  • Użytkownik
    • Blog

# Styczeń 28, 2014, 21:18:28
float w = atan2f(getDirect().y, getDirect().x) / 3.14 * 180;

//gdzie getDirect() zwraca znormalizowany kierunek obrotu liczony przez

direct.x = (aim.x-pos.x); direct.y = (aim.y-pos.y);

double len = sqrtf(direct.x * direct.x+direct.y * direct.y);
 direct.x/=len;
 direct.y/=len;

ah nie zauważyłem, że to w Unity. przepraszam
« Ostatnia zmiana: Styczeń 28, 2014, 22:25:17 wysłana przez Estivo »

Offline dejmien

  • Użytkownik

# Styczeń 28, 2014, 21:28:12
osz kurw** to jakiś wzór z fizyki molekularnej z elementami chemii kwantowej?

A tak w ogóle to czemu ten mój skrypt mi nie działa? Znalazłem go na jednym z turtoriali na Youtube.

Ok sprawdzę ten kod co mi podałeś.

Offline koirat

  • Użytkownik

# Styczeń 28, 2014, 21:39:45
1. Nie przeklinaj bez sensu.

2. Jak chcesz manipulować prędkością to lepiej stosować
Rigidbody.AddForce  lub Rigidbody.AddForceRelative  oba z  ForceMode.VelocityChange jeśli po prostu chcesz ustawić prędkość.

3. W pierwszej kolejności włącz pause w trakcie gry i zobacz gdzie wskazuje transform.

Offline dejmien

  • Użytkownik

# Styczeń 28, 2014, 21:53:47
O i tu jest dziwna rzecz, gdyż zatrzymując pauze pokazuje mi rotacje kamery 90 na osi Y gdy patrze do góry, moja broń też posiada rotacje 90 a pusty GameObject który jest dzieckiem MainCamera posiada 0,0,0...

Offline koirat

  • Użytkownik

# Styczeń 28, 2014, 22:10:04
Zrób print screen z tej pauzy i tu wklej.

Offline dejmien

  • Użytkownik

# Styczeń 28, 2014, 22:17:29
Za każdym razem inaczej mi coś pokazuje... może mam coś z projektem uszkodzone?

MainCamera: http://naforum.zapodaj.net/6f9fec220f4a.jpg.html
Zdjęcie karabinu który jest dzieckiem Main kamery: http://zapodaj.net/dc83fc853514c.jpg.html
Latarka która jest dzieckiem karabinu. Ustawiłem że pociski maja wylatywać z latarki i dalej nic...
http://naforum.zapodaj.net/aaad1b18767e.jpg.html

Offline koirat

  • Użytkownik

# Styczeń 28, 2014, 23:25:04
Ale nie pokazuj mi "game", tylko "scene". Bo tak to nie widzę tej transformacji którą zaznaczyłeś.

Offline dejmien

  • Użytkownik

# Styczeń 28, 2014, 23:51:45
Sory już zamieszczam z sceny.
http://naforum.zapodaj.net/cc1f3ab46ed4.jpg.html

http://naforum.zapodaj.net/a927ac512e63.jpg.html

http://naforum.zapodaj.net/94450af1a8e4.jpg.html

Jak by coś było jeszcze potrzebne to daj znać. Dodam że przedtem ten sposób mi działał... ale kurde nie mam już tego poprzedniego projektu żeby zobaczyć co tam miałem poustawiane.

Jak co to uczyłem się z tego kursu https://www.youtube.com/watch?v=RKkcYVrLRNc

« Ostatnia zmiana: Styczeń 28, 2014, 23:53:25 wysłana przez dejmien »

Offline koirat

  • Użytkownik

# Styczeń 29, 2014, 00:50:02
Na którym obiekcie jest komponent na którym ustawiasz
public Transform ak;
I co na nim masz.
Powiedz jeszcze który to obiekt ma ustalać kierunek strzału.

Dodam jeszcze dobrą radę, staraj się nie używać skali (najlepiej to wogóle), a już szczególnie tam gdzie nie ma takiej potrzeby.

Offline dejmien

  • Użytkownik

# Styczeń 29, 2014, 07:53:38
ak to obiekt latarka, przedtem miałem też zwykły pusty obiekt włożony do maincamery i też nie działało. Ogólnie to już próbowałem do wszystkiego przypisać i nie działało.

Offline koirat

  • Użytkownik

# Styczeń 29, 2014, 13:08:18
Chodzi mi o to że na żadnym screenie nie widzę przypisania do "Transform ak" jakiegoś obiektu i chcę wiedzieć gdzie to robisz.

Offline dejmien

  • Użytkownik

# Styczeń 29, 2014, 13:47:59
Aha o to chodzi... cały skrypt jest przypisany do first person controller i tam latarka jest przypisana do obiektu transform.

Offline koirat

  • Użytkownik

# Styczeń 29, 2014, 14:08:58
A latarka świeci w dobrą stronę ?
Aha i teraz zauważyłem ze te screeny nie są z pause gry.  Daj pause nastepnie wybierz zakładkę scene.

Jak projekt niewiele zajmuje to możesz go gdzieś załączyć, puszczę i sprawdzę u siebie co jest nie tak.

Offline dejmien

  • Użytkownik

# Styczeń 29, 2014, 15:43:51
Dal latarka świeci w dobrą stronę. Kurde no właśnie nie dam rady Ci tego wysłać bo ja importowałem w projekcie wszystkie dodatkowe paczki i teraz całość waży 250mb...
Tu daję zdjęcia sceny z pausy gry:

http://ifotos.pl/zobacz/plik1jpg_epqheax.jpg/

http://ifotos.pl/zobacz/plik2jpg_epqheqr.jpg/

http://ifotos.pl/zobacz/plik3jpg_epqheqs.jpg/