Diskuze: Unity - jeden script pro dva GameObjecty
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Ono to GameObject.Find prohledává celou scénu (všechny aktivní), takže vždy vrátí jen jeden objekt. Pokud chceš jen child, tak pak by mělo fungovat transform.find. Nebo můžeš tu Text komponentu přiřadit přímo v inspektoru.
public class Script : MonoBehaviour
{
[SerializeField]
private Text _textLabelText;
private void Start()
{
_textLabelText.text = "Nový text";
}
}
GameObject.Find(string menoObjektu) funguje tak, že prechádza hierarchiu (štruktúru) scény, až kým nenájde gameobject s menom menoObjektu.
Čiže v tvojom prípade prechádza metóda hierarchiu scény, nájde Player1, pod ním child gameobject s menom textLabel - voilá, má svoj výsledok a vráti ti ten jeden gameobject, ďalej už nehľadá.
Neviem, čo s tými textLabelmi plánuješ robiť a ako chceš, aby sa ti to správalo, ale to, čo chceš použiť je pravdepodobne GetComponentInChildren<Text>() v skripte, ktorý máš attachnutý ku hráčom. Tým sa úplne vyhneš medzikroku v podobe hľadania gameobjectov.
Mimochodom, hľadať gameobject (či dokonca viac gameobjectov, aj keď to sa ani nedá, ako si sám zistil) pomocou jeho mena je asi najhorší spôsob, aký môžeš využiť. Oveľa rýchlejšie je vyhľadávanie pomocou tagu (teda metódy FindWithTag pre jeden a FindGameObjectsWithTag pre viac objektov). Keď už, tak pre vyhľadávanie v child objektoch podľa mena je rýchlejší aj Transform.Find, ten aspoň neprehľadáva celú scénu, len potomkov tvojho objektu.
GameObject.Find
Diskusia ad Find vs FindWithTag
Transform.Find
Díky, nakonec jsem použil transform.Find a už to funguje. Jen mě zarazilo, že to hledá jen v přímých potomcích, ale poradil jsem si.
Zobrazeno 4 zpráv z 4.