Halloweenská akce! Na stránce s dobitím bodů zadej dole kód STRASIDELNYCH20 a získej porci +20% bodů zdarma!
Akce končí 31.10. o půlnoci.
Avatar
Dolpi
Člen
Avatar
Dolpi:13. června 15:34

Zdravím,
řeším tu další problém ohledně sprite. Jedná se o obdélnikový sprite, ve kterém je obrázek. (Samozřejmě bych v normálním případě odstranil obdélník a použil obrázek v něm, ale v tomto případě je zapotřebí celý sprite včetně obdélníka). Potřeboval bych, aby sprite reagoval ve chvíli, kdy na samotný obrázek najedu kurzorem myši, ale zbytek spritu na myš nereagoval. Jinými slovy potřebuji "aktivní" pouze část spritu. Děkuji za odpovědi.

Zkusil jsem: Trochu jsem si zkoušel pohrát ve sprite editoru, ale výsledek dělal něco úplně jiného než jsem chtěl.

 
Odpovědět 13. června 15:34
Avatar
dez1nd
Člen
Avatar
dez1nd:24. srpna 7:51

Co takhle sprite ve spritu jako child object ? nešlo by to takto ? Akci navážeš jen na potomka a mohlo by to jet jak potřebuješ.

 
Nahoru Odpovědět  +1 24. srpna 7:51
Avatar
Dolpi
Člen
Avatar
Dolpi:10. září 13:01

To není sprite ve spritu. Je to jeden sprite. Potřeboval bych "aktivní" jenom část spritu.

 
Nahoru Odpovědět 10. září 13:01
Avatar
Martin Petrovaj
Překladatel
Avatar
Odpovídá na Dolpi
Martin Petrovaj:10. září 13:11
  1. To, čo chceš mi nápadne pripomína nejaké "priestorové" UI. Prečo nepoužiješ canvas, ktorú nastavíš na world space?
  2. Ak nie, tak pokiaľ je kurzor myši vždy viazaný na stred obrazovky, nemôžeš to vyriešiť raycastom?
  3. Ak sa mýlim aj tak a ani jeden z bodov 1 a 2 ti nepomôže, čo zhruba by si chcel, aby ten sprite potom robil, ako má reagovať? Tvoj popis problému je veľmi všeobecný, ťažko sa hľadá vhodné riešenie.
Nahoru Odpovědět 10. září 13:11
if (this.motto == "") { throw new NotImplementedException(); }
Avatar
dez1nd
Člen
Avatar
Odpovídá na Dolpi
dez1nd:10. září 14:08

Jinými slovy potřebuji "aktivní" pouze část spritu.

Tak to udělej jak jsem psal já a máš to vyřešené. Jeden sprite jako pozadí, co nebude na nic reagovat, druhý sprite jako popředí, které bude reagovat na cokoliv.

 
Nahoru Odpovědět 10. září 14:08
Avatar
Dolpi
Člen
Avatar
Dolpi:10. září 15:05

Uvedu to na obrázku níže. Představte si, že celý ten obdélník je sprite o kterém se tu bavíme a já potřebuji, aby hra reagovala jen v případě, kdy hráč najede myší na červenou část spritu.

 
Nahoru Odpovědět 10. září 15:05
Avatar
Martin Petrovaj
Překladatel
Avatar
Odpovídá na Dolpi
Martin Petrovaj:10. září 15:22

Prečo to nevyriešiš raycastom, ak ti to niečo hovorí? Vytvoríš raycast z kamery (prípadne ak chceš raycastovať vyslovene cez kurzor, nie stred obrazovky, tak použiješ Camera.Screen­PointToRay(In­put.mousePosi­tion) ) a pokiaľ ten raycast zasiahne tú červenú oblasť, tak robíš čo chceš.

No a k samotnému problému ako detekovať, či si hitol červenú alebo čiernu časť - prikláňam sa k riešeniu používateľa dez1nd, a síce rozdeliť objekt na dva - osobitný objekt bude pozadie, osobitný tá červená, interaktívna časť (samozrejme im môžeš dať spoločného predka/rodiča, to je už na tebe). Jediné alternatívne riešenie je podľa mňa pracovať so súradnicami bodu v priestore, ktorý trafil raycast a výpočtom určiť jeho pozíciu na tom sprite (napr. či je už príliš ďaleko od stredu spritu na to, aby mohol byť v červenej oblasti a pod.).

Akceptované řešení
+20 Zkušeností
Řešení problému
Nahoru Odpovědět  +1 10. září 15:22
if (this.motto == "") { throw new NotImplementedException(); }
Avatar
Dolpi
Člen
Avatar
Dolpi:12. září 16:11

Už to jede, děkuju všem za pomoc.

 
Nahoru Odpovědět 12. září 16:11
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 8 zpráv z 8.