Aby nie lać wody, uczę się, wiele różnych prób edukacji programowania podjąłem, spodobał mi się najbardziej unity, szlifuje korzystając z materiałów yt, ksiązki itp. Jednak nie na wszystko jest jednoznaczna odpowiedź, a przykłady w necie nie zawsze obrazują to co chce się zrobić
Problem:
Mam obiekt "pocisk" 2D bez problemu nadaje mu ruch przy pomocy Rigidbody2D w prawą stronę. Ogarnąłem kod na zmianę rotacji postaci i tak samo skrypt zmienia rotację pocisku. Nie umiem jednak wprowadzić instrukcji warunkowej tak aby pocisk wraz z zmianą kierunku postaci zmieniał kierunek lotu pocisku.
Edit :
Wykombinowałem coś takiego leci w prawo ale w lewo stoi. Zaznaczę iż rotacja pobierana jest z obiektu gracz i dla tego warunku jest sprawdzana.
if (transform.rotation.y == 0)
{
colne.velocity += new Vector2(speed * Time.fixedDeltaTime, 0f);
}
if (transform.rotation.y == 180)
{
colne.velocity -= new Vector2(speed * Time.fixedDeltaTime, 0f);
}
Nie szukam gotowca chcę to zrozumieć.
public class pocisk : MonoBehaviour
{
public Rigidbody2D Bullet;
public Transform shootPoint;
private float timer;
private void Update()
{
if (Input.GetKeyDown(KeyCode.E))
{
Rigidbody2D colne = Instantiate(Bullet, transform.position, transform.rotation) as Rigidbody2D;
colne.transform.position = shootPoint.position;
colne.transform.rotation = transform.rotation;
colne.velocity += new Vector2(100f * Time.fixedDeltaTime, 0);
}
}
}