【发布时间】:2018-08-12 13:23:11
【问题描述】:
在 C# 类中,如果更改之间的间隔太短,则需要过滤掉或忽略 Update 方法中的布尔更改。
本质上我需要所谓的“低通滤波器”
假设我们在 Update 或 FixedUpdate 中有以下内容
if (myBoolean condition){
myVal =0;
}else{
myVal= _rawInput;
}
上面的 myBoolean 条件切换得太快了。我需要“过滤掉”或忽略这些短时间间隔。
我尝试使用此 LowPass Filter 类与移动加速度计输入一起使用,但没有运气,因为它假定被过滤的值是浮点数。 http://devblog.aliasinggames.com/accelerometer-unity/有人可以帮忙吗?
【问题讨论】:
-
你可以有一个时间跨度类型的静态类变量,如果已经过了足够的时间,则将其设置为当前时间,比较当前时间 - 时间跨度类型的变量,如果与当前时间的差异 - 静态时间跨度变量是不够的忽略做你的更新。我将在下面发布一个答案,解释我的建议。
-
@RyanWilson 我写代码的时间比你写的时间长,但想法相同:)
-
@PatrickArtner 是的。我看到你在实际编码方面打败了我。干得好,我 +1。
标签: c# unity3d boolean lowpass-filter