Skip to content

Releases: Linerichka/Coroutines

1.0.0

30 Jan 13:02
Compare
Choose a tag to compare

Resolved:

  1. A fork has been made and a repository has been created. The folder structure is reduced to a common standard. SemVer is used for versioning.
  2. Extensive refactoring of the code, bringing the design to the standard, unreadable \ complex constructions have been replaced with more understandable ones. Outdated examples have been removed, as well as incomprehensible \ irrelevant \ misleading comments.
  3. Fixed an error when, after calling the Update() method of the CoroutineRunner class, even if the delay of coruntine calls is <=0, this call was not made in the current method call, as a result of which ANY numerical delay in the IEnumerator actually received one empty update. For example, the following code: “yield return 2f;”, was processed as such: “yield return 2f; yield return null;”.
  4. Fixed an error when for an IEnumerator of the form: “yield return 2f; yield return 2f;” with an expected execution time of 4 seconds, the actual execution time was more than 4 seconds. Now, if the deltaTime argument is passed to the Update() method of the CoroutineRunner class, which exceeds the delay time of the current IEnumerator, the rest of the time is applied to the next call. However, this approach, with a rare call to Update(), can lead to the fact that the time between calls to MoveNext() for IEnumerator may be unequal. As a result, the bool variable “UnscaledTime” has been added to the CoroutineRunner class, which allows you to change modes. Although if the frequency of the Update() call is high enough, the difference will not be noticeable.
  5. Probably fixed an error that causes an exception to go beyond the array boundary in the Update() method of the CoroutineRunner class. The method has been redesigned, all places potentially leading to an exception have been removed.
  6. Fixed a bug when CoroutineHandle had a struct type instead of a class.
  7. Fixed an error when the Stop() method of the CoroutineRunner class did not work.
  8. Now in the CoroutineRunner class, if “yield return null;” occurs in the IEnumerator, a delay is set equal to the deltaTime passed to the Update() method.
  9. A new GetHandle() method has been added to the CoroutineRunner class.