Kezdőoldal » Számítástechnika » Programozás » Unityben szeretnék akadályokat...

Unityben szeretnék akadályokat spawnloni. Hogy oldhatom meg?

Figyelt kérdés

Egy 2D-s játékot készítek és van 2 fajta prefabom,a miket véletlenszerű sorrendben szeretnék lespawnolni!

Egy ilyen scriptet találtam, de nem működik jól:



public GameObject[] items;

public float spawntime;

public float spawndelay;

public float mintime;

public float csokktime;



void Update()

if (spawndelay <= 0)

{

int rand = Random.Range(0, items.Length);

Instantiate(items[rand], transform.position, Quaternion.identity);

spawndelay = spawntime;

if (spawntime > mintime)

{

spawntime -= csokktime;

}

}

else

{

spawntime -= Time.deltaTime;

}


Pedig a videóban szereplő értékeket adtam meg a változóknak. Be is raktam a prefabokat a listába.



2023. aug. 23. 10:05
 1/5 anonim ***** válasza:

Nem írtad le mit nem csinál amit szeretnél ha csinálna. Feleslegesen használsz publikus változókat. Nem értem miért használsz ennyi változót egyáltalán ehhez, a négyből két változó teljesen felesleges - de oké, működhet így is, csak túlbonyolítod.

Két extra a végére, egyrészt vannak normális kódmegosztó oldalak, használd azokat(pl [link] ), másrészt meg túlindexleheted a tömbödet amikor random kiválasztasz belőle egyet, a Random.Range(min, max) zárt intervallumú. Random.Range(0, items.Length-1) kell neked.

2023. aug. 23. 16:32
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:

Ezt egy tutorial alapján csináltam, de készitettem egy magam egy másikat, ami működött rendesen. A sok változó amiatt gellett, hogy egyre gyorsabban jöjjenek az akadályok!

A tutorial: https://www.youtube.com/watch?v=SbzCHmppBGQ

2023. aug. 23. 20:07
 3/5 anonim ***** válasza:
Egész Random max értéke nyílt, szóval biztos nem fogja túlindexelni a tömböt. Publikus változók meg akkor lehetnek hasznosak, ha a komponenst a beépített editorból paraméterezed fel, privátként hozzá kell dobni egy attribútomot, hogy megjelenjen.
2023. aug. 24. 09:38
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:

#3 Jogos, float esetében zárt, intnél nyitott.

[link]

Az attribútom pontosan azért van, hogy ilyenkor használd. Public akkor kell, ha osztályon kívül akarod piszkálni, nem akkor, ha az inspectorból akarsz hozzányúlni.

2023. aug. 24. 14:45
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:

spawndelay-t használok feltételben, de csak egy helyen van módosítva az értéke:

spawndelay = spawntime;


Itt valami nagyon nem okés.


Nem ebben a 2 sorban kellene változtatnod az értékét:

spawntime -= csokktime;

spawntime -= Time.deltaTime;


Bár nem egészen értem a logikát, hogy mi ez a csokktime és mintime, de az biztos, hogy a felső feltétel miatt valamit nem jól írtál meg. (Kivéve, ha más script módosítja az adatokat.)

2023. aug. 25. 15:22
Hasznos számodra ez a válasz?

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!