Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem unity - triggery

Ahoj, na internetu jsem našel jeden návod kde mám každý kousek trávy trigger (ve 2d scéně) kde se spouští animace pokud se na tom místě nachází hráč. Je to dobrý nápad když tý trávy bude hodně nebo bych měl dát kolider hráčovy kde by se zjištovalo čeho všeho se dotknul a podle toho by se spouštěli animace? https://youtu.be/C2wwxd8SnKY?t=307

Předmět Autor Datum
Je to dobrý nápad když tý trávy bude hodně Je to jedno, jen bych se při velké hustotě vyhl použití…
HPET 26.08.2020 12:38
HPET
Kdyz děláš tu trávu, tak ji pak můžeš duplikovat čímž nemusíš pro každou nastavovat colider Tu trá…
vaclaV02 26.08.2020 13:01
vaclaV02
Nemusíš ho dávat přes celou obrazovku. Stačí obdelnik přes tu trávu (nebo jen par bodů v akceptovate…
HPET 26.08.2020 13:09
HPET
hm, tak mi pošli odkaz.
vaclaV02 26.08.2020 13:36
vaclaV02
Format knih PDF : Unity3D & 2D • Unity 5.x 2D Game Development Blueprints • Unity 2D Game Develop… poslední
HPET 26.08.2020 13:53
HPET

Je to dobrý nápad když tý trávy bude hodně

Je to jedno, jen bych se při velké hustotě vyhl použití mesh colliders. Když děláš tu trávu, tak ji pak můžeš duplikovat čímž nemusíš pro každou nastavovat colider zvlášť (nebo spíš OnTrigger, který se volá, když colider vstoupí do spouštěče) díky dědičnosti .
(Nebo si vytvoříš jednu neviditelnou zónu OnTriggerEnter se používá s kinematickými nebo ne-kinematickými trigger tělesy k detekci toho, kdy jeden objekt vstoupil do jiného spouštěče).

nebo bych měl dát kolider hráčovy kde by se zjištovalo čeho všeho se dotknul

Hráč musí mít RigidBody i tak, jinak srážka (aktivace spuštěče /OnCollision*) nebude možná .
(Pokud je kolider toho objektu nastaven jako spouštěc, nemusi vylozene potřebovat trigger).

Kdyz děláš tu trávu, tak ji pak můžeš duplikovat čímž nemusíš pro každou nastavovat colider

Tu trávu udělám jednou jako asset to mi je jasný, ale i tak když dám do scény 100x trávu tak tam bude 100 trigerů.

(Nebo si vytvoříš jednu neviditelnou zónu OnTriggerEnter se používá s kinematickými nebo ne-kinematickými trigger tělesy k detekci toho, kdy jeden objekt vstoupil do jiného spouštěče).

nechápu jako že vytvořím box colider, dám ho přes celou obrazovku..., ale ten trigger se spouští jenom když něco vejde do kolideru a jakmile tam je tak už znovu při přesunování v něm nespustí.... nebo se pletu?

Nemusíš ho dávat přes celou obrazovku. Stačí obdelnik přes tu trávu (nebo jen par bodů v akceptovatelném rozestupu) . To co se bude dít při vstupu, nebo během toho když je objekt (hrač) v tom poli, záleží jen jak to upřesníš v kódu.
(jestli je té trávy hodně a nechceš aby se hýbala celá louka, můžeš to rozdělit třeba na 4 zóny ať to vypadá realističtěji)
Příklad, když hráč vstoupí do té zony a bude se v té zone nacházet , spustití animace přehrání nejakého waw (treba šustot travy) a tráva (sprite) se bude pohybovat do doby než tu zonu opustí . Teda jestli to správně chápu.
(můžeš si zapnout debug info o vytížení HW/memory, tak si to porovnej, ale ty kolizni body jsou v podstatě o proti mesh colider nenáročné ).

PS : Jestli ti nevadí angličtina, mohu ti dát odkaz na výbornou knihu na stahnuti o programování a tvorby 2D her na Unity3D. Angličtina stačí základ, stejně je to hodně obrázkové. Tak jako Blender který převážně používám pro tvorbu 2D/3D objektů a animací pro Unity. Škoda že Blender již oficiálně nepodporuje BG (Blender Game) který mi vyhovoval víc jak Unity3D pro programování her s API na Python.

Zpět do poradny Odpovědět na původní otázku Nahoru