Diskuze: Unity Engine a sfetovaný script (Unity)
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 16 zpráv z 16.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zkus se podívat, jestli jsi v Unity nevypnul Canvas, pod kterým je
ten Text, v tom případě možná aktivuješ ten text, ale ten
Canvas, kterého je dítětem / childem se
neaktivuje - proto nejde vidět.
A ještě poradím jednu dobrou praktiku, a to uchovávání Vector3 - vlastně
čehokoli, co se možná bude měnit v public proměnných, je
to přehlednější.
Canvas je aktivovaný proto mě právě taky zaujalo proč to nefunguje Snažím se uchovávat většinu nastavení v proměnných ale ty vectory jsem nechtěl uchovávat protože mi přišlo zbytečné přidávat další řádky kódu, kód je krátký a myslím že přehledný samozdřejmě že když tam budu dávat třídu o 90 řádcích tak to udělám přehlednější ale u tohoto ne...
Zkus gameover_text brát jako Text a ne jako
GameObject, nebo mě ještě tak napadá, že bys mohl zkusit
aktivovat ten Canvas, který bys defaultně dal disabled, s tím, že jeho
potomci by byli aktivovaní.
Pak bych ještě doporučil mrknout na tenhle kód, pokud bys to chtěl udělat
postupně a ne naráz.
// fades in and out
public IEnumerator AppearText(Text text)
{
StartCoroutine(FadeTextToFullAlpha(0.25f, text));
if (!isFading)
{
isFading = true;
yield return new WaitForSeconds(2f);
isFading = false;
StartCoroutine(FadeTextToZeroAlpha(0.25f, text));
}
}
// fades in
public IEnumerator FadeTextToFullAlpha(float t, Text i)
{
i.color = new Color(i.color.r, i.color.g, i.color.b, 0);
while (i.color.a < 1.0f)
{
i.color = new Color(i.color.r, i.color.g, i.color.b, i.color.a + (Time.deltaTime / t));
yield return null;
}
}
// fades out
public IEnumerator FadeTextToZeroAlpha(float t, Text i)
{
i.color = new Color(i.color.r, i.color.g, i.color.b, 1);
while (i.color.a > 0.0f)
{
i.color = new Color(i.color.r, i.color.g, i.color.b, i.color.a - (Time.deltaTime / t));
yield return null;
}
}
Už jsem asi našel problém.. Není to scriptem ale editorem v editoru je to vidět ale ve hře ne trošku jsem si s tím zkoušel pohrát ale nic
Aha tak to mě napadá asi jen podívat se, v jaké vrstvě se to vykresluje - jestli se například background nevykreslí "nad" tím textem.
To mě taky napadlo jen nevím kde to mám hledat
Vyřešeno bylo to špatným nastavením na screen space - camera ale i tak díky za pomoc
Učíš sa z originálnych tutoriálov ? Vedel by si mi vysvetliť podrobne čo znamená Rigidbody,RayCast,BoxCollider,Transform? Lebo po anglicky tomu nerozumiem uplne
Nejde říct o to že bych se učil já hledám cokoliv co by šlo použít v Manuálu (https://docs.unity3d.com/…l/index.html)... Rigidbody je třída na veškerou fyziku (gravitace, pohyby), s raycasty neumím ale jdou použít na vypočítávání vzdálenosti vzdušnou čarou, Boxcollider je collider což je třída co se stará o kolize a podobně (jde použít třeba na detekci kolizí) collider je jednoduše hranice objektu takže collider nemůže projít colliderem, transform se stará o pozice v prostoru rotaci a velikost
Tak teď mi to zas hlásí že je GameScriptHandler inactive ale je active tak..
collider nemůže projít colliderem = při nastavení collideru na trigger
to není pravda
Raycast = paprsek(přímka) z bodu do určitého směru na určitou
vzdálenost
Raycast(Vector3 origin, Vector3 direction, float maxDistance =
Mathf.Infinity, int layerMask = DefaultRaycastLayers,
QueryTriggerInteraction queryTriggerInteraction =
QueryTriggerInteraction.UseGlobal); , jako počáteční bod si
můžeš představit hlaveň zbraně a jako směr udat kam zbraň míří takže
Vector3.Forward, tato přímka sebou nese informace o objektu na který zrovna
míříš (vzdálenost, veškeré public vlastnosti a metody a případný bod
na objektu kam dopadá paprsek = třeba pro informace kde zobrazit díru po
kulce)
Jasně ale nebudu začátečníkovi vysvětlovat jak funguje trigger
To je podle mě chyba Jednou na to může doplatit, až se bude pídit po tom. Proč mu proboha GameObject nekoliduje s jiným když oba mají collider
Zobrazeno 16 zpráv z 16.