• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    BYDKUNITY 3D
    REDSNAKE
    REDSNAKE --- ---
    JAACOB: Dekuju za tip, tak ja bych si rad samozrejme vybral ten nejlepsi tutorial, jen jak jej poznat jako podzacatecnik
    JAACOB
    JAACOB --- ---
    Hele takhle z popisu ti nikdo neporadi, museli bysme videt minimalne zdrojaky. Kazdopadne podvesovat Spawnpoint nebo SceneManager pod playera je samosebou nesmysl. Jestli mas ale Debug.Logy ve SpawnPointu a SceneManageru, tak nemuzes cekat, ze ti bude neco vypisovat Player skript...

    Kazdopadne se mi teda moc ten tvuj tutorial nepozdava, nemusim moc frikulinske hiphoppery co to mastej. Jestli muzu doporucit, mrkni spis na jeden z techle channelu:
    https://www.youtube.com/playlist?list=PLPV2KyIb3jR53Jce9hP7G5xC4O9AgnOuL nebo https://www.youtube.com/playlist?list=PLPV2KyIb3jR6TFcFuzI2bB7TMNIIBpKMQ (celej Brackeys je gut - ma tam i begginer veci i advanced veci).
    How to Make a Unity Game - YouTube
    https://www.youtube.com/playlist?list=PLB5_EOMkLx_WCGalAUeKXA1I-qQqYY_Sk

    Nebo primo Unity tutorialy:
    https://learn.unity.com potazmo https://learn.unity.com/course/unity-basics

    Zacatek se neda ochcat a kdyz zacnes matlat veci podle spatnych rad, akorat nasbiras hromadu spatnych navyku...
    REDSNAKE
    REDSNAKE --- ---
    Zřejmě je to tím, že gameObject SpawnPoint(Místo pro respawn po spadnutí z plošinky) a SceneManager(Objekt se skripty pro odečítání zdraví, hlídání výšky na ose Y, atd) není součástí charakteru. Což o to, SceneManager můžu připnout na hráče a pak funguje script na odečítání zdraví a výšky na ose y i v dalším lvlu, nicméně pokud samozřejmě hierarchicky přiřadím pod charakter i SpawnPoint, tak ten se pohybuje s Charakterem, takže respawn pak sice funguje, ale charakter se respawnuje na nějaké nesmyslné souřadnice ovlivněné pádem a posunem SpawnPointu.

    Prostě, potřeboval bych zřejmě přiřadit charakteru GameObject SpawnPoint a nějak docílit toho, aby byl součástí charakteru, ale nepohyboval se spolu s ním.

    Nevíte jak na to prosím?
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    W3R: no pokud se vyslovene nudis, muzes se podivat na dekompilovane zdrojaky (a mam pocit, ze c# cast nakonec unity nekde dali na nahled, protoze jim to stejen vsichni dekompilovali :).
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    JAACOB: podedit imo jde, ale nebude se ti to hlasit jako pridatelna komponenta v editoru, protoze to se bere reflexi. (imo to asi jde, minimalne pro interni pluginy, pridat nekde do inicializace, jako pridatelny skript... a mozna by slo rucnim volanim AddComponent.) otazkou je proc taky.
    W3R
    W3R --- ---
    JAACOB: dik tohle jsem nenasel necet; i kdyz stejne bud nechapu co dela ten rozdil, nebo uz je to nekde v zone blackboxu kde se deje neco co nevidim. A tomu ze to driv slo i verim, protoze kdyz jsem cetl dokumentaci, dosel jsem k zaveru ze je to tak mysleny.

    A jj je to asi ciste zvedavost, MonoBehavioury me nijak neomezuji. Spis kdyz takhle na neco narazim co nechapu, pokud to neni uplne mimo moji uroven snazim se to rozstourat a treba se neco priucit.
    REDSNAKE
    REDSNAKE --- ---
    mimochodem, dokázal by mi někdo prosím objasnit jednu věc? Mám platformu - podlahu pro 2D skákačku. Ta má 2D box collider bez zaškrtnutého trigger. Mám enemy, což je prázdný objekt s box colliderem se zapnutým trigerem kvůli útoku postavy hráče, aby se registrovaly hity. Pokud nastavím enemy box collider 2D s triggerem enemy propadne plošinou. Pokud přiřadím současně objektu enemy box collider s triggerem, současně assetu enemy přiřadím další collider bez triggeru, tak vše funguje jak má. Jen mě zajímá jestli je to takhle správné řešení nebo mi něco uniká?
    JAACOB
    JAACOB --- ---
    W3R: Zajimavej dotaz, chvilku jsem nad tim ted s kolegou stravil. On mi dokonce tvrdil, ze ma za to, ze to v minulych verzich Unity slo (podedit primo z Component / Behaviour). Ja si nejsem uplne jistej, vybavuju si pouze iterovani po Componentach, ne primo dedeni z nich. Narazil jsem ale na jeden post, ktery se to rozumne snazi vysvetlit: https://answers.unity.com/questions/1428657/can-my-scripts-derive-from-behaviour-or-component.html

    Zajimalo by me taky, proc ses k tomu vubec dostal? Chtel jsi tim neco vyresit nebo je to ciste zvedavost?
    W3R
    W3R --- ---
    Mam jedno znalostni okno, kdybyste treba nekdo prosim vedel. A neni to zasadni, ale zajima me to a nevim vlastne spis jak patrat a to nepochopeni si doplnit

    Na zaklade ceho se uniti interni komponenty nabizi jakozto pridatelne v Inspectoru? Nejsou to MonoBehaviory (ted myslim treba collidery nebo rigidbody), jsou odvozene od tridy Component od ktere bych cekal prave to (MonoBehaviour je od ni odvozen tez), ale pokud mam vlastni tridu implementujici Component, pridat jako komponenta nejde
    REDSNAKE
    REDSNAKE --- ---
    JAACOB: Dik, bylo to vskutku tak. Vcera se mi povedlo za pomoci Omnislah dopracovat k tomu samemu zaveru. Vtip byl v tom, ze kdyz jsem pridaval layer objektu enemy, zeptalo se me to zda chci layer enemy priradit i vsem dcerinnym objektum toho objektu. Ve vysledku se tedy vrstva enemy priradila i assetu a to zpusobovalo problemy, protoze asset nemel prideleny script enemy atd.

    Ano, fakt zacinam, teprv si prochazim nejake zacatecnicke tutorialy na c#, takze sotva chapu syntax a dalsi souvislosti, nicmene z yt tutorialu se to da nahazet do unity a zjistit jeee ono to funguje a to je pro me velky hnaci motor.

    Diky za tipy, myslim ze na takovy optimalizace mam jeste spoustu casu. Urcite si chci zkouknout i dalsi tutorialy na collidery, rigidbody a dalsi a jak urcite sam vis, je to casove narocne a zacal jsem s tim v patek.
    JAACOB
    JAACOB --- ---
    REDSNAKE: Kdybych si mel tipnout, mas nejakej bordel v layerech. Over si, ze whatIsEnemies layer mask odpovida enemacum a ze jen a pouze enemaci maji nastaveny tenhle layer, ale nezapomnel jsi ho na jinem gameobjektu. Abys zjistil, presneji kde je problem, prepis si vnitrek toho for cyklu v updatu takhle:

    var enemyCollider = enemiesToDamage[i];
    var enemy = enemyCollider.GetComponent<Enemy>();
    if (enemy == null)
    {
    Debug.LogError("Tenhle objekt nema spravne nastavenej enemy layer: " + enemyCollider.gameObject.name, enemyCollider.gameObject);
    continue;
    }
    enemy.health -= damage;
    /*shake cam a animace utoku*/
    shake.CamShake();
    Instantiate(bloodEffect, transform.position, Quaternion.identity);
    Debug.Log("Cakance krve!!!!!!");

    Beru to tak, ze se fakt ucis zaklady, ale mam tu pro tebe nejake tipy do budoucna:

    Jednak teda neni moc dobry v updatu volat GetComponent<> funkce - jsou pomale. Je o dost lepsi mit enemace cachle v nejakem globalnim listu nebo podobne (ackoliv v tomhle workflow ti to moc nepomuze).

    Takze druhy tip kolem workflow s kolizema - je lepsi nastavit kolizni layery primo v settings (Edit -> Project settings -> Physics). Tam si zadefinujes, ze maji spolu kolidovat treba strely a enemies, pak na gameobjekty strel a enemacu nahazis collidery a Rigidbody2D, budes posouvat vsema objektama jen pres Rigidbody2D (ApplyForce?), protoze to zajistuje spravne fungovani fyziky (a potazmo kolizi) a pak na monobehaviours budes pouzivat OnCollisionEnter2D metodu, ktera ti vystreli automaticky, kdyz dojde ke kolizi mezi nastavenyma koliznima vrstvama.

    Byt tebou, probehnu si nejake tutorialy na Rigidbody(2D?) a collidery + spravny workflow s nima...
    REDSNAKE
    REDSNAKE --- ---
    Mám script kdy player útočí stiskem space a enemy dostává - health. Funguje mi to dost random. Občas to zaregistruje jeden hit, většinou žádný a někdy tři :D
    Random by to být ovšem nemělo, damage je nastaven na 1.

    Script přikládám v příloze, koukám do toho už delší dobu a fakt už nevím.
    Chybová hláška z unity je :"NullReferenceException: Object reference not set to an instance of an object
    PlayerAttack.Update () (at Assets/Scripts/PlayerAttack.cs:30)"

    Nevím si s tím rady, tak kdyby někdo tušil, rád si nechám poradit.

    BYDK
    BYDK --- ---
    JAACOB: AHoj, akorat jsem to chtel postnout. :) Jsou tam bezva veci.
    JAACOB
    JAACOB --- ---
    Jinak uz na Unity YT pribyvaji videa z prednasek (rekordne rychle letos): https://www.youtube.com/playlist?list=PLX2vGYjWbI0RzLRaqsqcgnuc2RvLPTUmi

    A taky je zrovna na humblebundlu docela zajimavej package assetu:
    Humble Unity Bundle 2019 (pay what you want and help charity)
    https://www.humblebundle.com/software/unity-2019-bundle
    REDSNAKE
    REDSNAKE --- ---
    Už to fachčí,dík:)
    REDSNAKE
    REDSNAKE --- ---
    W3R: Dík, už to vidím. Teď pro změnu dostávám jinou chybu :D


    W3R
    W3R --- ---
    podle nahledu vpravo, Setbool > SetBool?
    W3R
    W3R --- ---
    REDSNAKE: v konzoli, AnimControl 26
    REDSNAKE
    REDSNAKE --- ---
    W3R: bohužel mě to neodkazuje na konkrétní řádek.

    Kliknutím sem můžete změnit nastavení reklam