如何精确控制周期函数能力?



  • 周期能力是很便利的一个能力,可以做到渐变的效果,但也需要精确控制周期进程。
    如何了解周期进程?周期函数有两个可以利用的表达式
    周期函数.value:周期振幅的变化
    周期函数.cycleposition :周期函数.value/振幅
    通过每帧判断这两个表达式可以粗略获取到当前周期进度。比如获取到周期的开始和结束。
    但真的只能是粗略获取,因为随着你的周期减小,周期函数.cycleposition 或周期函数.value将变化的特别快,误差也就越来越大,这时我们基本判断不了周期,你除了使用定时器之类,强制停止周期就别无它法了。
    问题来了,那么我们应该用什么办法来获取周期进程呢?



  • @猫人队长 我怎么记得可以直接拿到周期的比例值,官网教程上写的不是四个表达式吗,现在只有两个了吗🤔 ,要拿周期进程不是直接 cycleposition 和 period 相乘就好了嘛(得到了周期运行到了第几秒

    value
    返回当前周期函数的值
    Magnitude
    返回当前周期函数的振幅
    CyclePosition
    返回开始点在一个周期内的位置,为一个介于0-1之间的数字
    Period
    返回当前周期函数的周期


  • 你没明白我都意思。周期越小,误差越大,假如周期为0.1秒,你根本获取不到正确的周期时间,因为每帧变化的值已经超过了判断值。

    具体来说,假如每帧就是1/60=0.016667秒,周期是0.1秒的话,0.1/0.016667≈5.9帧,也就是说这5.9帧里面不会有0和1的整数值出现,也就无法判断开始和结束,你可以用接近值<0.1来代替0,或者>0.9来代替1,但越小的周期,这个接近值越不确定。

    最后无法判断准确的周期了。









  • @猫人队长 理解你的意思了,那这个问题好像也没办法😂 ?因为这个好像是按帧渲染的,所以时间小到一帧以下也没法获取到具体的值,所以周期比例刚好等于1的情况大概率是不在渲染帧上的,获取到的就都是小数,定时器确实是目前比较合适的做法(开个长时间的定时器跟周期同步运作),不然就只能建议官方加一个这样的条件了🤔


登录后回复