Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C#-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
void Start() { cycleData = new DayNightCycleData(); cycleView = new DayNightCycleView(); StartCoroutine(HandleTime()); } IEnumerator HandleTime() { while (true) { cycleData.CurrentTime++; // Die aktuelle Uhrzeit, tickt von 0 bis 300 hoch if (cycleData.CurrentTime >= cycleData.FullCycleInSeconds) // Bei 300 wird der Counter zurückgesetzt cycleData.CurrentTime = 0; cycleView.UpdateCycle(cycleData); // GUI Aktualisierung yield return new WaitForSeconds(1); // Warte 1 Sekunde } } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Garzec« (03.04.2017, 09:21)
C#-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
class DayTime{ private float actualTime = 0; private float dayCycleTimeInSec; public DayTime(float dayCycleTimeInSec){ this.dayCycleTimeInSec = dayCycleTimeInSec; } public void AddTime(float time){ actualTime += time; if(time >= dayCycleTimeInSec){ actualTime -= dayCycleTimeInSec; //Um die Zeit wieder auf null zu setzen, aber die bereits verstrichene Zeit nicht zu verlieren } } } |
C#-Quelltext |
|
1 2 3 4 5 6 7 |
DayTime dayTime = new DayTime(300f); public void UpdateBlaBla(){ dayTime.AddTime(Time.deltaTime); } |
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Tixewi« (03.04.2017, 17:10)
C#-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
WaitForSeconds wait = new WaitForSeconds(1.0f); void Start() { StartCoroutine(Coroutine()); } IEnumerator Coroutine() { //do something... yield return wait; //do something else after that... } |
C#-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
class DayTime { private float actualTime; private float stepTimeForInvoke; private float lastInvokedStep; private float dayCycleTimeInSec; private stepCallback; private fullDayCallback; public DayTime(float dayCycleTimeInSec, float stepTimeForInvoke, Action stepCallback, Action fullDayCallback) { this.dayCycleTimeInSec = dayCycleTimeInSec; this.stepTimeForInvoke = stepTimeForInvoke; this.stepCallback = stepCallback; this.fullDayCallback = fullDayCallback; } public void AddTime(float time) { actualTime += time; if(actualTime >= lastInvokedStep + stepTimeForInvoke) { stepCallback?.Invoke(); lastInvokedStep = actualTime; } if(time >= dayCycleTimeInSec) { fullDayCallback?.Invoke(); actualTime -= dayCycleTimeInSec; float restStepFromLastDay = lastInvokedStep - actualTime; lastInvokedStep = restStepFromLastDay; } } } |
Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von »Renegade« (03.04.2017, 20:17)
Werbeanzeige