Unityben szeretnék akadályokat spawnloni. Hogy oldhatom meg?
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.
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.
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
#3 Jogos, float esetében zárt, intnél nyitott.
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.
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.)
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!