Diskuze: unity 3D sebrání ammoboxu

Ostatní jazyky Ostatní programovací jazyky unity 3D sebrání ammoboxu

Avatar
tomekmichalhu:

dobrý den, snažím se vytvořit fps "hru". chtěl bych udělat, že pokud se hráč dotkne ammoBoxu, ammoBox zmizí a hráči se přičte 60 nábojů. problém je, že i když mám kód přesně podle dokumentace, ammoBox nemizí a náboje se nepřičítají. Tady je kód pro mizení ammoBoxu:

void OnCollisionEnter (Collision col)
{
if (col.gameObject.tag == "ammobox") {
Destroy(col.ga­meObject);
}
}

kód na přičtení munice zatím nemám

 
Odpovědět 15.8.2014 21:03
Avatar
MrPabloz
Člen
Avatar
MrPabloz:

zkus si to debugnout, jestli ti to vůbec skočí do té podmínky, nebo jestli se vůbec spustí daná funkce. Pokud obě projde, tak to ti s tím asi poradí někdo jiný :)

Nahoru Odpovědět 15.8.2014 21:08
Harmonie těla a duše, to je to, oč se snažím! :)
Avatar
Odpovídá na tomekmichalhu
Vojtěch Pospíchal:

Mělo by to být OnTriggerEnter. A v Collideru musíš mít zatržený trigger. A nepoužívej na to tag, zachvilku by jsi měl zadělanej celej projekt jen tagy. Na tohle slouží gameObject.name. V tvém případě tedy:

void OnTriggerEnter (Collision col)
{
   if (col.gameObject.name == "ammobox")
   {
      Destroy(col.gameObject);
   }
}

A SAKRA LIDI! Naučte už se konečně používat to tlačítko na vložení kódu!

Editováno 15.8.2014 21:19
 
Nahoru Odpovědět 15.8.2014 21:19
Avatar
tomekmichalhu:

bohužel ani OnTrigerEnter nepomohl, v konzoli se mi objevilo toto:

Script error: OnTriggerEnter
This message parameter has to be of type: Collider
The message will be ignored.

 
Nahoru Odpovědět 15.8.2014 21:43
Avatar
Odpovídá na tomekmichalhu
Vojtěch Pospíchal:

Další věc. Používej tlačítko odpovídat. + programuješ hry a nedokážeš vyřešit sám takhle primitivní error? Vždyť ti to píše co máš blbě! I když by jsi neuměl Anglicky a hodil si to do Google překladače tak ti to přeloží co máš opravit! Stačí přepsat parametr Collision na Collider

 
Nahoru Odpovědět  +1 15.8.2014 22:16
Avatar
tomekmichalhu:

no a pak mám ještě jeden dotaz. Mám ve scriptu shooter proměnou munice a potřebuju k ní přičíst 60 z jiného scriptu

 
Nahoru Odpovědět 16.8.2014 8:52
Avatar
Odpovídá na tomekmichalhu
Tomáš "CrashTest" Bitter:
ShooterScript shooter = GameObject.Find("Shooter").GetComponent<ShooterScript>();
shooter.Ammo += 60;
Nahoru Odpovědět 16.8.2014 9:48
Need for Steve
Avatar
Odpovídá na tomekmichalhu
Vojtěch Pospíchal:

Krucinál vykašli se na programování hry a jdi se učit základy. Takhle se to stejně nikdy nenaučíš, většinu času strávíš na Googlu nebo ptaním se na základy tady.

 
Nahoru Odpovědět  +1 16.8.2014 16:15
Avatar
Odpovídá na tomekmichalhu
Tomáš "CrashTest" Bitter:

Nebo jinak ... Když chceš programovat hry a zároveň opravdu programovat, tak zkus XNA nebo MonoGame, tam by jsi se mohl naučit i programovat ...

Nahoru Odpovědět  +1 16.8.2014 22:30
Need for Steve
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.