Unity3D
  • #58
    Hali! Hát először is, én úgy kezdenék neki, hogy eldönteném, hogy az ablak mérete állítható e. Mert ennek fejében két megolást tudnék elképzelni:
    1. Az ablak stabil n*n méretű, ekkor könnyű dolgod van (grafikát gondolom meg tudod oldani, mert nem ez a kérdés), szépen bekéred a kattintás koordinátáit (Input.getMouseButtonDown (maga a katt) és Input.mousePosition (x és y koordináták)), aztán írsz egy függvényt, ami megkapja a koordinátákat (pl: calculateZone(int mouseX, int mouseY)). Ebben a függvényben eldöntjük, hogy hova is kattintott az illető. Mindezt úgy, hogy először is megnézzük, hogy az X-koordináta melyik tartományba esik (if (x<zona1x) oszlop = 1; elseif( zona1x < x && zona2x > x) oszlop=2; else oszlop = 3), aztán ugyanezt az X-koordinátával is. A végén pedig egy return Zona = (sor-1) * 3 + oszlop; (márha nem 0-tól kezded a számolást). És akkor meg tudod oldani, hogy pl: Zona = calculateZone(mouseX,mouseY);.
    A második eset, ha átméretezhező az ablak. Ugyanis itt relatív dolgokban gondolkozunk. Pl ha azt mondod, hogy a játéktér szélessége legyen ablakszélesség/6, és kezdődjön monjuk ablakszélesség/3-nál, akkor nyilván a zone1x nem konkrét pixel érték lesz, hanem kiszámolt (ablakszél/3 + ablakszél/6/3, mert az ablak kezdete, meg a 3 felé osztott ablak egy oszlopának szélessége). De a többi ugyan az.
    Remélem valamelyest érthető volt, és bocsi, ha mégsem :) Valamint hozzáteszem, hogy lehet más, jobb megoldás (mondjuk 9 Button-t felteszel, és kész), de megjelenítést tekintve számomra ez tűnik a legjobbak. :)