76
Unity3D
  • AlekGavaj
    #76
    Most jobban megnéztem editorban, sajnos a kész scriptet nem nyitja meg, csak magának a scriptnek úgymond a c# sablonját, hogy miként épül fel pl a playerprefs set script. De ami számokat és változókat beleraktam, azt már nem jeleníti meg.
  • Jim Morrison
    #75
    igazából ha pár screent esetleg tudnál dobni a logikáról az lehet segitene. akár ha a mentés részét megnyitod (editorban, hogy a tényleges kód látszódjon), lehet tudnék egy picit többet segiiteni (és ide beilleszted code blockba)
  • AlekGavaj
    #74
    Igazából a végén már 2 tutorial alapján is megcsináltam, úgy se működik rendesen:( nyilván nálam van valami gond csak egyszerűen nem találom a hibát. Int switchet én is használok, ahogy jönnek sorban a pályák, mindegyikhez egyel nagyobb értéket adok, majd a set int-tel erre az értékre tárolom. Lehet, az lesz a megoldás, hogy csinálok egy teljesen új scenet, arra pakolok egy új scriptet és ha úgy működik akkor azt alakítom át a level selectoromra.
  • Jim Morrison
    #73
    akár ránézhetünk screensheren, de:
    Ha sima int-ként tárolod és minden pálya végigjátszás után átállitod akkor ott a bibi, mert ha egyszer már beállitod 4-re, majd 2-re, akkor jó hogy a másik kettőt nem veszi figyelembe.
    szóval úgy tűnik a második pont amit irtam áll fent.
    https://hutonggames.fogbugz.com/default.asp?W1226
    itt is van elágazás. Próbáld meg, hogy csak akkor állitod be a változó értékét (mondjuk kettőre), ha a változó értéke kisebb annál.
    Ahogy látom van valami int compare, lehet azzal kell próbálkoznod (csak beletekertem egy tutorialba)
  • AlekGavaj
    #72
    Hú, köszi a választ:) Int. változóban tárolom. Mikor már nem volt semmi ötletem, akkor megnéztem pár tutorialt és elvileg azok alapján is működnie kéne, egyszerűen nem tudok rájönni, hogy mi lehet a gond. Eleinte fel se tűnt, örültem, hogy működik a mentés, aztán újrajátszottam az első pályát és akkor szembesültem a problémával. Azt már megszoktam, hogy ez egy olyan terület, ahol egyik probléma követi a másikat, de ez most eléggé megfogott. Én meg sajnos a programozáshoz nem értek annyira, bár a playmaker scripteket meg lehet nyitni visual studioban és ott C# kóddal hozza le.
  • Jim Morrison
    #71
    hali
    Sajnos nem ismerem playmmakert, csak programozás szempontból tudok vakon tippeket adni:
    - rossz a mentési logika: unlockolt pályákat felüliirod, ahelyett, hogy hozzáadnád a listához ha nem létezik (nem is tudom milyen adattipusban tárolod ezeket)
    - esetleg ha azt nézed, mely pályák vannak unlockolva, ahol csak egy szám van (pl 4), akkor meg akkor nem kéne felüliirni mentéskor ha a már letárolt érték nagyobb mint az éppen letárolni kivánt szám (2)
    Utoljára szerkesztette: Jim Morrison, 2021.10.11. 22:28:43
  • AlekGavaj
    #70
    Sziasztok!
    Látom, nem ma volt az utolsó hozzászólás, de azért teszek egy próbát, hátha erre téved valaki:)
    Szóval, Playmakerrel készítek egy SkyRoads-ra hajazó játékot, lényeg, hogy playerprefs set/get-et használok a pályák mentésére. Egyelőre az első 4 pályát lehet unlockolni, ami működik is rendesen, el is menti, tehát ha kilépek a játékból és vissza, akkor unlockolva maradnak. Viszont, ha az első pályát ismét végigjátszom, akkor visszalockolja a 3. és 4. pályákat, mintha felülírná az előző mentéseket. A 2. unlockolva marad, mivel ugye az a következő pálya. Esetleg valakinek van erre valami ötlete, hogy mi lehet a hiba? Elég sok mindent próbáltam és külföldi fórumokra is írtam, de eddig nem sikerült megoldani.
    Előre is köszönöm! :)
  • Palinko
    #69
    Sajnos ez később is fent fog állni sok út vezethet hasonló kinézetű dolgokhoz. Elég frusztráló tud lenni. FPS függővé tenni tényleg rossz ötlet úgy semmiképp ne oldd meg.
  • repvez
    #68
    köszi, megprobálgattam és ez alapján kerstem is uj infókat, de csak még jobban összezavartak. Mert találtam egy olyan videot, ami bemutatja, hogy ugyan azt a mozgást 5 féle képpen lehet megoldani, de mindegyik más eredményt okoz.
    Igy ha kiválaszt egy fajtát az ember akkor az lehet , hogy nem a megfelelö arra ami ahhoz kell amit tényleg akar csinálni, visztont mikor megcsinálja, meg kiderül, hogy a következő miatt a 3. lett volna a jó választás.
    Gondolok itt a rigid body, transform dolgokra.
    A transform verzióval is megoldható a test mozgatásaa ( a legtöbb videoban ezt láttam) viszont ez nem a legjobb ha fizikai üközésekre is akarom használni.


    Nekem olyanhoz kellene, hogy a mozgást befolyásolo erők ne elöre fixen megadott értélkek és ne a frekvencia frissités fugvényébe változzanak hanem mindegyik adatot egy képlet eredménye adja
  • Palinko
    #67
    Alapból méterben van az unit beteszel egy 1x1x1 es kockát és importálsz a modellező programból egyet szintén 1x1x1 es méterben és látod hogy ugyanakkora-e, hanem akkor megnézed mennyivel kell csökkenteni és növelni és azt használod az fxb importnál szorzóhoz, edit project settingsben amúgy állítgathatsz. A height map szerintem itt nem használható olyan dolgokra hogy most bumm a síkból hegyet varázsolok, mert sokkal kisebb eltérésre van belőve mint pl egy téglás falban az eltérések.

    Transform.position meg Transform.localPosition
  • repvez
    #66
    üdv!
    Látom nem nagyon pörög itt a topic , de azért teszek egy probát,
    Esetleg ha valaki tud olyan magyar helyet ahol nagyobb mozgás van az se lenne rossz.
    Szóval még nagyon az elején vagyok csak pár napja próbálgatom.
    A lényeges kérdéseim, az lenne, hogy lehet beállitani, hogy a valós mértékegységekkel lehessen számolni? távolság sebesség tömeg stb..
    Leszedtem height mapot , de hiába csoinálom meg amit kell, nem rajzolja ki azt a domborzatot és nem is lesz olyan nagy és magas mint kellene lennie,

    A másik, hogy a scripelésnél , hogyan tudom megkülönböztetni, hogy mi hasson a test kordináta rendszeréhez és mi a világihoz?
  • RYO21
    #65
    A Unity kezelőfelületén lévő szövegek méretét lehet valahol növelni? Nagyon apróak a szövegek, és már kezd fájni tőle a szemem.
  • Cashew
    #64
    Elakadtam és a Google bonyolult magyarázatokat ad számomra...:(
    Van ez a tutorial-sorozat: Tutorial
    A 009 videoban van egy generikus lista sorbarendezo metodus:

    private void SortTargetsByDistance()
    {
    targets.Sort(delegate(Transform t1, Transform t2)
    {return Vector3.Distance(t1.position, myTransform.position).CompareTo(Vector3.Distance(t2.position, myTransform.position));}
    );

    Ezt nem értem: delegate(Transform t1, Transform t2).
    Miért használ delegate-et? Rámutat a generikus lista objektumaira? Mi történik lépésről lépésre?
    A szakirodalmak amiket eddig olvastam nem adtak választ/nem mélyedtek bele ennyire,
    de ezt pl. értem (érteni vélem): C# – Metódusreferencia

    Autodidakta C#/Unity műkedvelő vagyok, valaki megtenné hogy elmagyarázza mi történik a fenti sorok futásakor?
    (Nem ismerem a C++ -t igy a "mutató aritmetika" -ról csak C# tanulás közben olvastam... )
    Köszönöm előre is!
  • sirpalee
    #63
    Erre kismillió megoldás van... Odarakhatsz egy prefabot a kattintástól függően a megfelelő helyre.
  • Norbi779
    #62
    Köszönöm, ezzel sikerült megcsinálnom, csak most egy másik résznél akadtam el. Amelyik részhez kattint oda egy png képet kell beilleszteni, ez az X vagy O lenne. Keresgélek a neten, de egyenlőre még nem találtam semmit.
  • sirpalee
    #61
    Szerintem rossz megközelítés.

    OnMouseDown

    Hozzá kell adni egy collidert, és azonnal van event az egér kattintás kezelésére, és nem kell feltalálni megint a spanyol viaszt.
  • Norbi779
    #60
    Köszönöm a segítséget, majd holnap megpróbálom. :)
  • #59
    Hajaj, most végigolvastam, amit írtam:D Bocsánat az össze-visszaságért, csak így egyetem + meló kombó után kivan az agyam :) De ha bármi nem világos, kérdezz nyugodtan :)
  • #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. :)
  • Norbi779
    #57
    Hali. Egy egyszerű játékot szeretnék készíteni, és ez az amőba. Még régebben megcsináltam azt hiszem Visual C++ -ban. Most unity-ben szeretném, de egyik részét nem tudom megcsinálni. Ebben kéne segítség. Úgy gondoltam, hogy lenne 9 'zóna', mert 3x3 a pálya. és ha ezekbe kattintanák akkor vagy X vagy O -t rakna le. És ezt a zónás dolgot meg lehet valósítani? Vagy van jobb megoldás?
  • Jim Morrison
    #56
    Gameloftos játékok tényleg unityvel készültek? Néztem unity oldalát, van jó pár játék amit ezzel készítettek, de erről nem találtam infót, valaki mondta szerintem régebben/hallottam.
  • sirpalee
    #55
    A részletes leírás ellenére érdemes utánanézned, két dolog miatt is. (meg úgy általában mindennek)
    1, ezek lehet vagy régi infók, vagy rosszul emlékszem valamire.
    2, sose fogadd el a fórumon leírt infókat, max kiindulópontnak.

    Egyébként unity erre pont jó és emiatt szeretik sokan, gyors prototípusokat össze lehet hányni benne, aztán majd megcsinálod rendesen.
  • Jim Morrison
    #54
    jövünk! ^^
  • #53
    Fú, köszönöm nektek! Ez a részletes leírás tisztázta nálam az egészet. Akkor marad az, hogy amíg nem érek el egy alpha kiadható verziót, addig nem is teszem fel nagyobb oldalakra. Plusz majd akkor próbálok beszervezni egy-két tagot a projektbe, mert pl a 3D modellezéshez csak egy minimális szinten értek (még), és van ismerősöm, aki nagyon tud, csak őt is akkor merem megkérni, ha már a játék mechanizmusa közel vállalható formátumú lesz. Tudom, hogy sok energia és idő kell hozzá, nem hónapok kérdése, hogy eljussak valameddig. De amíg bírom lelkesedéssel, addig csinálom :)

    Ha tesztelésre kerül a sor, és érdekel titeket a játék, akkor szívesen várlak majd bétateszterként! :D
  • sirpalee
    #52
    Early access más. Ott már játszható játékkal illik indítani, különben pillanatok alatt szétszedik. Nem beszélve arról, hogy csak úgy nem küldhetsz be oda semmit sem. Megjegyzem, egy-két játék elég rossz állapotban került ki early access-re, szóval nagyon ingadozó a szint. A legtöbb odakerülő általában már túlvan egy sikeres kickstarter kampányon.

    Greenlight, ha be akarsz küldeni egy játékot steamre nem úgy megy mint régen, hogy írsz levelet a steameseknek, akik nem is válaszolnak, hanem greenlightra küldöd a játékot és a community dönt. Ez sem előfinanszírozásra van. Ide csak lepengetsz száz dolcsit (asszem, de hasonlóan minimális összeg), aztán beküldhetsz bármit is.

    Senem kickstarternél, senem indiegogonál figyelnek az emberek, hogy tényleg arra használod-e a pénzed amire kell. Megkapod, leadózod, utána csak a te lelkiismereteden (vagy hírneveden) múlik befejezed-e.

    Indiegogon van egy maximális időtartam amire lehet beküldeni projectet (talán 60 nap), két finanszírozási forma van, az egyik mikor csak akkor kapod meg a pénzt, ha a cél összejön, a másiknál pedig bármekkora összeget átutalnak. (nyilván ésszerű keretek között) Kickstarteren csak a fix megoldás van, amíg nem éred el a minimumot, addig nem kapsz pénzt.

    Megnéztem a projected, és egyelőre inkább arra kéne koncentrálni, mint kickstarteren agyalni. (vagy egy másikra a 3 közül, egyedül csak szétforgácsolod magad meló mellett - hidd el tudom milyen ez) Pl ez volt egy magyar próbálkozás kickstarteren, be is bukott nagyon csúnyán.

    http://www.kickstarter.com/projects/1608554263/aterra

    Ők is magyarok voltak, nekik sikerült, de épphogycsak. De jól mutatja a minimumot, amivel érdemes indulni.

    http://www.kickstarter.com/projects/balconyteam/balrum

    Btw mindkét csapatban voltak angliában élő tagot, azokon keresztül futott az egész.

    "Anyone, anywhere can pledge to a project with a major credit or debit card. Anyone in the US, UK, or Canada can start a project (full details), and New Zealand and Australia are on the way!"
  • Jim Morrison
    #51
    greenlighton csak kész játékok lehetnek, hogy mik kerüljenek ki storeba.
  • #50
    Köszi mindekettőtöknek:D

    És Indiegogo-n ha összejön valamennyi összeg, aztán mégsem sikerül a játék, mert nincs időm befejezni, akkor vissza kell fizetni? Nem tervezek ilyesfajta hazárdírozást, csak mindenre fel akarok készülni:D Vagy van ott valami időlimit, hogy mennyi időm van megcsinálni? Vagy szimplán csak aki adakozó kedvében van, az ad?

    Mellesleg Steam Greenlight is hasonló? Vagy az már a kész játékok, csak indie?
  • sirpalee
    #49
    Kickstarterre még akkor sem mehetnél, ha akarnál sem. Csak amerikai és angol adószámmal (vagy bankszámlával, ezt pontosan nem vágom) rendelkezőknek van. Az indiegogo opció, de ott kissebbek a pénzek általában. Utóbbin van olyan lehetőség is, hogy a teljes összeg elérése nélkül is lehet továbbvinni egy projectet.
  • Jim Morrison
    #48
    OE :) (Óbudai Egyetem)
    Tedd be topikot kedvencek közé és akkor látod ha új üzenet érkezik (bár gondolom ezt tudtad).


    Kickstarteren nézd meg a játékok kategóriát,kell valami nagyon jó concept hogy adományozzanak, szép design, és adományozóknak majd valami bónuszt adni. Ha nincs meg a kért összeg akkor ha jól tudom nem kapsz semmit :( Tehát vagy mindent vagy semmit.
  • #47
    Akkor Te is egyetemre jársz? Melyikre? :) Csak azért, mert most BME-n van egy haverom, aki most lett az Android alapú szoftverfejlesztés tárgynak a tárgyfelelőse és előadója, az ő egyik haverja indított előző félévben egy Szórakoztató elektronikai eszközök programozása című tárgyat, amiben van HTML5 és Unity is. Azt veszem most majd fel, és gondoltam ha véletlen Te is oda járnál, akkor tudom ajánlani. :)
    Egyébként ha bármi segítség kell, nyugodtan írj rám privátba is :) Ritkán látogatom ezt a topicot, ma néztem csak fel.
    Viszont egy kérdés: Kickstarterrel mi a helyzet? Addig oké, hogy adománygyűjtő játékkészítéshez, de mennyire éri meg feltenni oda? Vagy egyáltalán hogy működik? Sponzorálnak, de ha nem sikerül? :D
  • Jim Morrison
    #46
    Amúgy nagyon várom már hogy nekikezdjek, már többször neki akartam vágni, de valami ugye mindig közbejön... Játékot még volt szerencsém csinálni okj-s vizsga miatt (C# xna, ilyen kis platformer lett).
  • Norbi779
    #45
    Köszönöm, megnézem :)
  • Jim Morrison
    #44
    LoS jól is néz ki, meg amiket leírtál igencsak jól hangzanak. Én majd csak hamarosan állok neki, horror fps-en én is gondolkodtam :)


    Egyetemen van egy srác aki talán már közel jár hogy kiadja appsotrera a játékát, és bár nem fogok mondani semmit róla, de nagyon jól néz ki, nagyon jól működik, és biztos vagyok benne hogy egy bizonyos álomhatárt hamar elér :) Majd ha kint lesz írok ide, hogy én biza ismerem a készítőt! :D
  • #43
    Nekem 3 projectem van, amiket hébe-hóba feljesztgetek egyedül. Sajnos meló+egyetem kombó miatt nincs időm rájuk, plusz most tanultam Androidot programozni, így hanyagoltam a C#-ot a nyelvi keveredések miatt. Plusz mivel autodidakta módon tanulom (az Androidon kívül) a programozást, így lassan is haladok.

    Az első egy MMORPG (tudom, sokan akarnak azt írni), aminek kész a kliens-szerver kommunikációja, karakter generálás (nem grafikai, csak scriptes), belépés a világba (játékosok látják egymást), NPCk, mobok (többen ölnek egy mobot, akkor mind2 player megkapja az infókat a HPjáról), irányítás, plusz a dinamikus map-töltés, ami akkor töltődik, ha közel érsz egy megye-határhoz, a régi meg kitöltődik. Ha érdekel,akkor van egy out-of-date (majd frissítem, ha érdemit érek el) IndieDB-s oldala. Lands of SomewhereHood, de Facebookon is van oldala. Igazából poénra akarom venni az egész stílust, pl olyan quest, hogy menj végig a Silkroad-on, keress meg egy tagját a League of the Legends-nek, és vidd el neki a Word of Warcraft nevű könyved (igen, direkt nincs benne "L"), és egy Rune of Magic-et. Persze ez csak egy ovis szintű példa, de nem lövöm le a nagyobb poénokat. :D

    A második egy kis űrszimulátoros game, ahol egy űrhajóval vagy, és ha közel érsz egy bolygóhoz, akkor átvált földfelszíni nézetre, de ez csak amolyan antigravitációs ökörködés.

    A harmadik egy horror-FPS, igazából ezen nincs mit magyarázni:)

    Az utóbbi kettő még csak kezdeti fázisban van, az MMOval haladtam a legtöbbet. Bocsi, ha bő lére eresztettem, remélem azért érdekeset írtam:)
  • Jim Morrison
    #42
    engem az érdekelne, hogy ki milyen játékokat készített már unityvel :)


    valakinek megjelent e már az appja appstoreban vagy hasonló? :)
  • sirpalee
    #41
    *gyorstalpalóval

    3d motivenak van egy nagyon alapokról induló videó sorozata, érdemes lehet ilyennel kezdened : https://www.3dmotive.com/f109401 . Ha bármit is össze akarsz rakni, akkor annyi önállóság a minimum, hogy ilyen problémákra megtalálod magadtól a választ.
  • sirpalee
    #40
    Ez azért elég alapvető programozási probléma, lehet elsőnek egy C# talpalóval kellene kezdened.

    Itt nézhetsz körül a különböző tárolók között. Az, hogy melyikre van szükséged, az már attól függ mit csinálsz az adataiddal. Fixel tárolsz párat? Szekvenciálisan elérsz valamennyit? Keresni akarsz közöttük (pl legközelebbit)?
  • Norbi779
    #39
    Hali. C# -ben szeretnék létrehozni egy tömböt, és abban pár pozíciót(x,y)tárolni. Hogy oldható meg? Próbálkoztam, kerestem is a neten, de mindig valami hibát írt. Valaki tud segíteni?
  • Norbi779
    #38
    Köszönöm a választ! :)
  • sirpalee
    #37
    Pfej, elfelejtettem linkként berakni. Linkity