Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
public class returnTest : MonoBehaviour {
float val;
bool animFinal = true;
void Update () {
if (Input.GetKeyDown("c")) animFinal = false;
if (!animFinal) {
StartCoroutine(sinAnim(2.5f, 5.0f));
animFinal = true;
}
print(val);
}
IEnumerator sinAnim (float amp, float speed){
while (val > -0.9985f * amp){
val = Mathf.Sin(Time.time * speed) * amp;
transform.position += Vector3.up * val * Time.deltaTime;
yield return null;
}
val = 0.0f;
}
}
using System.Collections;
public class returnTest : MonoBehaviour {
float val;
bool animFinal = true;
void Update () {
if (Input.GetKeyDown("c")) animFinal = false;
if (!animFinal) {
StartCoroutine(sinAnim(2.5f, 5.0f));
animFinal = true;
}
print(val);
}
IEnumerator sinAnim (float amp, float speed){
while (val > -0.9985f * amp){
val = Mathf.Sin(Time.time * speed) * amp;
transform.position += Vector3.up * val * Time.deltaTime;
yield return null;
}
val = 0.0f;
}
}
Но поведение объекта весьма странное наблюдается: то дергается вниз вместо верха, на исходную не возвращается, двигается все выше и выше после каждого нового вызова подпрограммы.
Очень надеюсь на Вашу помощь
З.Ы Был бы очень признателен за разъяснение основных принципов работы подпрограмм..ну и вообще всего, что надо о них знать) (хелп курил, но не вкуривается чет)