Kezdőoldal » Számítástechnika » Programozás » Unity: score megjelenítése...

Unity: score megjelenítése egy másik scene-ben?

Figyelt kérdés

Tudom, nem ez a legjobb hely a kérdés feltételére, de hátha.

Sok ilyen kérdés van az interneten, de egyszerűen nem tudom működésre bírni...


Szóval, szeretnék egy sima mentett adatot a GameManager scriptből meghívni a ShopManager scripte, ezzel a shopban (különálló scene) is megjeleníthessem az aktuális score-t.


A kód működő része:


public class GameManager : MonoBehaviour {


int money = 0;

public Text moneyText;


void Start()

{

money= PlayerPrefs.GetInt("Money");

moneyText.text = money.ToString();

}


void SaveMoney()

{

PlayerPrefs.SetInt("Money", money);

}

}


Ezt a money értéket szeretném megjeleníteni a Shop menüben (scene-ben).


Köszönöm szépen, ha valaki időt szán rám!



#játék #playerprefs #gamemanager
2021. dec. 5. 22:45
 1/5 anonim ***** válasza:

GameManager osztályodat nem kell törölnöd két jelenet között, aztán eléred később is

[link]

Singleton-t szoktak ilyen dolgokra használni, hogy biztosan ne legyen több példány belőle, de ezer más módja is lehet.

[link]

2021. dec. 5. 23:29
Hasznos számodra ez a válasz?
 2/5 anonim ***** válasza:

én a helyedben az adatokat függetlenné tenném a Componentektől

tehát létrehoznék egy GameData osztályt amiben tárolnám az adatokat, viszont ez vagy static, vagy singleton megoldással


a GameData nem component (tehát nem a MonoBehaviour osztály lesz a szülője), így bármikor elérheted gond nélkül, nem kell hozzá gameobject, sem component


én pár éve fejlesztek Unity motort használva és eléggé zavar amikor mindent componentekbe pakolnak az emberek a tutorial videókban

a componentek mellett érdemes ismerni a scriptableobjecteket és azt is, hogy ha csak simán vannak classok azokat hogyan tudod kezelni, hogyan lehet jól használni ezeket és mikor milyen megoldásokat érdemes!


én componentekbe akkor rakok adatot, ha annak ott a helye (vagy debug miatt)

a component egy entityhez kapcsolódó dolog, addig létezik amíg az entity létezik (vagy nem törlik direktbe a componentet)

2021. dec. 7. 04:21
Hasznos számodra ez a válasz?
 3/5 anonim ***** válasza:
#2 minek kevered ide az entity kifejezést, vagy a scriptableobjectet? A kérdésből világos, hogy kb a hétvégén kezdett unity vel dolgozni a kérdező, ha entity re keres rá kizárólag DOTS anyagot kap, ScriptableObject meg nem erre van. Teljesen rendben van gameobjectet használni erre a célra, ingyen kapsz inspectort amivel könnyen nyomon tudod követni az adatok változásait, az overhead meg olyan szinten minimális, hogy nem is érdemes beszélni róla.
2021. dec. 7. 11:48
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:

Az Entity-Component-System a Unity alapja, jobb minél hamarabb megismerkedni vele, hogy tudja mi az az Entity, GameObject, Component, Prefab...


a DOTS, Jobs és egyéb dolgok még ráérnek


a scriptableobject ismerete is elég fontos, nem annyira bonyolult és nem véletlen van létjogosultsága, szintén érdemes pár videó alapján megnézni és megismerni, főleg ha adattárolásról van szó!


persze tárolhatsz mindent componentben ami belefér, de ettől még nem ez a helyes irány, hisz a componenteknek is megvan a maguk feladata

a multiscenes megoldást is felhozhattam volna ennyi erővel, hogy rakja oda ki a controllereket/managereket és tárolja ott az adatokat


több éve Unityzek sajnos én is sok rossz szokást tanultam meg az elején amik még, akkor mondhatni trendik voltak, de nem a legjobbak

végig lehet járni azt az utat, hogy sok hülyeséggel találkozik az ember és sok dolgot gány megoldásokkal csinál meg, amikre visszatekintve évek múltán csak fogja a fejét, hogy "ezt hogyan csinálta meg"


szerintem fontos, hogy ne csak a kód írást tanulja meg, hanem a mögöttes elméletet is értse meg és jó ha ismeri a lehetőségeit, de ne rossz szokások rögzüljenek


hogy egy fontos példát hozzak fel:

Camera.main

sok videóban kiemelik, hogy ezt ne használd Update metódus alatt (vagy gyakran futtatott kódokban), mégis sok tutorial kihagyja ennek az említését és az ember azt hiszi ez egy jó megoldás


vagy ott vannak a patternek, amik elég fontosak

ott van a Pool ami sok játékot megmentene a lagg spike-tól (lásd Rust, 7 Days to die)

a többszálúságról nem is beszélve, mert sok játék a fő száladat fogja meg és az FPS-edet redukálja le


sok-sok-sok dolog van, nem is azt mondtam egyből jöjjön minden is, viszont sok olyan dolog van amit már a kezdetek kezdetén meg KELL ismerni, mert sok problémától menthetnek meg

2021. dec. 7. 12:11
Hasznos számodra ez a válasz?
 5/5 A kérdező kommentje:

Köszönöm nektek a választ! Sajnos a scriptable egyelőre viszonylag járatlan út nekem.


A probléma forrása igen, az volt, hogy több komponenst próbáltam elérni. Szóval csináltam egy külön Walletet, onnan hivatkoztam a mentett adatokra.

2021. dec. 8. 02:21

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!