Eltudnátok magyarázni, hogy ebben a példában a yield mi akar lenni?
Sőt be is másolom a kódot.
Javascriptben:
// Prints 0
print (Time.time);
// Waits 5 seconds
yield WaitForSeconds (5);
// Prints 5.0
print (Time.time);
C#:
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
IEnumerator Example() {
print(Time.time);
yield return new WaitForSeconds(5);
print(Time.time);
}
}
Gondolom mindkettőben ugyanaz de jobban otthon vagyok javascriptben mint c# ben de nem értem.
Nem értem ennek a színtaktikáját.
yield WaitForSeconds(5); //Ez a kódban meghívásra kerül.
Én még nem láttam úgy függvényt hogy a meghívásakor ki kéne írni elé a típust ami a tippem szerint a yield akar lenni.Na mind egy nem értem segítsetek pls.
Ez egy osztály alapú függvénymeghívás.
Nézz utána az objektumoknak.
Ez egy unity-s programkód. FEladata, hogy várjon 5 másodpercet, és ekkor kiírja az időt.
Inkább konstruktor meghívásnak tűnik.
new WaitForSeconds(5); A new az meghívja a konstruktort.
Ha így nézne ki a kód akkor érteném:
yield::WaitForSeconds (5);
De még mindig nem értem mi akar ez így lenni?
yield WaitForSeconds (5); Mintha egy kulcsszó volna a yield.
Nah megtaláltam mit jelent itt a yield.
A yield azaz hozam egy többszálú rendszer manipulálására szolgál.
A yueld azonnal meghívja azt a függvényt vagy utasítást, amit csak szeretnél.
Lehetett volna úgyis csinálni, hogy meghívja yield nélkül a return new Waitforseconds(5)-öt, de yield-el történő meghívás gyorsabb, és hatékonyabbá teszik a kódot. Ahogy láttam ennek inkább optimalizáláskor van komolyabb szerepe. Én is nehezen találtam meg és csak c# nyelven( illetve annak xml-es kezelésekor), a konkrét jelentését.
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!