• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    BYDKUNITY 3D
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    MAIMONIDES: ja ti to do ksichtu reknu, opakovane a nekolikrat :)
    APH
    APH --- ---
    JAACOB: dovod je, ze builtin JSON serializer je ekvivalentny Unity serializacii (a.k.a. Inspector)
    na komunikaciu z vonkajsim svetom samozrejme nepouzitelne, a Newtonsoft svojho casu (a neni to tam oficialne doteraz AFAIK) nebol/nie je plne kompatibilny s AOT/IL2CPP - : patchol ho jeden developer a je na nasset store nieco ako cca 'Json.net 4 Unity', + github, kupil to potom od neho Google
    APH
    APH --- ---
    MAIMONIDES: a furt nejak number of fucks given == 0
    MAIMONIDES
    MAIMONIDES --- ---
    (dělal jsem v Unity)
    MAIMONIDES
    MAIMONIDES --- ---
    JAACOB: Stáhni si jejich eval verzi, prostuduj si jejich podrobnou dokumentaci(!), poptej se na foru na něco technickýho, prohlídni si ty tuny examplů a pak mi co jsi teď napsal pojď do očí zopakovat.
    JAACOB
    JAACOB --- ---
    SLASH: To, ze v Unitackem JSONu a vubec core serializaci jeste furt nejde resit Dictionary (kurva zakladni element JSON formatu!?) je donebevolajici a jenom nadavanim nad timhle faktem jsem utratil mozna i par hodin zivota a je mi smutno, kdyz si uvedomim, kolik clovekohodin v globalu tenhle nedostatek musel vsechny vyvojare stat. Ale priste budes vedet, ze je potreba bud pouzit jinou JSON knihovnu nebo to ohnout jinak. Nicmene jak MAIMONIDES psal - ve finale dobre investovany cas...

    Naopak ale MAIMONIDES hlaska mi pripada jako velmi subjektivni vyjadreni nazoru. Debatu kolem Uniginu uz jsme tady vedli, chapu, ze muze mit par veci vychytanych, komunitu nevyjimaje, ze jsi s nim szity a je ti sympatickej, ale konstatovani, ze ocekavat funkcnost od Unity je silenstvi - echt v okamziku, kdy vetsina herniho trhu na nem velmi dobre funguje a smerovat misto toho lidi v Unity auditku na engine, ktery pouziva hrsta fanboys je minimalne velmi zavadejici...
    MAIMONIDES
    MAIMONIDES --- ---
    SLASH: mobily nemá.. Pokud jsi na desktopu, je to levnější jak Unity kvůli produktivitě
    SLASH
    SLASH --- ---
    MAIMONIDES: kukol som sa na ten Unigine, vyzera to rozhodne zaujimavo, ale na tu moju hru by to bol overkill a to hodne predrazeny. Ja pracujem na niecom podobnom ako Matchington, alebo Gardenscapes / June's Journey.. Teda vsetko je 2D, v podstate ani nepotrebujem perspektivnu kameru, vascinou sa vsetko riesi cez UI elementy. A hlavne to ma byt Android apka, neviem ci ten Unigine vobec podporuje export do mobilnych formatov...
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    a mate na tom uniginu taky nejakou hru? a mohla bych ji videt? :)
    MAIMONIDES
    MAIMONIDES --- ---
    SLASH: Jestli chceš dělat něco pořádnýho, specializuj se na Unigine/.com/ a můžeš dát sbohem bandě casuálů, co předstíraj, že jsou vývojáři. A Newtonsoft je industry standard pro json.
    Používat ty nativní knihovny je podle mě nepříčetný a ostatně čekat, že cokoliv v Unity funguje a bude fungovat je definice šílenství.
    SLASH
    SLASH --- ---
    MAIMONIDES: No to je velice subjektivni si myslim :)
    Zaciatocnik som mozno v Unity (cca 2-3 mesiace v tejto novsej verzii a predtym nieco v starej), ale software development (frontend full stack) uz robim vyse 18 rokov.
    Mne nevadi hladat riesenia na nejaky problem kludne aj 4 hodiny, mne vadi hladat nezmyselne a zbytocne workaroundy na nieco co by MALO fungovat, a co je evidentn nejaka vada daneho software, ci kniznice.
    V tom danom pripade by sa to MALO dat urobit aj cez Json helper, alebo JSON utility za pomoci oznacenia typu ako
    Dictionary<string, ConfigVO>
    , ale proste to tak neslo ... za pouzitia standarnej JSON kniznice Unity.

    Napriklad dnes som tiez riesil podobny nedostatok Unity a to ze ToggleGroup je uplne useless ked chces dostat vsetky toggles cez ActiveToggles.. ten enumerator bol proste prazdny a musl som si napisat vlastnu implementaciu. Toto mi ale trvalo asi len 20 minut co je OK, ale v tom vcerajsom pripade som nemal taku moznost kedze napisat vlastny strongly type JSON deserialiser by my trvalo urcite viac ako tie 4 hodiny...
    MAIMONIDES
    MAIMONIDES --- ---
    SLASH: Jsi zjevně začátečník, tohle byly naopak velice dobře utracený hodiny.
    SLASH
    SLASH --- ---
    SLASH: Tak som to nakoniec vyriesil cez Newtonsoft.Json.Linq package takto:
            void ParseJson(string str)
            {
                var jsonObject = JObject.Parse(str);
    
                foreach (var item in jsonObject)
                {
                    var key = item.Key; 
                    var configObj = item.Value.ToObject<ConfigVO>();
                }
            }
    


    Simples! (actually ... 4 hours of my life wasted :D )
    SLASH
    SLASH --- ---
    SHIGORBIRDMAN: ahoj , dik za odpoved, skusal som to z viacerymi parsermi a viac type formatov napr:
    var test1 = JsonHelper.FromJsonString<Dictionary<string, ConfigVO>>(str);
    var test2 = JsonHelper.FromJsonString<List<ConfigVO>>(str);
    var test3 = JsonHelper.FromJsonString<HashSet<ConfigVO>>(str);
    var test4 = JsonHelper.FromJsonString<Hashtable>(str);
    

    Json helper je z balika RestClient od Proyecto26

    ale skusal som aj klasicku JsonUtility za UnityEngine:

    var test1 = JsonUtility.FromJson<Dictionary<string, ConfigVO>>(str);
    var test2 = JsonUtility.FromJson<List<ConfigVO>>(str);
    var test3 = JsonUtility.FromJson<HashSet<ConfigVO>>(str);
    var test4 = JsonUtility.FromJson<Hashtable>(str);
    
    stale mi to hadze NULL .. uz si trham vlasy, lebo s tym Dictionary<string, ConfigVO> by to fakt malo fungovat...
    
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    SLASH: s tim integrovanym unity parserem jsem toho moc nedelal, ale podle toho jak funguje bych cekal, ze musis mit Dictionary [ string,ConfigVO ] , ne list (protoze to by pak musel mit json jiny tvar)
    SLASH
    SLASH --- ---
    vedeli by ste niekto poradit ako parsnut JSON response do spravneho typu ktory je v takomto formate?
    {"A":{"hintDiabledDuration":10,"minutesPerLevel":100,"nightPowerUpDuration":12,"timePowerUpAdSeconds":30},"B":{"hintDiabledDuration":10,"minutesPerLevel":100,"nightPowerUpDuration":12,"timePowerUpAdSeconds":30}}

    vsetky tie vlastnosti pod A a B mam namapovane do class ConfigVO, ale neviem to spravne parsnut aby tam bolo aj A : ConfigVO aj B: ConfigVO..

    Skusal som to cez "root class" ktora by to mala ako List:
    [Serializable]
    public class HogMuseum
    {
        public List<ConfigVO> configs = new List<ConfigVO>();
    }
    

    a potom :
            public void GetConfig()
            {
                RestClient.Get(DB_URL + ".json").Then((res) =>
                {
                    var remoteConfigs = JsonHelper.FromJsonString<HogMuseum>(res.Text);
    
                }).Catch(err =>
                {
                    Debug.Log("ERROR "+err);
                });
            }
    


    nefunguje to tak spravne. Ked urobim request iba na samostany JSON obsiahnuty v A alebo B tak to sprane resolvne na ten ConfigVO, ale ako list ci array nie.

    Riesili ste to uz niekto?

    ROLAND
    ROLAND --- ---
    W3R: Ano, díky, jdu to právě zkoušet a experimentovat co mi to povolí. Jako mě to logo unity nevadí, jen bych se rád vyhnul co nejvíce obrazovek.
    W3R
    W3R --- ---
    JAACOB: to ze tam ta unity kostka ve free verzi musi byt plati, ale je mozny si tam uz prihodit i vlastni obrazek a lehce to barvit. ROLAND projdi si to linkovany PlayerSettings klikatko, sekce 'D' te zajima, je tam na to i editor preview, vidis to pak se vsim vsudy. aktualne to pak mam treba pod rukama takhle
    ROLAND
    ROLAND --- ---
    JAACOB: Ano je to tak, kamarád byl rychlejší.
    Ale díky za ten link nemusím to hledat.
    JAACOB
    JAACOB --- ---
    ROLAND: nejsem si jistej jak je to ted, ale mam za to, ze unity splashscreen je lockla pro free verze unity, v placenych si muzes splashscreen overridnout na co chces...

    A koukam, ze to tak asi je furt: https://docs.unity3d.com/Manual/class-PlayerSettingsSplashScreen.html
    Kliknutím sem můžete změnit nastavení reklam