Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Neaktivní uživatel:13.6.2018 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.6.2018 15:34
Neaktivní uživatelský účet
Avatar
dez1nd
Člen
Avatar
dez1nd:24.8.2018 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
24.8.2018 7:51
Avatar
Neaktivní uživatel:10.9.2018 13:01

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

Nahoru Odpovědět
10.9.2018 13:01
Neaktivní uživatelský účet
Avatar
Martin Petrovaj
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Martin Petrovaj:10.9.2018 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.9.2018 13:11
if (this.motto == "") { throw new NotImplementedException(); }
Avatar
dez1nd
Člen
Avatar
Odpovídá na Neaktivní uživatel
dez1nd:10.9.2018 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.9.2018 14:08
Avatar
Neaktivní uživatel:10.9.2018 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.9.2018 15:05
Neaktivní uživatelský účet
Avatar
Martin Petrovaj
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Martin Petrovaj:10.9.2018 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
10.9.2018 15:22
if (this.motto == "") { throw new NotImplementedException(); }
Avatar
Neaktivní uživatel:12.9.2018 16:11

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

Nahoru Odpovědět
12.9.2018 16:11
Neaktivní uživatelský účet
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.