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

Strzelanka 2D w Unity - multiplayer

Object Storage Arubacloud
0 głosów
893 wizyt
pytanie zadane 24 czerwca 2019 w OpenGL, Unity przez marcin_w Gaduła (3,190 p.)

Cześć wszystkim, tworzę strzelankę w 2D. Problem pojawia się w momencie gdy drugi gracz próbuje dołączyć do gry utworzonej przez hosta. Pojawiają się klony żołnierzy, które nie są zagnieżdżone w Tilemap. Dodatkowo gracze nie widzą się wzajemnie. Wykorzystuję do tego UNET. Próbowałem wykorzystać Instantiate() czy też Photona, ale nic to nie dało. Proszę o jakieś wskazówki, z góry dzięki za pomoc.   



https://zapodaj.net/7d174072d9b49.png.html
 

1 odpowiedź

0 głosów
odpowiedź 24 czerwca 2019 przez MsMaciek123 Pasjonat (24,760 p.)

Gra w Canvasie?

Co do respienia się w Tilemap, dodaj tag i użyj funkcji

void Update()
{
    if(tileMap==null)
        tileMap.gameObject = GameObject.FindWithTag("tsg");
        setParent(titleMap); //tak mniejwiecej
}

Daj ustawienia UNET'u, i sprawdź czy obiekty są aktywne

komentarz 25 czerwca 2019 przez marcin_w Gaduła (3,190 p.)

Tak, gra jest na Canvasie. Dodałem tag Tsg do Tilemap. 

Kod który wprowadziłem wygląda mniej więcej tak:
 

private GameObject tileMap;
public Transform tileMapTransform;

void Update() {

        if (tileMap == null) {
            tileMap = GameObject.FindWithTag("Tsg");
        }

        tileMap.transform.SetParent(tileMapTransform);       
    }

Jednak nadal nie działa tak jak powinno.

 

Network Manager obiektu NetworkManager:


Masz na myśli ustawienia jakiego obiektu?

Przed uruchomieiem gry mam jeszcze taki warning:

DontDestroyOnLoad only work for root GameObjects or components on root GameObjects.
UnityEngine.Networking.NetworkManager:Awake()

komentarz 25 czerwca 2019 przez MsMaciek123 Pasjonat (24,760 p.)
//KLASA MUSI DZIEDZICZYĆ PO MONOBEHAVIOUR, więc zrób sobie nowy skrypt.
private GameObject tileMap;
 
void Update() {
 
        if (tileMap == null) {
            tileMap = GameObject.FindWithTag("Tsg"); //Tag Tsg ma mieć obiekt który ma być parentem
        }
 
        this.transform.SetParent(tileMap.transform);       //podpinasz skrypt do solidera
    }

2

 Do registered spawnable prefabs dodaj solidera.

3.

Czy skrypt  przypięty do solidera ma może don't destroy on load?

4. Soliderzy  nie widzą się bo nie są w Canvasie, skrypt u góry powinien pomóc.

5. Angielski kurs multiplayer UNET,  dowiedz się czym jest RPC i CMD

komentarz 26 czerwca 2019 przez marcin_w Gaduła (3,190 p.)

Do klasy dodałem MonoBehaviour (to co wysłałem wcześniej to jest tylko kawałek skryptu).

Do Registered Spawnable prefabs nie da się przeciągnąć Soldiera. Nie znalazłem don't destroy onload w skryptach przypiętych do postaci. Trzech soldierów znajduje się wewnątrz Tilemap, Jednak dwoje z nich "Soldier(clone)" znajdują się całkowicie poza mapą a dzieje się to po stronie gracza, który dołącza do gry. Konsola wyrzuca coś takiego: 

komentarz 26 czerwca 2019 przez MsMaciek123 Pasjonat (24,760 p.)
1. W Registered Spawnable Prefabs MASZ PLUSIK, naciśnij go, a dopiero później przeciągnij PREFAB do pustego pola!

2. Otwórz Build Settings, dodaj tam swoją scenę. Stwórz drugą scenę, tam daj NetworkManager i NetwokHUD, a z pierwszej sceny go usuń. Wszystkie te sceny dodaj do BuildSettings (z czym scena musi być pierwsza z Network Manager) i w NetworkManager do sceny offline dodaj scenę w której jest Newtork Manager, a do sceny online dodaj scenę z grą.
komentarz 26 czerwca 2019 przez marcin_w Gaduła (3,190 p.)

1. Kliknąłem wcześniej plusik tylko nie przeciągnąłem Prefaba ;).

2. NetworkManager: 

  

NetworkScene:

BuildSettings:

Tak wyglądają okna gry po wprowadzonych zmianach:
https://zapodaj.net/b4fa79a8e6a3a.png.html

komentarz 27 czerwca 2019 przez MsMaciek123 Pasjonat (24,760 p.)
Jak masz ustawione NetworkIdentity na prefabie solidera?

Czy jak odpalasz projekt w hierarchii są 2 solidery jak ktoś dołączy? Są włączone oraz są w Canvas (jeżeli mają RectTransform)

 

Tworzenie gry w Canvasie nie jest dobrym pomysłem...
komentarz 28 czerwca 2019 przez marcin_w Gaduła (3,190 p.)
edycja 28 czerwca 2019 przez marcin_w

Network Identity:

Jak tworzę hosta i gracz próbuję do niego dołączyć to drzewko hierarchy wygląda tak:


 

Canvas -> Grid -> Tilemap. W Tilemap są te wszystkie obiekty włącznie z soldierami. Dlaczego tworzenie gry w Canvasie to nie jest dobry pomysł? Sugerujesz, że powinienem usunąć Canvasa?

EDIT: Kiedy próbuję dezaktywować klony soldiera, na jednym i drugim ekranie nic się nie zmienia. Dopiero po dezaktywacji soldiera znika postać z jednego ekranu.

komentarz 28 czerwca 2019 przez MsMaciek123 Pasjonat (24,760 p.)
1. Zaznacz w NetworkIdentity dla soliderów

"local player authority"

2. Gra w Canvasie nie jest dobrym pomysłem bo widać jakie są błędy...

3. Gdybyś mógł dać jakoś projekt lub coś mógłbym ci to bardziej skonfigurować. Musisz zainteresować się jakimś kursem.

https://www.youtube.com/playlist?list=PL1PIWPRFeCKXa-ncrl0j7Lc-qo2WrclZC

https://www.youtube.com/playlist?list=PLwyZdDTyvucw5JhBMJxFwsYc1EbQYxr0G

Podobne pytania

+1 głos
1 odpowiedź 809 wizyt
pytanie zadane 18 marca 2020 w OpenGL, Unity przez Bartek12 Mądrala (5,510 p.)
+1 głos
1 odpowiedź 571 wizyt
pytanie zadane 3 czerwca 2018 w Nasze projekty przez 10kw10 Pasjonat (22,880 p.)
0 głosów
1 odpowiedź 1,329 wizyt
pytanie zadane 21 listopada 2017 w OpenGL, Unity przez Eryk Chojnacki Obywatel (1,420 p.)

92,539 zapytań

141,382 odpowiedzi

319,477 komentarzy

61,928 pasjonatów

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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...