InvokeRepeating(nameof(InvokeRepeating_OnTrigger2DSelf), 0, timeLockTarget);
timeLockTarget的值(也就是对应的repeatRate值)可以在开始赋值比如1,那么程序每秒运行1次。但是在运行过程中修改timeLockTarget为10,程序依然会以1秒一次运行,而不是期望的10秒一次。
如果要想实现在运行过程中,通过修改参数的方法,改变运行频率,可以在InvokeRepeating调用方法内部修改。比如以上面例子的方法:
private void InvokeRepeating_OnTrigger2DSelf()
{
time = time +1;
if(time > timeLockTarget)
{
OnTrigger2DSelf();
time = 0;
}
}
这样,time经过10次增加后达到timeLockTarget值10,也就变成10秒后运行一次。