Zrób coś czekaj i znów to zrób

Ogólne pytania na temat Unity3D

Zrób coś czekaj i znów to zrób

Postprzez Elendirn » 24 Wrz 2018, 14:18

Hej potrzebuję pomocy jestem na etapie AI przeciwników, zrobiłem coś prostego że boty gonią gracza gdy ten podejdzie zbyt blisko, jak są blisko atakują go, a jak gracz ucieknie za daleko to wracają na swój punkt startowy albo sobie po prostu stoją, jednak nie mam pomysłu aby przeciwnik atakował tzn. gdy podejdziemy zbyt blisko w konsoli pojawia się informacja że przeciwnik atakuje jednak powtarza się ona w nieskończoność, jak dam tak funkcję że zycie jest równe życie odjąć przez obrażenia przeciwnika to po prostu pasek zdrowia leci w dół, a chcę by zadał obrażenie, zaczekał z 2 sekundy i znów to zrobiłem. Próbowałem coś kombinować z WaitForSec, Loopami etc. ale nic mi nie wychodzi, a na necie nic nie znalazłem :(
"Mister Elendirn"
Elendirn
 
Posty: 70
Rejestracja: 26 Mar 2017, 15:06
Miejscowość: Szczębżkoszewiszyce powiat Łękołowy
Has thanked: 0 time
Been thanked: 0 time

Re: Zrób coś czekaj i znów to zrób

Postprzez Palanthir » 24 Wrz 2018, 16:44

Użyj coroutine.
Palanthir
 
Posty: 91
Rejestracja: 31 Sie 2017, 16:13
Has thanked: 0 time
Been thanked: 0 time

Re: Zrób coś czekaj i znów to zrób

Postprzez Elendirn » 24 Wrz 2018, 16:45

Właśnie próbowałem to robić i czekało 2 sekundy i wtedy pasek życia zjeżdżał w dół bez zatrzymywania się
"Mister Elendirn"
Elendirn
 
Posty: 70
Rejestracja: 26 Mar 2017, 15:06
Miejscowość: Szczębżkoszewiszyce powiat Łękołowy
Has thanked: 0 time
Been thanked: 0 time

Re: Zrób coś czekaj i znów to zrób

Postprzez Ether_141 » 24 Wrz 2018, 17:43

Odejmuj zdrowie w coroutine, a nie poza nią. Jeśli gracz jest w zasięgu botów no to odpalasz coroutine StartCoroutine(Nazwa()), a jak wychodzi z tego zasięgu to ją zatrzymujesz StopCoroutine(Nazwa()).
Awatar użytkownika
Ether_141
 
Posty: 382
Rejestracja: 29 Sie 2015, 11:47
Has thanked: 0 time
Been thanked: 0 time

Re: Zrób coś czekaj i znów to zrób

Postprzez Elendirn » 25 Wrz 2018, 14:58

Właśnie tak robię ale, no nie wiem jakby to wytłumaczyć, gdy dam Debug.Log("atacking") to powtarza mi to w nieskończoność nieważne czy courtine czy nie i pytam się czy istnieje jakaś komenda aby wyżej opisany Debug.Log po wykonaniu zatrzymać i wtedy czekać później znów to zrobić i znów czekać tak w pętli?
Ostatnio edytowany przez Elendirn 25 Wrz 2018, 15:21, edytowano w sumie 2 razy
"Mister Elendirn"
Elendirn
 
Posty: 70
Rejestracja: 26 Mar 2017, 15:06
Miejscowość: Szczębżkoszewiszyce powiat Łękołowy
Has thanked: 0 time
Been thanked: 0 time

Re: Zrób coś czekaj i znów to zrób

Postprzez Ether_141 » 25 Wrz 2018, 15:10

Tak istnieje. Coroutine. Może problem jest w odpalaniu coroutine? Może właczasz ją w Update? Pokaż jak wygląda coroutine i kod który ją uruchamia.
Awatar użytkownika
Ether_141
 
Posty: 382
Rejestracja: 29 Sie 2015, 11:47
Has thanked: 0 time
Been thanked: 0 time

Re: Zrób coś czekaj i znów to zrób

Postprzez dawid621 » 25 Wrz 2018, 15:17

W jaki sposób atakują te boty? Jeśli są animowane to zadawaj obrażenia na eventach w animacji.
dawid621
 
Posty: 179
Rejestracja: 07 Sie 2016, 18:52
Has thanked: 0 time
Been thanked: 0 time

Re: Zrób coś czekaj i znów to zrób

Postprzez Elendirn » 25 Wrz 2018, 15:21

okej nieważne zrobiłem to sam wystarczy było dać pod koniec boola i gdy aktywny to yield break; aby wysadzić skrypt
"Mister Elendirn"
Elendirn
 
Posty: 70
Rejestracja: 26 Mar 2017, 15:06
Miejscowość: Szczębżkoszewiszyce powiat Łękołowy
Has thanked: 0 time
Been thanked: 0 time


Wróć do Wsparcie Unity

Kto jest na forum

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

cron