最后用缓和来回摇动一个物体?

时间:2016-09-08 00:34:18

标签: c# unity3d

我几乎想要一个刺耳的动画,这样它会快速来回摇晃一秒钟,然后放慢速度,慢慢回到正常位置。只有持续摇晃有很多答案,但我怎么能减少震动呢?我Lerp真的很快,或者PingPong使用的功能会慢吗?

2 个答案:

答案 0 :(得分:7)

你可以简单地通过获取原始位置然后在协程函数中摇动GameObject,在while循环中执行UPDATE Family SET FullAddress = CONCAT(StreetAddress ,', ' City ,', ' STATE ,', ' ZipCode ) AS Address 一段时间。摇动GameObject后,将值重置回其默认位置。

至于减少震动,你在while循环中执行YourObjTransform.position = defaultPos + UnityEngine.Random.insideUnitSphere * shakeAmount;。这将降低while循环中的摇动速度。

以下功能是上述声明的完整示例。它需要三个参数,GameObject可以晃动,动摇GameObject的时间以及开始减少震动的时间。

例如,如果您将shakeAmount += Time.deltaTime;myGameOBject5f传递给该函数,则会动摇3f,总时间为myGameOBject秒。在摇动5并且计数器到达myGameOBject时,它会开始降低摇动的速度(3),直到计时器达到shakeAmount

如果要摇动的游戏对象是5,则将true传递给最后一个参数,这样z轴就不会移动,只会在摇动时在Z轴上旋转。

SpriteRender

答案 1 :(得分:0)

查看具有阻尼效果的cos / sin函数。

    A*Pow(e, -bt/2)*cos(f*t)