这更像是一个数学问题,但如果有人能帮我定义如何编写代码那就太棒了!
目标是以设定的时间间隔重复调用函数。但是需要计算每秒调用间隔,以便它遵循缓出曲线。
所以我希望玩家在变量中输入一个数字,然后将其称为X。
数学并不是我的强项,所以如果有人能帮我定义这段代码,我们将非常感激。
谢谢!
答案 0 :(得分:0)
你可以使用AnimationCurve这个
public AnimationCurve callPerSecondCurve;
//this is x value on animation curve
public float yourXvar;
void Start(){
yourXvar = Mathf.Clamp(yourXvar, 0f, 10f); //so that you don't go out of curve range
CallerFunction();
}
void CallerFunction(){
float frequency = callPerSecondCurve.Evaluate(yourXvar);
//exit condition
if(frequency < 0.01f)
return;
float waitTime = 1f / callPerSecondCurve.Evaluate(yourXvar);
Invoke("CallerFunction", waitTime);
yourXvar -= waitTime;
Debug.Log("Bam");
//call your target function() HERE
}
将动画曲线设置为
基本上应该发生的事情是在检查器中输入 yourXvar 并按下播放后,调用CallerFunction()的频率会降低。