Wpis z mikrobloga

#unity3d #gamedev

Mirki pomożecie? Bo nie rozumiem, co źle zrobiłem ( ͡° ʖ̯ ͡°)
Funkcja ma wystrzelić pocisk, który jest prefabem. Pocisk się pojawia, ale zamiast lecieć do przodu po prostu sobie spada (ma przypisany rigibody2d). bulletSpeed ma nadaną wartość.

void fireB(){
if (playerScript.facingRight){
print("strzal w prawo");
Instantiate(pocisk, transform.position, Quaternion.Euler(0,0,0));
pocisk.rigidbody2D.AddForce(Vector2.right * bulletSpeed);
}
  • 13
@blamedrop: @januszkarwasz:
coś w tym stylu?

GameObject pociskInstance = Instantiate(pocisk, transform.position, Quaternion.Euler(0,0,0));
pociskInstance.rigidbody2D.AddForce(Vector2.right * bulletSpeed);

Nadal nie działa, ale może jak pogrzebie to coś z tego ugram.
@blamedrop: brakło as GameObject. Działa ( ͡° ͜ʖ ͡°). Czytam dokumentację, ale z programowaniem zaczynam praktycznie od zera. Nie lubię tutoriali, dochodzę na swój sposób do wszystkiego próbując stworzyć sztampowe gry, żeby tylko podchwycić mechanikę. Dzięki za pomoc ( ͡° ͜ʖ ͡°)
@sbuasha: Zamiast nadawać mu siłę łatwiej będzie nadać mu od razu prędkość (będziesz mieć kontrolę nad dokładną prędkością i nie będziesz musiał przejmować się masą)

pociskInstance.rigidbody.velocity = pociskInstance.transform.forward * bulletSpeed