Problem z systemem podnoszenia broni (Camera)

Ogólne pytania na temat Unity3D

Problem z systemem podnoszenia broni (Camera)

Postprzez GreQu » 28 Wrz 2020, 19:45

Witam, od około tygodnia męczę się z jednym tematem odnoście warstw na których mają być renderowane bronie, oraz w jaki sposób ma być renderowana warstwa broni, chodzi mi o to w jaki sposób mam zgrać te warstwy aby dobrze ze sobą współgrały, generując jednocześnie broń na ziemi(+Warstwa Pickup potrzeba do skryptu), i po podniesieniu zmieniając warstwę broni (BronPistoletWarstwa - warstwa która generuje broń i dłonie, rusza się z kamerą wiec nie może renderowac modelu broni na ziemi, ponieważ porusza się on z kamerą), tak aby ta nie kolidowała w żadne inne obiekty tzw. ("Camera Clipping")

Wiem że temat jest trochę skomplikowany, ale mam nadzieję że choć trochę go wyjaśniłem, na dole zostawiam screeny jak to u mnie wygląda (Nie działa). Z góry dzięki i pozdrawiam :D

1. https://zapodaj.net/0fe0a8ed15bd7.png.html

2. https://zapodaj.net/ad390a55915b4.png.html

3. https://zapodaj.net/efd98979e2e45.png.html

Edit:
W skrócie chcę zrobić system podnoszenia broni plus to że nie będzie występować "Camera Clipping", aby temu zapobiec dałem 2 warstwy jedna generująca broń a druga normalna generująca teren. Po przeniesieniu podniesionej broni do "Primary" cały czas jest generowana przez warstwę podstawową + PickUp, co powoduje przenikanie przez inne obiekty.. Pewnie jest wiele prostszych sposobów na zrobienie czegoś takiego, lecz mi już ręce opadają.. :lol:
GreQu
 
Posty: 16
Rejestracja: 07 Wrz 2020, 21:53
Has thanked: 0 time
Been thanked: 0 time

Re: Problem z systemem podnoszenia broni (Camera)

Postprzez Ether_141 » 29 Wrz 2020, 18:15

Nie wiem czy do konca o to chodzi, ale nie możesz po prostu przy podniesieniu i wyrzucaniu broni zmieniać jej warstwę na odpowiedną?
Awatar użytkownika
Ether_141
 
Posty: 524
Rejestracja: 29 Sie 2015, 11:47
Has thanked: 0 time
Been thanked: 0 time

Re: Problem z systemem podnoszenia broni (Camera)

Postprzez GreQu » 29 Wrz 2020, 18:32

A mógłbyś mi napisać w jaki sposób moge to zrobić? Dodam że muszę zmienić nie tylko broń lecz cały prefab, i wszystko co w nim jest, także nie zadziała tutaj gameObject.layer = 2; bo zmienia mi tylko warstwę prefaba
GreQu
 
Posty: 16
Rejestracja: 07 Wrz 2020, 21:53
Has thanked: 0 time
Been thanked: 0 time

Re: Problem z systemem podnoszenia broni (Camera)

Postprzez Ether_141 » 29 Wrz 2020, 20:09

No to rekurencyjnie zmień warstwę wszystkich dzieci obiektu.
Awatar użytkownika
Ether_141
 
Posty: 524
Rejestracja: 29 Sie 2015, 11:47
Has thanked: 0 time
Been thanked: 0 time

Re: Problem z systemem podnoszenia broni (Camera)

Postprzez GreQu » 29 Wrz 2020, 21:18

Mógłbyś mi to to napisać, lub trochę bardziej przybliżyć, szukałem tego cały czas i nie mogę znaleźć, najlepiej jakby było to pod void, to w tedy zrobię w skrypcie że za każdym razem kiedy podniosę cokolwiek przeniesie mi to w dłoń (To już mam) i nada inna warstwę
GreQu
 
Posty: 16
Rejestracja: 07 Wrz 2020, 21:53
Has thanked: 0 time
Been thanked: 0 time

Re: Problem z systemem podnoszenia broni (Camera)

Postprzez Ether_141 » 30 Wrz 2020, 19:58

https://stackoverflow.com/questions/379 ... in-unity3d

Jak wpiszesz w Google: unity get all children recursively to znajdziesz pare przykładów i sobie możesz z któregoś skorzystać.
Awatar użytkownika
Ether_141
 
Posty: 524
Rejestracja: 29 Sie 2015, 11:47
Has thanked: 0 time
Been thanked: 0 time

Re: Problem z systemem podnoszenia broni (Camera)

Postprzez GreQu » 01 Paź 2020, 21:07

Sorry że dopiero teraz odpisuję, jednak nie miałem czasu, dałoby się zrobić aby każdy niezależnie czy podniesiony czy przeniesiony obiekt do np. "Primary" automatycznie zmieniało mu warstwę wszystkich "dzieci"
GreQu
 
Posty: 16
Rejestracja: 07 Wrz 2020, 21:53
Has thanked: 0 time
Been thanked: 0 time

Re: Problem z systemem podnoszenia broni (Camera)

Postprzez Ether_141 » 01 Paź 2020, 22:09

To Ci napisałem przecież. Dwa posty wyźej masz jak zdobyć referencje do wszystkich dzieci danego obiektu. Potem wystrczy zrobić po nich pętlę i ustawić wybraną warstwę. Tyle. Chyba, że źle Cie rozumiem i masz gdzie indziej problem.
Awatar użytkownika
Ether_141
 
Posty: 524
Rejestracja: 29 Sie 2015, 11:47
Has thanked: 0 time
Been thanked: 0 time

Re: Problem z systemem podnoszenia broni (Camera)

Postprzez GreQu » 02 Paź 2020, 21:41

Udało mi się zrobic coś takiego:
Kod: Zaznacz wszystko
    public void ustawianiewarstwbroni(GameObject go, int layerNumber)
    {
        foreach (Transform trans in go.GetComponentsInChildren<Transform>(true))
        {
            trans.gameObject.layer = layerNumber;
            Debug.Log("Udalosiesprawdzw");



I odziwo działa, jest tylko jeden problem mogę tego voida wykonać tylko raz, także jak chcę podnieść drugą broń to już to nie działa i nie zmienia warstw, jest jakiś sposób na to?

Tu jest odniesienie do skryptu w skrypcie podnoszenia broni:
Kod: Zaznacz wszystko
                        Skryptzdlonmi.ustawianiewarstwbroni(Primary, 11);
GreQu
 
Posty: 16
Rejestracja: 07 Wrz 2020, 21:53
Has thanked: 0 time
Been thanked: 0 time

Re: Problem z systemem podnoszenia broni (Camera)

Postprzez Ether_141 » 02 Paź 2020, 22:22

Jak to możesz wykonać tylko raz? Moźesz wykonać ile razy chcesz, musisz tylko podać inną warstwę.
Awatar użytkownika
Ether_141
 
Posty: 524
Rejestracja: 29 Sie 2015, 11:47
Has thanked: 0 time
Been thanked: 0 time

Następna

Wróć do Wsparcie Unity

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 2 gości