Aktywne Wpisy

bartlomiej_rakowski +747
Noo i to by było na tyle z dzisiejszych testów xD Sorry, że Was zawiodłem Szanowne Państwo, kochani moi. Zapytałem obsługę co jest pięć i powiedzieli, że dziś lepiej tego nie robić (uprzedziłem, że mam 3 wory butelek) bo sami jeszcze nie wiedzą i mają wytycznych jak postępować z butelkami bez znaku kaucji i dlatego też realizacja bonów jest utrudniona (naklejona kartka pic rel) - czyli pokrywa się to z tym co
źródło: Zdjęcie z biblioteki
Pobierz
bartlomiej_rakowski +264
Update wpisu. Ja już załadowany po dach, cały tył z*!£%&$y butelkami wzdłuż i wszerz xD Około 21 odjazd.
#kaucja #systemkaucyjny #butelki #butelkizwrotne #butelkipet
#kaucja #systemkaucyjny #butelki #butelkizwrotne #butelkipet
źródło: Zdjęcie z biblioteki
Pobierz




Mamy te trzy stany started, performed i canceled. Pierwszy i trzeci, spoko, prostota. Ale performed, a szczególnie, żeby zrobić stan "hold" z interakcji to jakaś czarna magia.
Performed wykonuje się razem ze started. Jaki jest tego sens?
Ustawienie w "interactions" press point lub hold na więcej niż 1 powoduje, że wciśnięcie przycisku nic nie robi. Mimo, że jest napisane wprost, że to jest wartość w sekundach. Dodatkowo można tam przesunąć albo wpisać wartość na minusie. WTF?
Wyszukałem w końcu jak rzekomo sprawdzić stan hold, tj.
if (context.interaction is HoldInteraction){
Debug.Log(context.interaction);
}
I zwraca true w każdym stanie tj. started, performed i canceled. WTF?
To jest tak zbugowane czy ja czegoś nie rozumiem? Bo co chcę zrobić:
controls.Gameplay.Jump.started += OnJump;controls.Gameplay.Jump.performed += OnJump;
controls.Gameplay.Jump.canceled += OnJump;
private void OnJump(InputAction.CallbackContext context)
{
int value = Convert.ToInt32(context.ReadValue());
if (context.interaction is HoldInteraction)
{
jumpInputEvent.Invoke(value, true);
}
else
jumpInputEvent.Invoke(value, false);
// wcześniej próbowane przez phase, no, ale performed robi tuż za startem:
if (context.phase == InputActionPhase.Performed)
{
jumpInputEvent.Invoke(value, true);
}
else
jumpInputEvent.Invoke(value, false);
}
I jak można się domyślać co bym nie robił to przekazuje wartość true. Wszystko związane z ruchem postaci mam zrobione za pomocą started i canceled, gdzie hold jest do momentu wejścia canceled. Ale w tym jednym przypadku potrzebuje hold przez określony czas nim tym holdem się stanie
#unity3d
When listening for control input and when responding to control value changes, actions will go through several possible phases.
In general, when an action starts receiving input, it will go to Started and when it stops receiving input, it will go to Canceled. When Performed is used depends primarily on the type of action. Value will trigger Performed whenever the value of the control changes (including the first time; i.e.
Chyba, że źle rozumiem ten fragment. To jest, wydaje mi się, że powinno aktywować, gdy w interactions przekroczony zostanie czas ustawiony w "hold time". Tymczasem zachowuje się tak jak z opisem "value'
@DanteTooMayCry: wydaje mi się że chodzi o poziom wcisnięcia(np trigger w padzie), ale nie używałem tego nigdy. Tutaj ludzie zgłaszają że hold nie działa jak powinien
https://forum.unity.com/threads/new-input-system-hold-interaction-doesnt-reset.959988/
No to bug unity. Ale to hold, a czemu performed przy button wykonuje się za started?
xD
Olałem to już wczoraj kompletnie. Teraz mi wpadło jak jeszcze mogę spróbować. Odpalam. Wpierw testuje czy wczoraj nie pozostawiłem czegoś zepsutego i... zonk. Performed włącza się tylko wtedy kiedy
źródło: comment_1620991596zd6eOCpbvOlm0h4H8eRm5I.gif
Pobierz