Zagadki

Programowanie w Unity.

Zagadki

Postprzez piekarz432 » 05 Sty 2017, 22:31

Witam
Czy mógłby mi ktoś podpowiedzieć jak to ugryźć?
Chce zrobić zagadkę(czyli gracz musi wejść w dane obiekty w takiej kolejności jaka ja wcześniej ustalę jeśli to zrobi to przechodzi dalej jeżeli nie to nie)
piekarz432
 
Posty: 24
Rejestracja: 15 Gru 2014, 17:07
Has thanked: 0 time
Been thanked: 0 time

Re: Zagadki

Postprzez Marcin » 05 Sty 2017, 23:09

Za mało szczegółów. Co to są za obiekty? Jest to gra 2D/3D? Możesz ustawić triggery na tych obiektach i w jakimś kontrolerze ustawić kolejność, w jakiej gracz musi wejść w te obiekty. Potem tylko sprawdzasz, czy gracz przeszedł przez nie w poprawnej kolejności i na koniec coś robisz (otwierasz drzwi czy co tam innego).
Marcin
 
Posty: 185
Rejestracja: 25 Lip 2016, 10:44
Has thanked: 0 time
Been thanked: 0 time

Re: Zagadki

Postprzez piekarz432 » 06 Sty 2017, 08:56

Marcin napisał(a):Za mało szczegółów. Co to są za obiekty? Jest to gra 2D/3D? Możesz ustawić triggery na tych obiektach i w jakimś kontrolerze ustawić kolejność, w jakiej gracz musi wejść w te obiekty. Potem tylko sprawdzasz, czy gracz przeszedł przez nie w poprawnej kolejności i na koniec coś robisz (otwierasz drzwi czy co tam innego).

Tak właśnie o to mi chodzi ale jak później sprawdzić ta kolejność?
piekarz432
 
Posty: 24
Rejestracja: 15 Gru 2014, 17:07
Has thanked: 0 time
Been thanked: 0 time

Re: Zagadki

Postprzez Marcin » 06 Sty 2017, 10:12

Zrób sobie w kontrolerze listę na kolejne triggery. To będzie Twoja poprawna kolejność. Możesz stworzyć klasę np. PathPassQuestTriggerObject, która będzie wysyłać do kontrolera informację, gdy gracz wejdzie w trigger. W sumie zwykły komponent, w którym implementujesz metodę "OnTriggerEnter(Collision collision)". W momencie wejścia w trigger sprawdzasz, czy dany obiekt, to gracz (np. wyszukując komponent PlayerController czy jaki inny masz). Jeżeli to gracz, to na obiekcie kontrolera wywołujesz metodę "NotifyPathObjectVisited(PathPassQuestObjectTrigger pathObject)". Dodajesz odwiedzony element do nowej listy (po prostu inna niż Twoja wzorcowa lista z poprawną kolejnością) i sprawdzasz, czy kolejność w tej liście zgadza się z kolejnością w liście wzorcowej. Jeżeli gracz przejdzie przez wszystkie obiekty w poprawnej kolejności, to obie te listy będą się zgadzać. Wtedy możesz otworzyć drzwi czy zrobić cokolwiek innego. To, jak chcesz reagować na złą kolejność zależy od Ciebie. Czy to na końcu, czy od razu po wykryciu złej kolejności. Czy gracz może wejść w dany obiekt więcej niż raz? Z tego co napisałeś, to trudno wywnioskować, jaki jest scenariusz tego elementu rozgrywki, więc nic więcej nie doradzę na razie.
Marcin
 
Posty: 185
Rejestracja: 25 Lip 2016, 10:44
Has thanked: 0 time
Been thanked: 0 time

Re: Zagadki

Postprzez piekarz432 » 06 Sty 2017, 10:30

Marcin napisał(a):Zrób sobie w kontrolerze listę na kolejne triggery. To będzie Twoja poprawna kolejność. Możesz stworzyć klasę np. PathPassQuestTriggerObject, która będzie wysyłać do kontrolera informację, gdy gracz wejdzie w trigger. W sumie zwykły komponent, w którym implementujesz metodę "OnTriggerEnter(Collision collision)". W momencie wejścia w trigger sprawdzasz, czy dany obiekt, to gracz (np. wyszukując komponent PlayerController czy jaki inny masz). Jeżeli to gracz, to na obiekcie kontrolera wywołujesz metodę "NotifyPathObjectVisited(PathPassQuestObjectTrigger pathObject)". Dodajesz odwiedzony element do nowej listy (po prostu inna niż Twoja wzorcowa lista z poprawną kolejnością) i sprawdzasz, czy kolejność w tej liście zgadza się z kolejnością w liście wzorcowej. Jeżeli gracz przejdzie przez wszystkie obiekty w poprawnej kolejności, to obie te listy będą się zgadzać. Wtedy możesz otworzyć drzwi czy zrobić cokolwiek innego. To, jak chcesz reagować na złą kolejność zależy od Ciebie. Czy to na końcu, czy od razu po wykryciu złej kolejności. Czy gracz może wejść w dany obiekt więcej niż raz? Z tego co napisałeś, to trudno wywnioskować, jaki jest scenariusz tego elementu rozgrywki, więc nic więcej nie doradzę na razie.

Dzięki kolego bardzo mi pomogles
piekarz432
 
Posty: 24
Rejestracja: 15 Gru 2014, 17:07
Has thanked: 0 time
Been thanked: 0 time


Wróć do Skrypty

Kto jest na forum

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