如何精确控制周期函数能力?
-
周期能力是很便利的一个能力,可以做到渐变的效果,但也需要精确控制周期进程。
如何了解周期进程?周期函数有两个可以利用的表达式
周期函数.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的情况大概率是不在渲染帧上的,获取到的就都是小数,定时器确实是目前比较合适的做法(开个长时间的定时器跟周期同步运作),不然就只能建议官方加一个这样的条件了