【问题标题】:animating a wave using trigonometry in a row of objects在一行对象中使用三角函数为波浪设置动画
【发布时间】:2016-08-08 09:03:18
【问题描述】:

我有一排对象,我想将它们突出显示/设置为单个波,偶尔经过,然后所有对象都变平

______¸,ø¤º°`°º¤ø,_________ ____________________________

不幸的是,我完全失败了,尽管有该功能的视觉反馈,但它完全失控了。请给我一些建议。这是我在 unityscript 中的失败尝试,类似于 AS:

function Update () {

    if (Input.GetKeyDown("b")) animating = !animating;
    if (animating ==true){
        for (movebat in movebats) //process every battery component
            { 
                var vy = movebat.transform.position.y*0.4 + Time.time*3;
                if ( vy % (Mathf.PI*4)>= (Mathf.PI)) 
                    vy = 0;
                movebat.transform.position.z  = Mathf.Sin(vy*.41+Time.time*3);
            }
    }
}

也许有一个钟形曲线函数或迭代技巧会更容易,对我来说是新的?

【问题讨论】:

  • 你使用什么语言?
  • 那是unityscript,它类似于javascript和actionscript,除了它使用.net库和unity3d库。谢谢

标签: signal-processing trigonometry waveform


【解决方案1】:

这是一个有效的代码版本:

function Update () {

    if (Input.GetKeyDown("b")) animating = !animating;
    if (animating ==true){
        for (movebat in movebats) 
            if( movebat!=null){ 
var vy = (movebat.transform.position.y*0.4+Time.time*3)% (Mathf.PI*8);
            if ( vy >= (Mathf.PI)) 
              vy = 0;
            movebat.transform.position.z  =
            -Mathf.Clamp(Mathf.Sin(vy ),0,1)*2;}
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    • 2015-05-27
    • 2019-02-23
    相关资源
    最近更新 更多