首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调用函数t/s具有“轻松”效应

调用函数t/s具有“轻松”效应
EN

Stack Overflow用户
提问于 2016-04-07 08:43:14
回答 1查看 162关注 0票数 0

我想这更像是一道数学题,但如果有人能帮我定义如何编写代码,那就太棒了!

目标是在设定的时间间隔内重复调用函数。但是每秒钟的通话间隔需要计算,这样才能遵循一条轻松的曲线.

所以我想让玩家把一个数字输入到一个变量中,让我们称之为X。

  • X* Time.deltaTime应该每秒给我打个电话。
  • 给X的数字越高,每秒的呼叫速度就越快。
  • X的值越高,对每秒呼叫间隔的影响就越小.

数学不是我的强项,所以如果有人能帮我定义这段代码,我会非常感激的。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-04-07 11:00:32

你可以用AnimationCurve来做这个

代码语言:javascript
复制
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并按play之后,CallerFunction()应该以递减的频率被调用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36470988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档