• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Unity 2D problem ze skyptem od strzelania

HackNation - ogólnopolski hackathon
0 głosów
304 wizyt
pytanie zadane 13 grudnia 2023 w Systemy operacyjne, programy przez M4jk3l07 Początkujący (310 p.)

Witam!

Tworzę prostą grę w unity 2d w której sterujemy kwadratem po całej planszy. Kwadrat może iść do przodu skręcać (obracać się). Chciałem dodatkowo zrobić system strzelania. Udało mi się zrobić kod na to jednak jest mały problem. System strzelania robiłem z tego poradnika: https://www.youtube.com/watch?v=wkKsl1Mfp5M&t=11s tam gościu robi system strzelania ale w oparciu na kamerze pisząc moimi słowami z boku postaci, a ja tworzą z kamerą skierowaną na postać z samej góry.  W wyniku tego pocisk u mnie po wystrzeleniu leci cały czas w prawo, a nie tak jakbym chciał że leci w tą stronę w którą skierowany jest kwadrat, czyli prosto. Oto kod na przemieszczanie się pocisku:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Bullet : MonoBehaviour
{

    public float speed = 20f;
    public Rigidbody2D rb;

    // Start is called before the first frame update
    void Start()
    {
        rb.velocity = transform.right * speed;
    }

    
}

Jeśli ktoś wie jak zrobić aby pocisk leciał prosto, to będę wdzięczny.

2 odpowiedzi

0 głosów
odpowiedź 13 grudnia 2023 przez neo1020 Dyskutant (9,370 p.)
może zmień ? transform.right - na - transform.up ? nie wiem nie znam się
0 głosów
odpowiedź 15 grudnia 2023 przez womecm Nowicjusz (180 p.)
x = sin y = cos pobierz obrót ( ciekawe czy poprawnie to napisałem po polskiemu ) rotation of Your object. a następnie wykorzystaj go z użyciem sinusa i cosinusa aby "szczelić" we właściwym kierunku. Zapewne twój "kwodrot" obraca się aby zwizualizować kierunek w którym patrzy, przyjmijmy że kierunek w który patrzy określa oś Z ( jeśli robisz grę 3D ) Przyjmijmy że Z = 218* W tym przypadku potrzebujesz utworzyć sobie "wektor" z tej wartości obrotu. Potrzebujesz 2 wartosci. - 1 ) Jak dużo przesunąć się w osi X - 2) Jak dużo przesunąć się w osi Y X uzyskasz poprzez x = sin( 218 ); y = cos( 218 ); oczywiście zamiast korzystać z 218 skorzystaj z aktualnego obrotu kwadratu. x = sin( Kwadrat.RotationZ ); Nie pamiętam czy funkcje trygonometryczne Unity korzystają też z radianów ale jeśli to swoje "Z" przemnóż przez... o ile mnie pamięć nie myli 0.0017444 x = sin ( Kwadrat.RotationZ * 0.0017444 ); y = cos ( Kwadrat.RotationZ * 0.0017444 ); sinus i cosinus w tym przypadku będą zwracać wartość pomiędzy -1 a 1 Aby uzyskać większy wektor możesz przemnożyć go przez jakąś wartość. x = sin( Kwadrat.RotationZ * 0.0017444 ) * Speed; y = sin( Kwadrat.RotationZ * 0.0017444 ) * Speed; potem zrób wektor z tego X i Y o przesuń "pocisk" o ten wektor. "Mondrala" pan neo1020 ( celowo z małych ) - poziom Stack Overflow. ogólnie jak chcesz uzyskać "punkt" na okręgu możesz po prostu użyć sin i cos...

//Edit:

Człowiek dodaje entery i pracuje nad odpowiedzią a potem cała odpowiedź i tak jest rozwalona przez skrypt... GJ.

Podobne pytania

0 głosów
0 odpowiedzi 1,018 wizyt
pytanie zadane 16 stycznia 2020 w C# przez Wungiel Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 323 wizyt
0 głosów
1 odpowiedź 1,539 wizyt
pytanie zadane 21 listopada 2017 w OpenGL, Unity przez Eryk Chojnacki Obywatel (1,420 p.)

93,626 zapytań

142,551 odpowiedzi

323,044 komentarzy

63,130 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 1452p. - dia-Chann
  2. 1437p. - DziarnowskiJ
  3. 1411p. - Łukasz Piwowar
  4. 1409p. - CC PL
  5. 1388p. - Maurycy W
  6. 1371p. - raydeal
  7. 1369p. - Adrian Wieprzkowicz
  8. 1360p. - Tomasz Bielak
  9. 1335p. - robwarsz
  10. 1296p. - Michal Drewniak
  11. 1141p. - ssynowiec
  12. 1116p. - rucin93
  13. 1102p. - Dominik Łempicki (kapitan)
  14. 1100p. - Mariusz Fornal
  15. 1048p. - Rafał Trójniak
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...